皆様、こんにちは!
アイレット株式会社 DX開発事業部の楊林と申します。
前回の投稿では、クラウドサービスの特徴と種類、そして Google Cloud を使い始めるための基本ツールについて紹介しました。
その中でリソースという言葉を何度か使いましたが、そもそも Google Cloud はリソースをどのように管理しているのでしょうか?
今回はGoogle Cloudのリソースマネジメントをテーマに、リソース階層・割り当て・ラベル・課金管理についてまとめていきます。
リソース階層
Google Cloud のリソースはツリー構造で管理されており、上から順に 4 つのレベルがあります。
そして、設定したポリシーは基本的に下位へ継承されます。
組織
組織ノードはリソース階層の最上位で、通常は会社そのものを表します。
組織ノードにはいくつか特別なロールが紐づきます。
組織管理者(Organization Admin)
組織全体に対する管理アクセス権を持ち、IAMポリシーの定義やリソース階層構造の決定などを行います。
ただし最小権限の原則に従い、フォルダ作成など一部の操作権限は別ロールに委任されます。
プロジェクト作成者(Project Creator)
組織内で新しいプロジェクトを作成できるロールです。
フォルダ
フォルダは組織の下に位置し、法人・部門・チームといった単位をモデル化できます。
リソースをさらに細かく分けてグループ化でき、プロジェクト間の分離境界としての役割も持っています。
フォルダにはプロジェクトと他のフォルダの両方を格納でき、組織内でプロジェクトを階層的にグループ化し、独自の粒度でリソースにポリシーを割り当てられます。
フォルダに設定したポリシーは、その配下のすべてのフォルダ・プロジェクトに継承されます。
プロジェクト
プロジェクトは Google Cloud の利用単位であり、アプリケーションやコンポーネントごとに分けて作成します。
各リソースは1つのプロジェクトだけに属し、オブジェクトとサービスもプロジェクトによって課金に紐づけられます。
プロジェクトには次の3つの識別情報があります:
- プロジェクトID:グローバルで一意で、プロジェクトが作成される際に割り当てられて、作成後は変更不可です
- プロジェクト番号:グローバルで一意で、システムに自動で付与されて、ユーザーから変更不可です
- プロジェクト名:ユーザーが自由に指定と変更が可能で、重複も可能です
割り当て(Quota)
Google Cloud のリソースには、プロジェクト単位の割り当てや制限が設定されています。主な分類は以下の3つです:
- プロジェクトごとに作成可能なリソース数
- APIリクエストの実行速度
- 各リージョンにおけるリソース割り当て
使用量の増加に合わせて割り当てを引き上げることも可能ですが、無制限には増やせません。
割り当ての変更を制限することに以下のメリットがあります:
- 攻撃時の過度リソース消費を防ぐ
- 請求額の予定外急増を抑える
- 適切なサイズ検討と定期的な見直しを促す
ラベル(Label)
ラベルはユーザーがリソースを整理や管理のために、リソースに設定するKey-Value方式のユーティリティです。
各リソースにはチームやコストセンター、コンポーネント、環境やステージ、オーナーや連絡先など、様々な尺度で、最大64個のラベルを設定することができます。
課金
プロジェクト費用を管理するために、予算(Budget)を設定し、実際の利用額の超過を追跡できます。
予算の設定は確定の金額だけではなく、前月利用額に基づく係数計算の結果に設定することもできます。
予算の一定割合や指定金額を超過する場合、課金管理者に警告するためのアラートを設定することができます。
アラートはメール送信だけではなく、Pub/Sub利用のプログラム受信や、Cloud FuctionとPub/Subトピックの連携など、様々の手段で利用額の更新情報を受信できて、費用管理を自動化まで実現できます。
また、すべてのリソースにラベルを付けておけば、課金データを BigQuery にエクスポートすることで、利用額分析も簡単になります。
データポータルを使えば、一定期間の利用額をダッシュボードとして可視化でき、予算管理にも大いに役立ちます。
最後に
リソース管理は、Google Cloud を安全かつ効率的に使うための基盤です。
この部分を理解しておくことで、今後扱うマネージドサービスや自動化の仕組みもよりスムーズに理解できるようになります。