Google Cloud Platform

Cloud Deployment Manager でプロジェクトを自動作成

Google Cloud Platform(GCP)プロジェクトをたくさん作成しなければならなくなったら、どうしますか? 単に量をこなすために、もしくはプロジェクト作成を標準化するのであれば、プロジェクトの作成を自動化する方法があると便利でしょう。そこで私たちは、プロジェクトの作成を簡素化するツールを用意しました。

Google Cloud Deployment Manager は、Compute Engine(つまり仮想マシン)や Container EngineCloud SQLBigQueryCloud Storage を含む GCP リソースの作成と管理に使用できるネイティブな GCP ツールです。このたび、Deployment Manager でプロジェクトの作成や管理が行えるようになりました。

プロジェクト数が 10 であろうと 1 万であろうと、Deployment Manager を使用してプロジェクトの作成と管理を自動化すれば、すべてのプロジェクトを統一的に管理できます。

Deployment Manager には次の処理を行うテンプレート セットが含まれています。

  • Project Creation : 指定された名前のプロジェクトを新規に作成します。
  • Billing : 新プロジェクトの課金アカウントを設定します。
  • Permissions : プロジェクトの IAM ポリシーを設定します。
  • Service Accounts : このプロジェクト内で実行されるアプリケーションやサービスのために、サービス アカウントを任意で作成します。
  • APIs : プロジェクト内のアプリケーションやサービスで必要な互換 Google API を有効にします。

使ってみよう

Deployment Manager でプロジェクトを作るのは簡単です。手順を説明しましょう。

GitHub からサンプル テンプレートをダウンロードします。

  1. Deployment Manager の GitHub リポジトリにある project_creation ディレクトリからプロジェクト作成サンプルをダウンロードするか、DM の GitHub リポジトリ全体をクローンします。
    git clone
    https://github.com/GoogleCloudPlatform/deploymentmanager-samples.git
    そして、examples/v2/project_creation ディレクトリのテンプレートをコピーします。
  2. project_creation ディレクトリの Readme に記載されている手順に従います。なお、Readme には手順が詳しく書かれていますが、1 つだけ特に強調しておきたいポイントがあります。それは、Cloud Console で “Project Creation” プロジェクトとして使う新プロジェクトを作成するということです。プロジェクトを作成し、課金アカウントを管理するためには、Deployment Manager を実行するサービス アカウントに強力な IAM パーミッションを与えなければなりません。そこで、この専用プロジェクトを作り、他のプロジェクトの作成にはこのプロジェクトだけを使うようにするわけです。
  3. デプロイをカスタマイズします。
    • 最低でも、作成するプロジェクトの名前、課金アカウント、使いたい API、使用する IAM パーミッション、有効にしたい API を config.yaml ファイルに追加する必要があります。
    • 高度なカスタマイズ : ここではニーズに合わせて大小さまざまなことを設定できます。たとえば、会社で使うプロジェクトには、本番サービス、テスト サービス、開発者サンドボックスという 3 種類のタイプがあるとします。タイプごとに IAM パーミッションは大きく異なり、サービス アカウントのタイプも異なっていて、場合によっては API も変えなければなりません。その場合、たとえば “project-type” パラメータを持つ新しいトップ レベル テンプレートを作ります。このパラメータは入力として文字列(“prodservice”、“testservice”、“developer” など)を受け取り、その値を使ってプロジェクトをカスタマイズします。あるいは、プロジェクト タイプごとにそれぞれの正しい設定を格納する .yaml ファイルを 3 つ作るという方法もあります。
  4. 最低でも、作成するプロジェクトの名前、課金アカウント、使いたい API、使用する IAM パーミッション、有効にしたい API を config.yaml ファイルに追加する必要があります。
  5. 高度なカスタマイズ : ここではニーズに合わせて大小さまざまなことを設定できます。たとえば、会社で使うプロジェクトには、本番サービス、テスト サービス、開発者サンドボックスという 3 種類のタイプがあるとします。タイプごとに IAM パーミッションは大きく異なり、サービス アカウントのタイプも異なっていて、場合によっては API も変えなければなりません。その場合、たとえば “project-type” パラメータを持つ新しいトップ レベル テンプレートを作ります。このパラメータは入力として文字列(“prodservice”、“testservice”、“developer” など)を受け取り、その値を使ってプロジェクトをカスタマイズします。あるいは、プロジェクト タイプごとにそれぞれの正しい設定を格納する .yaml ファイルを 3 つ作るという方法もあります。
  6. プロジェクトを作成します。
    テンプレートを格納したディレクトリから、コマンドライン インターフェースを使って Deployment Manager を実行します。

  gcloud deployment-manager deployments create 
<newproject_deployment> --config config.yaml --project <Project 
Creation project>
    <newproject_deployment> にはデプロイに与える名前を指定します。新プロジェクト名ではないので注意してください。新プロジェクト名は config.yaml ファイルで指定されています。ただし、両者の名前を同じか似たものにしておくと、数百ものプロジェクトを作成した後でも、デプロイとプロジェクト名の対応関係がわかりやすくなります。
以上で、Deployment Manager を使用して、GCP リソースだけでなく、プロジェクトの作成と管理を自動的に行う方法がおわかりいただけたと思います。

Deployment Manager の使い方をもっと知りたい方は、このブログ スペースに注目してください。また、この機能についての感想もお待ちしています。dep-mgr-feedback@google.com へのメールもご利用いただけます。

* この投稿は米国時間 4 月 13 日、Product Manager である Chris Crall によって投稿されたもの(投稿はこちら)の抄訳です。

- By Chris Crall, Product Manager