どのように IBM Cloud 高可用性と冗長性を確保するか
IBM Cloud® は、お客様のグローバル戦略、可用性、事業継続性のニーズに応じてワークロードやアプリケーションを展開するためのグローバルなインフラストラクチャとクラウドサービスのポートフォリオを提供します。
冗長化による高い可用性
IBM Cloud サービスは、異なる IBM Cloud リージョンとデータセンター間のロケーションと可用性スコープに応じて、異なる冗長展開と障害分離パターンで設計されている。
IBM Cloudのクラウドサービスがどのように設計され、グローバルな IBM Cloud ロケーションに展開されているかを理解することで、サービスの依存関係やロケーションについて適切な選択を行い、ワークロードとアプリケーションの可用性を高めることができます。
異なるゾーンや地域は、どのようなレベルの回復力を提供するのか?
シングルゾーン・データセンターもマルチゾーン・データセンターも、以下を提供することで、ゾーンやリージョン間の単一障害点(SPOF)を回避している:
- 複数の給電
- ファイバー・リンク
- 専用発電機
- バッテリー・バックアップ
すべてのデータセンターは複数の電源供給を持っていますが、より成熟したサイトのいくつかは、 1U、デュアル電源供給に対応できない可能性のあるシングルソケットサーバーシャーシを持っています。 こうしたサイトで 1U シングル・ソケット・サーバーを使用している場合、冗長性のある電源機構を備えている 2U シャーシを検討できます。 アベイラビリティー・ゾーンについて詳しくは、リソースをデプロイするロケーションを参照してください。
IBM Cloud 高可用性と回復力のためのサービスアーキテクチャ
IBM Cloud サービスは、分散 IBM Cloud インフラストラクチャに影響を与える可能性のある様々な種類の障害に対する高可用性と回復力を達成するために、以下のアーキテクチャパターンを実装することによって設計されています。
制御プレーンの障害からのサービス・データ・プレーンの保護
IBM Cloud サービスアーキテクチャは、データプレーンとコントロールプレーンのコンポーネントを分離している。
データプレーン・コンポーネントは、サービスの主要機能を提供する責任を負う。 データプレーン・コンポーネントは、データ処理、永続化、ロードバランシングなどの実装など、ユーザーやクライアント・アプリケーションからのリクエストを処理する。
例えば、次のようなデータプレーンの責務がある:
- 仮想サーバーインスタンス(VSI)の実行とホスティング
- ブロック・ストレージ・ボリュームへの読み書き
- オブジェクトの Object Storage バケットへの取得と設定
- クエリーの実行、処理、および更新 IBM Cloud Databases for PostgreSQL
コントロールプレーン・コンポーネントは、データプレーン・コンポーネントを管理し、動作するように設定する役割を担う。 制御プレーン・コンポーネントは、管理者からのリクエストを処理し、サービス・インスタンスのリソースの作成、構成、アップグレード、廃止の各フェーズを通じて、データプレーンのライフサイクルを管理する。
例えば、以下はコントロールプレーンの責任である:
- アカウントのVSIをリストアップし、新しいVSIをプロビジョニングし、OSイメージからの仮想マシンの作成、ブロックストレージの作成、ネットワークエンドポイントのアタッチと設定をオーケストレーションする
- ブロック・ストレージ・ボリュームの設定、サイズ変更、マウント
- 新しい Object Storage バケットの作成
弾力性と事業継続性を向上させるため、サービス・データ・プレーンは、コントロール・プレーンに障害が発生した場合でも、主要な機能を提供し続けるように設計されている。 一例として、インフラストラクチャリソースへのデータプレーンアクセスは、プロビジョニングされた場合、コントロールプレーンに依存しないため、コントロールプレーンの問題の影響を受けない。
制御プレーンの障害は、リソースの作成、変更、削除の機能に影響を与えるかもしれないが、利用可能な既存のリソースには影響はない。
ゾーン・サービスの独立性
ゾーン・サービスは、マルチゾーン・リージョンの特定のゾーン、または特定のデータセンターにサービス・インスタンスを配置することを可能にする。
特定のゾーンや特定のデータセンターに配置されたこれらのサービスインスタンスは、他のゾーンやデータセンターのサービスのコンポーネントに依存することなく、その地域内で独立して実装され、運用される。 したがって、あるゾーンで発生した障害は、そのゾーンでホストされているインスタンスに影響を与えるかもしれないが、同じリージョンや他のリージョンにある他のゾーンのインスタンスに影響を与えることはない。
ゾーンサービスアーキテクチャは、リージョンの各ゾーンに配置され、ローカルなリージョン内制御プレーンコンポーネントから管理されるゾーンデータプレーンを使用する。
ユーザーまたはアプリケーションは、各ターゲットゾーンにあるゾーンAPIエンドポイントを使用して、サービスインスタンス機能と対話する。
サービス制御プレーンは、 グローバルサービスの冗長性 で説明する一部の例外を除き、データプレーンの同じリージョンに配置され、リージョンの3つのゾーンにまたがって展開される。 他の地域のコントロールプレーンとは独立している。 そのため、あるリージョンで制御プレーンに障害が発生した場合、そのリージョン内のサービス機能のみに影響を与え、他のリージョン内のサービス機能には影響を与えない可能性がある。
1つのゾーンのコントロールプレーンに障害が発生した場合、またはゾーンが利用できない場合、リソースの作成、設定、アップグレード、廃止などのデータプレーンのライフサイクルフェーズを管理するための管理者の要求は、残りの2つのゾーンのコントロールプレーンによって実行される。
コントロール・プレーンがグローバルに展開される例外的なケースでは、高可用性を確保するために、複数の地域にまたがって展開される。 したがって、ある地域で障害が発生しても、他の地域のサービス機能に影響を与えることはない。
ゾーンサービスを使用するワークロードを配置するための具体的なオプションの詳細については、 リソースの配置場所 と 高可用性のための考慮 事項を参照してください。
地域サービスの冗長性
リージョナル・サービスでは、単一のターゲット・ゾーンやデータ・センターを指定することなく、特定のリージョン全体にサービス・インスタンスのリクエストを展開できる。
1つの地域に展開されるこれらのサービスインスタンスは、同じ地域内の複数のゾーンに展開される冗長コンポーネントで実装され、運用される。 こうすることで、リージョン内の特定のゾーンに単一障害点が発生することはない。
地域サービスアーキテクチャは、各地域の3つのゾーンに展開される地域データプレーンを使用し、地域内コントロールプレーンから管理される。 1つのゾーンでデータプレーンに障害が発生した場合、またはゾーンが利用できない場合、ユーザーとクライアントアプリケーションからのリクエストは、残りの2つのゾーンのデータプレーンに自動的に迂回される。
ユーザーまたはアプリケーションは、各ターゲット地域にある地域APIエンドポイントを使用して、サービスインスタンス機能と対話する。
サービス・コントロール・プレーンは、 グローバル・サービスの冗長性 で説明するいくつかの例外を除き、データ・プレーンの同じリージョンに配置され、他のリージョンのコントロール・プレーンから独立して、リージョンの3つのゾーンにまたがって展開される。 こうすることで、あるリージョンにおける制御プレーンの障害は、そのリージョンのサービス機能のみに影響を与え、他のリージョンのサービス機能には影響を与えない可能性がある。
あるゾーンでコントロールプレーンに障害が発生した場合、あるいは完全に失われた場合でも、サービスインスタンスのリソース作成、コンフィグレーション、アップグレード、デコミッショニングの各フェーズを通じてデータプレーンのライフサイクルを管理するための管理者からの要求は、残りのゾーンのコントロールプレーンによって実行される。
制御プレーンがグローバルに展開される例外的なケースであっても、高可用性を確保し、ある地域での障害が他の地域のサービス機能に影響を与えないことを保証するために、複数の地域にまたがって展開される。
地域サービスを使用するワークロードを配置するための具体的なオプションの詳細については、 リソースの配置場所 と 高可用性のための考慮 事項を参照してください。
グローバル・サービスの冗長性
IBM Cloud サービスのサブセットは、異なる場所や地域の複数のリージョンに展開されるコンポーネントを持つグローバル展開モデルを使用する。 これらのサービスは、他のゾーンサービスやリージョナルサービスが依存する共通の機能を提供する。 また、サービス内には、グローバルな機能を提供する特定のコントロールプレーン・コンポーネントが存在する。
グローバルデプロイメントモデルを使用するサービスは、複数のリージョンに複製されたコンポーネントを持つ分散アーキテクチャを実装する。 コンポーネントは、自動フェイルオーバー設計により、これらのリージョン間で負荷分散され、オペレーターの操作なしにサービスを稼働させ続けることができる。
以下のセクションでは、グローバル展開モデルを使用するサービスと、他のゾーンまたはリージョンのサービスからの依存性に対するリージョン横断的な影響について詳述する。
このアプローチは、アーキテクチャにおける単一障害点を取り除くのに役立つが、グローバル・サービス・コントロール・プレーンがホスティングされている地域とは異なる地域で運用されている場合でも、地域横断的な影響を受ける可能性がある。
グローバル・プラットフォーム・サービス
グローバルプラットフォームサービスは、他のゾーンまたはリージョナルサービスが依存する共通機能を提供する。 これらは制御プレーンのみで、 IBM Cloud グローバルインフラストラクチャ全体にわたって、ユーザーインターフェース、ユーザーIDとアカウント、アクセス、課金などをオーケストレーションすることを目的としている。
グローバル・プラットフォーム・サービスは、グローバルなロードバランシング戦略により、お客様がクラウド・サービスにアクセスし、管理するための冗長性と可用性の高いプラットフォームを確保します。
グローバルプラットフォームサービスのコンポーネントが配置されている地域で可用性に影響を与える事象が発生した場合、サービスが提供する管理機能が低下したり、利用できなくなったりする可能性がある。
次の表は、グローバルプラットフォームサービスと、そのサービスが提供する機能の一覧です。これらのサービスは、そのサービスに関して記載されているすべての地域での可用性に影響を与えるイベントが発生しない限り、影響を受けません。 詳しくは、 地域別のサービスとインフラの利用可能 性をご覧ください。
| サービス | 経営機能 | 高可用性 |
|---|---|---|
| コンソール IBM Cloud コンソールのナビゲーション |
IBM Cloud コンソールは、管理者がすべての IBM Cloud リソースとアカウントを管理し、新しいサービス・インスタンスを注文し、価格と課金情報を表示し、サポートを受け、ステータスを確認できるユーザー・インターフェイスを提供します | Active/Active |
| カタログ カタログ管理API |
カタログ管理サービスは、 IBM Cloud カタログと相互作用して、 IBM Cloud サービスインスタンスの注文とプロビジョニングを可能にする。 また、 IBM Cloud カタログの可視性を管理し、 アカウント内のユーザーのパブリックカタログおよびプライベートカタログの製品へのアクセスを制御することもできます。 | Active/Active |
| グローバル検索とタグ付け グローバル検索API、 グローバルタグ付けAPI |
検索とタグ付けサービスにより、以下のことが可能になる:
|
Active/Active |
| アイデンティティとアクセス管理 IAM Identity Services API |
IAMコントロールプレーンは以下を可能にする:
|
Active/Active |
| ビジネスサポートサービス ユーザー管理API 利用量計測API 利用レポートAPI |
ビジネス・サポート・サービスでは、以下のことが可能です:
|
Active/Active |
| IBM Cloud プロジェクト プロジェクトAPI |
プロジェクト・サービスでは、以下のことが可能です:
|
Active/Active |
グローバル・コントロール・プレーンを持つサービス
サービス内のグローバル制御プレーン・コンポーネントは、グローバルなスコープを持つ機能を提供する。 特定の地域でゾーンサービスやリージョナルサービスを提供する業務の中には、リソースが所在する地域とは異なる地域に根本的な依存関係を持つものがあるかもしれない。
グローバルプラットフォームサービスのコンポーネントが配置されている地域で可用性に影響を与える事象が発生した場合、サービスによって提供される管理オペレーションが低下したり、利用できなくなったりする可能性がある。
| サービス | 制御プレーン管理機能 | 高可用性 |
|---|---|---|
| 古典的なインフラ資源管理 |
インフラストラクチャリソース管理サービスのコントロールプレーンは、以下を可能にする:
|
プライマリー/セカンダリー |
| パブリックIPアドレス管理 | インターネット/パブリックロードバランサー、エラスティックIP、またはパブリックアドレスを持つ仮想サーバーおよびベアメタルサーバーリソースに、新しいパブリックIPアドレスまたはサブネットを割り当てます。 | プライマリー/セカンダリー |
| IBMid 私の IBM |
IBMid サービス・コントロール・プレーンは以下を可能にする:
|
プライマリー/セカンダリー |
| DNS Services DNS Services API |
DNS Servicesは以下を有効にします:
|
プライマリー/セカンダリー |
| Transit Gateway Transit Gateway API |
Transit Gatewayのサービス制御プレーンにより、以下のことが可能になります:
|
プライマリー/セカンダリー |
| Direct Link Direct Link API |
Direct Linkにより、以下のことが可能になります:
|
プライマリー/セカンダリー |
| Object Storage のプロビジョニング |
Object Storage サービス制御プレーンは以下を可能にする:
|
プライマリー/セカンダリー |
プラットフォーム・サービスを高可用性に使用する場合のベスト・プラクティスについては、以下の表を参照してください。
| プラットフォーム・サービス | 詳細 |
|---|---|
| アカウント管理 | アカウントをセットアップするためのベスト・プラクティスおよび請求および使用量に関するベスト・プラクティス |
| カタログ | カタログ設定の管理 |
| Cloud Shell | Cloud シェルの高可用性と障害復旧について |
| コンソール | コンソールのナビゲート |
| グローバル検索およびタグ付け | リソースの検索およびタグの操作 |
| IAM | IBM Cloud Identity and Access Management とは何ですか? |
| IBM Cloud CLI | IBM Cloud CLI の高可用性と障害復旧について |
| IBM Cloud プロジェクト | プロジェクトの高可用性とディザスタリカバリを理解する |
| Workload Protection | 高可用性とディザスタリカバリを理解する Workload Protection |
ネットワーク・バックボーンの冗長性
IBM Cloud ネットワークは、単一障害点が発生しないように設計されている。 各地域内で可能な限り同じサービス接続のために多様な通信事業者を利用することで、ネットワークの各ポイントに多様で冗長な接続性が存在する。
IBM Cloudは、多様なダークファイバープロバイダーを使って、エッジサイトをすべての地域のコンピュート施設に接続している。 さらに、各エッジ・サイトは、他の地域との冗長バックボーン接続を持ち、複数のプロバイダーと直接・間接的にローカル・エクスチェンジを通じてピアリングしている。
地域間依存からのゾーンおよび地域サービスの分離
一般的に、ある地域で可用性に影響を与える事象が発生した場合、その地域のゾーンサービスとリージョナルサービスのみが影響を受ける。 その他の地域のサービスには影響はない。
ゾーンサービスやリージョナルサービスのデータプレーンは、インフラ、コンテナオーケストレーション、データベース、セキュリティなどの重要な依存関係を含め、同じリージョン内のリソースに依存している。
リージョンに位置するサービスのデータプレーンも、ユーザーから提供されるサービスインスタンスに依存し、以下のサービス間機能をサポートする:
- BYOK (Bring-your-own-key) 暗号化サポート用の Key Protect インスタンス。
- KYOK (keep-your-own-key) 暗号化対応の Hyper Protect Crypto Services インスタンス。
- Object Storage バックアップ、Security Control Center の証拠と結果、アーカイブされたログなどを保存するためのバケット。一般的に、大量のデータを Object Storage のバケットに保存したり、バケットから取り出したりすることをサポートするあらゆる機能。
利用可能性を確保するために、サービス配分の地域を慎重に選択する。 リージョンをまたぐ故障の影響を防ぐため、依存するサービスと同じリージョンにサービスを配置することが推奨される。
各サービスのドキュメントには、それらをどのように使うか、場所や構成の選択、そして必要なレベルの耐障害性を実現するためのアプリケーションのアーキテクチャまで、明確な指示が記載されている。