このドキュメントでは、グローバル リソースとゾーンリソースの違いと、マルチゾーン ユニバースでの動作について説明します。Google Distributed Cloud(GDC)エアギャップは、リソースにさまざまなデプロイ領域を提供するため、ワークロードとサービスに高可用性戦略を実装できます。高可用性アプリケーションを効果的に計画するには、マルチゾーン アーキテクチャと、リソースがこれらのゾーンにどのように分散されるかを理解する必要があります。
このドキュメントは、障害復旧ワークフローの開発を担当するプラットフォーム管理者グループ内の IT 管理者と、GDC ユニバースでのアプリケーションの開発とメンテナンスを担当するアプリケーション オペレーター グループ内のアプリケーション デベロッパーを対象としています。
詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。
GDC のリソースタイプ
GDC エアギャップはマルチゾーン ユニバースとして動作します。このオペレーティング モデルでは、次の 2 つのリソースタイプを使用します。
- ゾーンリソース: 単一のゾーン内で独立して動作し、そのゾーンの範囲外では管理されません。ゾーンリソースはゾーン外では機能しないため、ゾーンの停止はゾーンリソースに影響する可能性があります。ゾーンリソースは、ゾーン管理 API サーバー(通常は管理 API サーバーと呼ばれます)にデプロイします。
- グローバル リソース: 複数のゾーンにわたって冗長性をもって動作し、フォールト トレランスを実現します。また、任意のゾーンの任意のリソースからアクセスできます。グローバル リソースは、グローバル管理 API サーバー(一般にグローバル API サーバーと呼ばれます)にデプロイします。
ゾーンリソースとグローバル リソースは、個別の管理 API サーバーを使用して GDC システムによって異なる方法で管理されます。API サーバーは、強力な整合性のあるストレージ バックエンドを使用して API リソースの作成、管理、削除を行うための単一のエンドポイントを提供します。GDC は、ユニバース内のさまざまな API サーバーでリソースを効果的に管理できるように、インターフェースを提供します。
ユニバースには常に 1 つのグローバル API サーバーのみが存在します。同様に、運用するゾーンごとにゾーン管理 API サーバーがあります。単一ゾーン環境で運用している場合でも、単一ゾーン用のグローバル API サーバーとゾーン管理 API サーバーが 1 つずつ存在します。
この図は、3 つのゾーンの GDC ユニバースを示しています。各ゾーンには、独立したゾーン管理 API サーバーがあり、そのゾーンのスコープ内にあるゾーンリソースを管理します。ユニバースには、すべてのゾーンにまたがるプロジェクトなどのグローバル リソースを管理するグローバル API サーバーもあります。
GDC のグローバル リソース管理アーキテクチャを理解して、高可用性を実現するためにリソースを適切にデプロイする必要があります。一部のリソースはグローバルにデプロイすることも、単一のゾーンで独立して動作することもできますが、グローバルまたはゾーンのみのリソースもあります。詳細については、リソース タイプの該当するドキュメントをご覧ください。
リソース管理のインターフェース
GDC には、ゾーンリソースまたはグローバル リソースを指定された API サーバーに適切にデプロイするメカニズムを提供する複数のサーフェスがあります。
- GDC コンソール: ユニバース全体のリソースにアクセスできるコンソール インターフェース。
- gdcloud CLI: GDC エアギャップ専用の CLI ツール。すべてのリソースタイプを管理するためのゾーン構成とグローバル構成、フラグを提供します。
- 管理 API: リソースタイプをゾーン単位またはグローバル単位で微調整するための完全な制御を提供する管理プレーン API。
- Terraform: クラウド インフラストラクチャをゾーン単位とグローバル単位でプロビジョニングして管理できる Infrastructure as Code(IaC)ツール。
ニーズや好みに応じて、リソースを管理するサーフェスを選択できます。各サーフェスを使用してマルチゾーン ユニバースのリソースを管理する方法については、ゾーン間のリソースを管理するをご覧ください。
GDC コンソール
特定の組織の GDC コンソールには、同じユニバース内のすべてのゾーンからアクセスできます。そのため、GDC コンソールを使用して、組織内のすべてのグローバル リソースとゾーンリソースを管理できます。
GDC コンソールには、デプロイの場所に基づいてリソースを表示して管理する方法がいくつか用意されています。
- 完全修飾ドメイン名(FQDN)を使用して移動する: グローバル FQDN を使用して、最も適切なゾーン コンソール エンドポイントに自動的に解決します。停止時にグローバル FQDN の解決に失敗した場合は、ゾーン FQDN を使用して、ターゲット ゾーン内の特定のコンソール エンドポイントに移動できます。
- ゾーンリソースの作成を管理する: 特定のリソース作成ページでゾーン選択ツールを使用して、ゾーンリソースを作成する場所を指定します。グローバル リソースを作成するときに、ゾーン選択ツールは表示されません。
- ゾーン間の既存のリソースを表示する: GDC コンソールでゾーン別にゾーンリソースを表示します。ゾーン ピッカーを使用して、リソースのリストを表示するゾーンを選択できます。
- ゾーンの接続ステータスを把握する: GDC コンソールの通知を確認して、ゾーンの接続ステータスをモニタリングします。通知により、ゾーン内のリソースの変更をブロックする可能性のあるゾーンの停止を警告できます。
GDC コンソールを使用してリソースを作成および管理する方法の詳細については、対応するリソースのドキュメントをご覧ください。
gdcloud CLI
gdcloud CLI には、ゾーンまたはグローバル API サーバーとやり取りしてリソースを管理するための次の方法が用意されています。
- ゾーンまたはグローバル コンソール URL を構成する: CLI を使用して、ゾーンまたはグローバル コンソール URL にログインします。
- ゾーン コマンドフラグを定義する: 特定のゾーン アクションにゾーン CLI フラグを使用します。
グローバル URL は、gdcloud CLI を初期化するときにデフォルトで構成されるものです。gdcloud CLI 構成を更新して、ゾーン URL を設定し、それらにログインしてゾーン固有のタスクを完了できます。
同様に、gdcloud CLI には、コマンド グループ全体で多くのリソース管理タスクに設定できる --zone
フラグが用意されています。グローバル URL 構成にログインすると、グローバル リソースに対する CLI アクションは、スコープ内のすべてのゾーンに適用されます。
gdcloud CLI の詳細については、gdcloud CLI の概要をご覧ください。
Management API
GDC エアーギャップでは、グローバル リソースとゾーンリソースの両方を作成して管理するために、グローバル API とゾーン API の 2 つのレベルの管理プレーン API が提供されています。
グローバル API とゾーン API はどちらも、異なるエンドポイントで提供される Kubernetes 宣言型 API です。GDC リソースは、API サーバーの Kubernetes カスタム リソースとして表されます。すべての組織で、ゾーン管理 API サーバーは管理者とデベロッパーがゾーンリソースを管理するためのゾーン API を提供し、グローバル管理 API サーバーはグローバル リソースを管理するためのグローバル API を提供します。
GDC の API の詳細については、API の概要をご覧ください。
Terraform
GDC air-gapped は、Terraform を使用してすべてのリソースタイプをシームレスにデプロイして管理する方法を提供します。Kubernetes プロバイダ プラグインを使用して、業界標準の Terraform ライフサイクル管理を使用して、使用可能なゾーン管理 API とグローバル管理 API を呼び出します。
詳細については、Terraform の概要をご覧ください。
次のステップ
- GDC ユニバースの構成の詳細については、GDC エアーギャップのゾーンをご覧ください。
- 高可用性ガイドで、アプリケーションがローカル ゾーンの障害に耐えられるようにする方法を確認する。
- 使用可能な gdcloud CLI コマンドの包括的なリストについては、gdcloud CLI リファレンス ドキュメントをご覧ください。
- 利用可能なゾーン API とグローバル API の一覧については、API リファレンス ドキュメントをご覧ください。
- Terraform を構成するには、Terraform のドキュメントをご覧ください。