# 概要

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

- [AWS CodeBuild](https://ap-northeast-1.console.aws.amazon.com/codesuite/codebuild/projects) の `growi-official-image-builder`
    - buildspec はプロジェクト側で `apps/app/docker/codebuild/buildspec.yml` を指定
- OIDC 関連リソース
    - [ID プロバイダ](https://us-east-1.console.aws.amazon.com/iamv2/home?region=ap-northeast-1#/identity_providers)
    - [IAM assume 対象 Role (GitHubOIDC-for-growi)](https://us-east-1.console.aws.amazon.com/iamv2/home?region=ap-northeast-1#/roles/details/GitHubOIDC-for-growi)

# 利用する側の情報

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


# Terraform による管理

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

## 管理ポリシー
- ステート(tfstate) は Terraform Cloud で管理する
    - [growi-official-image-builder workspace](https://app.terraform.io/app/weseek/workspaces/growi-official-image-builder)
- Terraform Cloud はステートの管理のみに利用し、リソースの変更が必要な場合は AWS リソースにアクセス可能な各開発者がローカルPCから apply する
    - そのため Terraform Cloud へのアクセスは必須ではないが、もし必要であれば weseek organization への招待を、既に加入しているメンバーに依頼する
 
## 開発環境セットアップ手順

1. [Terraform 公式ドキュメント](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) を参考に Terraform CLI をセットアップする
    - Win であれば WSL 上でのセットアップ(つまり Linux 向けマニュアル通りのセットアップ)を勧める
    - `terraform` コマンドが動作するところまでで OK

1. [AWS 公式ドキュメント](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) を参考に、AWS CLI をセットアップする
    - `aws` コマンドが動作するところまでで OK

1. AWS へログインする

    ```bash
    $ aws login --profile weseek
    ```

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

1. Terraform 用プロファイルを追加する

    `~/.aws/config` に以下を追記する:

    ```ini
    [profile weseek-tf]
    region = ap-northeast-1
    credential_process = aws configure export-credentials --profile weseek --format process
    ```

    ※ Terraform AWS Provider は `aws login` の認証方式に未対応のため、この設定で橋渡しをする

1. 動作確認

    AWS CLI:
    ```bash
    $ aws codebuild list-projects --profile weseek
    ```

    期待される出力:
    ```json
    {
        "projects": [
            "growi-official-image-builder"
        ]
    }
    ```


## 適用手順

```bash
cd apps/app/docker/codebuild
terraform init
terraform apply
```

- Secrets Manager は入れ物だけを作るので、リソースを再作成した場合は `buildspec.yml` が要求する secret 値を入れる必要がある

## 破棄手順

```bash
cd apps/app/docker/codebuild
terraform destroy
```




---

## Page Navigation

- Canonical URL: https://dev.growi.org/資料/リリースガイド/公式イメージビルダー
- Permalink: https://dev.growi.org/63c94432a27caf68eb5fd767
- Parent: [リリースガイド](/63c7c158b62450f06eb85888.md)
- Children: 0 total
- Total descendants: 0
- Siblings: 5 total
  - [RCリリースの手順](/634e0a38b6a958b3198bc98e.md)
  - [growi-mcp-server リリース手順](/68af290b3cbd209b0d46bb6c.md)
  - [growi-sdk-typescript リリース手順](/68a68e55c93cf7db40821efe.md)
  - [リリースノート生成手順詳解](/64d9bd55fefbc9fa77688d45.md)
  - [リリースプロセス詳解](/63c7c219b62450f06eb85bf1.md)
- Last updated: 2025-12-24T09:05:09.088Z by yuki
- Full page listing (all children regardless of count): https://dev.growi.org/_api/v3/page-listing/children?id=63c94432a27caf68eb5fd767
