概要

Terraform で作成された以下の AWS 上のリソース群

利用する側の情報

../リリースプロセス詳解

Terraform による管理

  • ルートディレクトリは apps/app/docker/codebuild

管理ポリシー

  • ステート(tfstate) は Terraform Cloud で管理する
  • Terraform Cloud はステートの管理のみに利用し、リソースの変更が必要な場合は AWS リソースにアクセス可能な各開発者がローカルPCから apply する
    • そのため Terraform Cloud へのアクセスは必須ではないが、もし必要であれば weseek organization への招待を、既に加入しているメンバーに依頼する

開発環境セットアップ手順

  1. Terraform 公式ドキュメント を参考に Terraform CLI をセットアップする

    • Win であれば WSL 上でのセットアップ(つまり Linux 向けマニュアル通りのセットアップ)を勧める
    • terraform コマンドが動作するところまでで OK
  2. AWS 公式ドキュメント を参考に、AWS CLI をセットアップする

    • aws コマンドが動作するところまでで OK
  3. AWS へログインする

    $ aws login --profile weseek

    ブラウザが開くので、AWS の認証を完了する。 これにより ~/.aws/config[profile weseek] が自動生成される。

  4. 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 の認証方式に未対応のため、この設定で橋渡しをする

  5. 動作確認

    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