はじめに
本記事はGoogle Cloudで管理しているリソースを棚卸しするための方法について記載しています。
情報システム部門やCCoEなど横断的組織として活動する場合は、定期的なリソースの棚卸しが必要不可欠です。
ガベージコレクションのように不要なリソースは定期的に削除することで、秩序を保ち無駄を無くしましょう。
本記事で紹介している方法は一例です。全てを網羅する内容ではない点については、ご留意ください。
プロジェクトの棚卸し
前提として、Google Cloudで使用するリソースは、Resource Managerが提供する機能を踏まえて、以下図のような階層になっています。
従ってCCoEのようなクラウドを管理する部門では、フォルダとプロジェクトを適切に管理することが重要です。
プロジェクト管理の詳細については、公式ドキュメントのプロジェクトの作成と管理から確認できます。
プロジェクトの棚卸しを行う方法について、コンソールから行う方法と、コマンドライン(以下、CLI)で行う方法を以下に記載します。
出力される情報は、実行したユーザがアクセス可能なプロジェクトに限定されます。
コンソール
コンソールで操作する場合は、Resource Managerのコンソール画面から確認することができます。
gcloud
CLIで操作したい場合は、gcloud projects listコマンドを使用することで、プロジェクトを一覧表示します。
各オプションを使用して出力を加工することができます。
以下は、出力フォーマットをjson形式で、プロジェクトの作成日付で並び替えを行ない、jsonファイルとして保存する場合の例です。
$ gcloud projects list --format="json" --sort-by=createTime > project.json
また、--format
オプションを活用することで、csvなど任意の形式に出力することができます。
Google Cloud Platform Japan Blogのgcloud による出力情報のフィルタと整形を参考にすると、テーブル形式の出力などをも可能です。
$ gcloud projects list --format="table[box,title='My Project List'](createTime:sort=1,name,projectNumber,projectId:label=ProjectID,parent.id:label=Parent)"
gcloud topic formats
コマンドを実行することで、出力形式の確認ができます。
リソースの棚卸し
IAMのアセットインベントリを使用することで、全体のリソースを可視化することができます。
出力される情報は、実行したユーザがアクセス可能なリソースに限定されます。
コンソール
コンソールで操作する場合は、IAMのコンソール画面を開き、アセットインベントリから確認することができます。
以下では概要タブを例として載せていますが、リソースタブを見ることで、詳細な分析が可能です。
コンソールから確認する場合は、結果の出力件数が最新でない場合があるため、リソースタブ画面の右上にある「クエリを表示」から、API経由で最新の情報を取得することができます。
gcloud
CLIで操作したい場合は、gcloud asset listコマンドを使用することで、アセットを一覧表示します。
--project
オプションでプロジェクトをフィルターして使用します。
基本的な使い方については、公式ドキュメントのアセットの一覧表示から確認できます。
$ gcloud asset list --project='pj-hoge'
おわりに
ガバナンスを実現するために、適切な管理が求められのは言うまでもありません。
適切な管理を行うためには、抽象と具体を的確に捉えて、構造化することが必要です。
従って戦略的に構造化することで、柔軟なポリシーによる制御が可能です。
以上です。