概要
Terraform で作成された以下の AWS 上のリソース群
- AWS CodeBuild の
growi-official-image-builder- buildspec はプロジェクト側で
apps/app/docker/codebuild/buildspec.ymlを指定
- buildspec はプロジェクト側で
- OIDC 関連リソース
利用する側の情報
Terraform による管理
- ルートディレクトリは
apps/app/docker/codebuild
管理ポリシー
- ステート(tfstate) は Terraform Cloud で管理する
- Terraform Cloud はステートの管理のみに利用し、リソースの変更が必要な場合は AWS リソースにアクセス可能な各開発者がローカルPCから apply する
- そのため Terraform Cloud へのアクセスは必須ではないが、もし必要であれば weseek organization への招待を、既に加入しているメンバーに依頼する
開発環境セットアップ手順
-
Terraform 公式ドキュメント を参考に Terraform CLI をセットアップする
- Win であれば WSL 上でのセットアップ(つまり Linux 向けマニュアル通りのセットアップ)を勧める
terraformコマンドが動作するところまでで OK
-
AWS 公式ドキュメント を参考に、AWS CLI をセットアップする
awsコマンドが動作するところまでで OK
-
AWS へログインする
$ aws login --profile weseekブラウザが開くので、AWS の認証を完了する。 これにより
~/.aws/configに[profile weseek]が自動生成される。 -
Terraform 用プロファイルを追加する
~/.aws/configに以下を追記する:[profile weseek-tf] region = ap-northeast-1 credential_process = aws configure export-credentials --profile weseek --format process※ Terraform AWS Provider は
aws loginの認証方式に未対応のため、この設定で橋渡しをする -
動作確認
AWS CLI:
$ aws codebuild list-projects --profile weseek期待される出力:
{ "projects": [ "growi-official-image-builder" ] }
適用手順
cd apps/app/docker/codebuild terraform init terraform apply
- Secrets Manager は入れ物だけを作るので、リソースを再作成した場合は
buildspec.ymlが要求する secret 値を入れる必要がある
破棄手順
cd apps/app/docker/codebuild terraform destroy