このドキュメントでは、Compute Engine のグローバル リソース、リージョン リソース、ゾーンリソースについて説明します。
Google Cloud のリソースは世界中の複数のロケーションでホストされています。これらのロケーションは、リージョンと、そのリージョン内のゾーンで構成されています。リージョン内の異なるゾーンにリソースを置くことで、インフラストラクチャ、ハードウェア、ソフトウェアにさまざまな種類の障害が発生した場合に、その障害を切り離すことができます。複数のリージョンにリソースを置けば、障害からの隔離をさらに強化できます。複数の障害発生ドメインにリソースを分散させることで、堅牢なシステムを設計できます。
Compute Engine のすべてのリソースは、グローバル、リージョン、ゾーンに分類されます。たとえば、イメージはグローバル リソースですが、永続ディスクはリージョン リソースまたはゾーンリソースのいずれかです。リソースのスコープにより、アクセス可能なリソースが決まります。たとえば、グローバル リソースには任意のリージョンまたはゾーンのリソースからアクセスできます。つまり、仮想マシン(VM)インスタンスが別のゾーンにあったとしても、それらは同じグローバル イメージを使用できます。リージョン リソースにアクセスできるのは、同じリージョン内のリソースだけです。たとえば、リージョンの静的外部 IP アドレスにアクセスできるのは、同じリージョンのリソースだけです。VM インスタンスが特定の静的外部 IP アドレスを使用するには、当該アドレスと同じリージョン内のゾーンにそのインスタンスを置く必要があります。
リソースのスコープは、アクセス可能なリソースの範囲を表します。ただし、グローバル、ゾーン、リージョンに関係なく、どのリソースもプロジェクト内で一意でなければなりません。つまり、Compute Engine 内のリソースにはプロジェクト全体で一意の名前を付ける必要があります。たとえば、us-central1-a で VM インスタンス example-instance
に名前を付け、同じプロジェクト内の別の VM に同じ名前を付けることはできません。
グローバル リソース
グローバル リソースは、同じプロジェクトに属するすべてのゾーンのすべてのリソースからアクセスできます。グローバル リソースを作成するときは、スコープを指定する必要はありません。グローバル リソースには以下があります。
- アドレス
- アドレス コレクションには、プロジェクト用に予約したすべてのグローバル静的外部 IP アドレスが含まれています。グローバル静的外部 IP アドレスはグローバル リソースであり、グローバル ロードバランサに使用されます。
- イメージ
- イメージは、同一プロジェクト内のすべてのインスタンスやディスク リソースで使用できます。Google では、インスタンスの起動に使用できる事前構成済みのイメージを用意しています。これらのイメージをカスタマイズすることも、独自のイメージをビルドすることもできます。必要に応じて、プロジェクト間でイメージを共有できます。
- スナップショット
- 永続ディスクのスナップショットは、同じプロジェクトのすべてのディスクで使用できます。必要に応じて、プロジェクト間でスナップショットを共有できます。
- グローバル インスタンス テンプレート
- グローバル インスタンス テンプレートを使用して VM インスタンス、マネージド インスタンス グループ、予約を作成できます。グローバル インスタンス テンプレートにゾーンリソースを指定すると、そのテンプレートの使用は指定したゾーンリソースのロケーションに限定されます。
- Cloud Interconnect
- Cloud Interconnect は、ユーザーのオンプレミス ネットワークから Google のネットワークへの可用性が高い接続です。この接続はグローバル リソースです。ただし、この接続内で実行される相互接続のアタッチメントはリージョン リソースです。
- Cloud Interconnect のロケーション
- Cloud Interconnect のロケーションは、ネットワークの近くの Cloud Interconnect の物理接続ポイントです。使用可能なコロケーション施設とエッジ アベイラビリティ ドメインごとに、1 つの Cloud Interconnect ロケーションがあります。Cloud Interconnect ロケーションは、読み取り専用のグローバル リソースです。
- VPC ネットワーク
- VPC ネットワークはグローバル リソースですが、個々のサブネットはリージョン リソースです。
- ファイアウォール
- ファイアウォールは 1 つの VPC ネットワークに適用されますが、他のネットワークからのパケットもファイアウォールに到達可能であるため、グローバル リソースとみなされます。
- ルート
- ルートを使用することによって、複雑なネットワーキング シナリオを作成できます。特定の IP 範囲におけるトラフィックのルーティングを管理できます。ルートは、ルーターがローカルエリア ネットワーク内でトラフィックを経路指定する仕組みと同様です。ルートは、Google Cloud プロジェクト内の VPC ネットワークに適用され、グローバル リソースとみなされます。
- グローバル オペレーション
オペレーションは、ゾーンリソース、リージョン リソース、またはグローバル リソースのいずれかです。グローバル リソースを対象にオペレーションを実行する場合、そのオペレーションはグローバル オペレーションとみなされます。たとえば、イメージの挿入は、イメージがグローバル リソースであるため、グローバル オペレーションとみなされます。
リージョン リソース
リージョン リソースには、同じリージョン内のすべてのリソースからアクセスできます。たとえば、特定のリージョンで静的外部 IP アドレスを予約した場合、その静的外部 IP アドレスは同じリージョン内のインスタンスにのみ割り当てることができます。各リージョンには、1 つまたは複数のゾーンがあります。使用可能なリージョンとゾーンの一覧については、リージョンとゾーンをご覧ください。
リージョン リソースには以下があります。
- アドレス
- アドレス コレクションに、プロジェクト用に予約した、リージョンの静的外部 IP アドレスのすべてが含まれています。静的外部 IP アドレスはリージョン リソースであり、そのアドレスと同じリージョンにあるインスタンスによって使用されます。また、リージョン ロードバランサやプロトコル転送のリージョン転送ルールによっても使用されます。
- Cloud Interconnect のアタッチメント
- 相互接続のアタッチメントによって、Cloud Interconnect に VLAN が割り当てられ、その VLAN が VPC ネットワークに接続されます。アタッチメントはリージョン リソースですが、Cloud Interconnect はグローバル リソースです。
- プレースメント ポリシー
- プレースメント ポリシーは、VM を相互にどの程度近づけて配置するかを制御します。これにより、ホストのシステム障害やネットワーク レイテンシの影響を軽減できます。
- リージョン インスタンス テンプレート
- リージョン インスタンス テンプレートを使用して VM インスタンス、マネージド インスタンス グループ、予約を作成できます。インスタンス テンプレートにゾーンリソースを指定すると、そのテンプレートの使用は指定したゾーンリソースのロケーションに限定されます。
- リージョン マネージド インスタンス グループ
- リージョン マネージド インスタンス グループは、複数のゾーンにまたがる同一のインスタンスの集合です。リージョン マネージド インスタンス グループを使用すると、アプリの負荷を複数のゾーンに分散できます。アプリが単一のゾーンに制限されなくなり、異なる複数のゾーンで複数のインスタンス グループを管理する必要もなくなります。
- リージョン永続ディスク
- リージョン永続ディスクを使用すると、同じリージョン内の 2 つのゾーン間で耐久性の高いデータ ストレージとデータ レプリケーションを実現できます。フェイルオーバーが発生した場合、リージョン永続ディスクを同じリージョン内の別のインスタンスに強制接続できます。ゾーン永続ディスクをインスタンスに強制的に接続することはできません。必要に応じて、プロジェクト間でディスク リソースを共有し、他のプロジェクトでこれらのディスクからイメージやスナップショットを作成できます。ただし、他のプロジェクトのインスタンスがディスクに接続することはできません。
- リージョン オペレーション
オペレーションは、ゾーンリソース、リージョン リソース、またはグローバル リソースのいずれかです。リージョン リソースに対してオペレーションを実行している場合、そのオペレーションはリージョン オペレーションとみなされます。たとえば、アドレスはリージョン固有のリソースであるため、アドレスの予約はリージョン オペレーションとみなされます。
- サブネット
サブネットは、ネットワーク IP 空間をリージョン別にプレフィックス(サブネット)で分割し、インスタンスの内部 IP アドレスの割り当てに使用するプレフィックスを制御します。
ゾーンリソース
ゾーンでホストされるリソースをゾーンリソースと呼びます。ゾーン固有のリソース(ゾーンリソース)は、そのゾーンに固有のものであり、同じゾーンの他のリソースでのみ使用できます。たとえば、インスタンスはゾーンリソースです。インスタンスを作成する際、インスタンスが配置されるゾーンを指定する必要があります。インスタンスは、同じゾーン内の他のリソース、およびグローバル リソースにアクセスできますが、別のゾーンにあるゾーンリソース(ディスク リソースなど)にはアクセスできません。
使用可能なゾーンのリストについては、リージョンとゾーンをご覧ください。
ゾーンリソースには以下があります。
- インスタンス
- 仮想マシン(VM)インスタンスはゾーン内に配置され、グローバル リソースまたは同じゾーン内のリソースにアクセスできます。
- 永続ディスク
- 永続ディスクは、同じゾーン内の他のインスタンスからアクセスされます。ディスクは、同じゾーンのインスタンスにのみアタッチできます。別のゾーンのインスタンスにディスクを接続することはできません。必要に応じて、プロジェクト間でディスク リソースを共有し、他のプロジェクトでこれらのディスクからイメージやスナップショットを作成できます。ただし、他のプロジェクトのインスタンスがディスクに接続することはできません。
- マシンタイプ
- マシンタイプはゾーンリソースです。インスタンスとディスクは、同じゾーン内のマシンタイプのみを使用できます。
- ゾーン マネージド インスタンス グループ
- ゾーン マネージド インスタンス グループは、インスタンス テンプレートを使用して、単一のゾーン内に同一のインスタンスのグループを作成します。マネージド インスタンス グループに含まれる VM インスタンスは、個々のインスタンスとして管理するのではなく、まとめて 1 つのエンティティとして管理します。
- GPU
- GPU はゾーンリソースです。GPU が利用可能なゾーンについては、GPU のリージョンとゾーンの可用性をご覧ください。
- Cloud TPU
- TPU はゾーンリソースです。TPU が利用可能なゾーンについては、可用性をご覧ください。
- ゾーン オペレーション
オペレーションは、ゾーンリソース、リージョン リソース、またはグローバル リソースのいずれかです。ゾーン固有のリソースに対してオペレーションを実行している場合、そのオペレーションはゾーン オペレーションとみなされます。たとえば、インスタンスの挿入は、ゾーン固有のリソースであるインスタンスに対してオペレーションが実行されるため、ゾーン オペレーションとみなされます。
集約リスト
デフォルトでは、リソースのリストを返すリクエストのスコープは、特定のコントロール プレーンです。たとえば、API でインスタンスのリストを取得するクエリを実行するときは、インスタンスをリストする対象のゾーンを指定する必要があります。すべてのゾーンやリージョンのリソースをリストするには、集約リストのクエリを実行します。リージョン リソースおよびゾーンリソースごとに集約リストの URI があり、このクエリを実行することで、そのタイプの全リソースをリストできます。たとえば、すべてのゾーンの全インスタンスをリストするには、次の URI にリクエストを発行します。
https://compute.googleapis.com/compute/v1/projects/<project-id>/aggregated/instances
同様に、すべてのリージョンの全アドレスをリストするには、次の URI にリクエストを発行します。
https://compute.googleapis.com/compute/v1/projects/<project-id>/aggregated/addresses
詳細については、対象リソースの aggregateList
メソッドをご覧ください。
次のステップ
- リージョンとゾーンについて学習する。
- 地域とリージョン、地域ごとのデータ管理について学習する。
- インスタンスについて学習する。
- Linux スタートガイドを実施する。
- Windows スタートガイドを実施する。
- デフォルトのプロジェクト、ゾーン、リージョンを設定する方法を学習する。