この記事を書いたきっかけ
GAE(Google Application Engine)を使用する機会があり,GCP(Google Cloud Platform)についての全体像を掴んでおこうと思った. 何が利用でき、各部分がどのように連携して機能するかを知ることで,進め方を決めるのに役立つと思ったから.
Google Cloud のリソース
Google Cloud = ハードアセット+仮想マシン(VM)などの仮想アセット.
これらのアセットが,世界中にある Google のデータセンターでガンガン稼働している.
各データセンターはリージョンに位置している.
リージョンはGoogle Cloudアセットロケーションの最小単位であるゾーンの集合.各ゾーンは文字の識別子とリージョン名を組み合わせた名前で識別される.たとえば、東アジアのリージョンのゾーン a は、asia-east1-a という名前.
Google Cloudはデータセンターにあって,データセンターはリージョンにあって,リージョンはゾーンから構成されていて.と言う感じ
なぜ細分化する必要があるのか?
リソースのこの分布には、リソースをクライアントの近くに配置することによる障害時の冗長性やレイテンシの削減など、いくつかの利点があります。この分布により、リソースを一緒に使用する方法についてのいくつかのルールが導入されます。
もしもの時のために,リージョンが近いと対応しやすいらしい.普通に考えて,データセンターも物理的なものなので災害などで故障してしまうと顧客のクラウドアセットも水の泡になってしまう.そうならないために,データセンターを世界各地に分散させるし,レイテンシ解消のために自分のと近いデータセンターを選択することが推奨されている.
しかし,この分布のためにリソースの使用に以下のような制限がかかる.
グローバル, リージョン, ゾーンリソース
グローバル リソース→ 他のリソース,複数のリージョンやゾーンによってもアクセスできる.事前設定されたディスクイメージ,ディスクのスナップショット,ネットワークを含む.
リージョン リソース→ 同じリージョンに位置するリソースからのみアクセスできます.静的外部 IPアドレスが含まれます。
ゾーンリソース→ 同じゾーンに配置されているリソースからのみアクセスすることができます。VM インスタンス、その種類とディスクが含まれます。
次の図は、グローバル スコープ、リージョン、ゾーン、またそれらのリソースの一部との関係を示しています。
この図からもわかるよう,ゾーンリソースは同一ゾーンからしかアクセスできない.リージョンリソースはどんなゾーンからでもアクセスできるが,異なるリージョンからのアクセスはできない.グローバルは...(略)
プロジェクト
Google Cloud のリソースはすべて、プロジェクトに属していなければならない.
プロジェクトとは、構築する対象をまとめて管理する1つの単位と考えることができる.プロジェクトは、設定や権限に加え、アプリケーションに関する情報を記述したその他のメタデータで構成される.同じプロジェクト内のリソースは簡単に連携させることができる。 これは、リージョンとゾーンのルールに沿った内部ネットワーク通信などによって行われる.(共有 VPC または VPC ネットワーク ピアリングを使用しない場合、あるプロジェクトが別のプロジェクトのリソースにアクセスすることはできません。)
各 Google Cloud プロジェクトには次の属性が含まれる.
- ユーザーが提供するプロジェクト名
- プロジェクト ID(ユーザーまたは Google Cloud が指定)
- Google Cloud から提供されるプロジェクト番号
Google Cloud を使った操作では、コマンドや API 呼び出しでこれらの識別子を使用することがある
プロジェクトの機能
プロジェクトは名前空間として機能する.これは、各プロジェクト内のどのリソースもユニークな名前を持っていなければならないことを意味するが、別々のプロジェクトである場合は、通常リソース名を再度使うことができる. (一部のリソース名はグローバルに一意である必要がある)
例えば,同一プロジェクト内にApplication EngineとCloud Storageをリソースとして持っておくと,これら二つのリソースは簡単に連携が可能である.