この記事では、Cloud Composer を Terraform で構築する方法を紹介します。Cloud Composer は現状 Version1 と Version2 の両方のバージョンが存在しております。この記事では、Version2 の方を使って構築します。
この記事の読者
基本的には以下の方を対象に書いております。
- Terraform の基本がわかっている
- Cloud Composer を使ったことがある
もし Terraform の使い方がわからない場合は、 こちらの記事などを参考にしてください。
早速ですが、Terraform の書き方は以下の通りです。
ファイル構成
provider の設定などの基本的なところは飛ばして、Cloud Composer を設定するにあたって必要なファイルのみをここでは記載します。
variables.tf
まず、変数の定義ですが、Cloud Composer のバージョンや Workload の Config などを定義しています。ここの設定で Cloud Composer の料金なども変わってくるので、小規模なデータパイプラインの構築などであれば、大きなスペックは必要ないと思いますので、小さいサイズを設定することを推奨します。
composer.tf
次に、Composer の設定です。先程定義した変数を使い、次のように定義します。
Cloud Composer のサービスアカウントなどは、権限をそのまま書くと冗長になるので、 for_each
を使って書いています。
Cloud Composer 構築の際の手順
Terraform は用意できたのですが、これをそのまま apply しても動作しません。次のような手順を通して、Terraform の apply を実行します。
- 各種 API の有効化(ちょっとここは自信がないです)
- Cloud Composer API
- Compute Engine API
- Kubernetes Engine API
${project_number}-compute@developer.gserviceaccount.com
に Editor 権限を付与
service-${project_number}@cloudcomposer-accounts.iam.gserviceaccount.com
に以下の権限を付与
- Cloud Composer API Service Agent
- Cloud Composer v2 API Service Agent Extension
- Environment and Storage Object Administrator
- tfstte のバケットを作成して、設定する
- terraform init
- terraform plan
- terraform apply
以上で Terraform 経由で Cloud Composer を作成することができます。
参考