Skip to content

Commit 3dc1e2d

Browse files
authored
infra: develop環境のCDK環境名をdevからstgに戻す (#113)
* infra: develop環境のCDK環境名をdevからstgに戻す develop環境AWSアカウント方針決定(#111)でstgを廃止しdevに統一する方針としたが、 再度方針を変更し、devという呼称を廃止してstgに戻す。AWSアカウント(826784631888)は 引き続き同一のものを流用し、変わるのは呼称(CDK環境名・スタック名・ワークフロー名等)のみ。 既存の-devサフィックス付きAWSリソース(CloudFormationスタック5つ・ECRリポジトリ・ IAM Role)は事前に削除済み(cdk destroy + ECRリポジトリの手動削除)。 * docs: stgスタックのデプロイ・Secret更新完了を反映 cdk deploy --all --context env=stg で新スタックをデプロイし、GitHub staging EnvironmentのAWS_CDK_DEPLOY_ROLE_ARNを更新した結果をドキュメントに反映する。
1 parent 555119b commit 3dc1e2d

20 files changed

Lines changed: 192 additions & 133 deletions

.github/workflows/_cdk_deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
context_env:
1111
required: true
1212
type: string
13-
description: "CDK context environment name (e.g. prd, dev)"
13+
description: "CDK context environment name (e.g. prd, stg)"
1414
secrets:
1515
role_arn:
1616
required: false

.github/workflows/_cdk_diff.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
context_env:
1111
required: true
1212
type: string
13-
description: "CDK context environment name (e.g. prd, dev)"
13+
description: "CDK context environment name (e.g. prd, stg)"
1414
pr_number:
1515
required: true
1616
type: number
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
name: CDK Deploy [dev]
1+
name: CDK Deploy [stg]
22

3-
# develop へのマージ(push)で infra/aws-cdk に変更があるとき、dev環境へ cdk deploy する。
4-
# develop環境(staging)はAWSアカウントをdev環境(826784631888)と共用しているため、
5-
# 独立したstg環境は作らず、既存のdevスタックにそのままデプロイする
3+
# develop へのマージ(push)で infra/aws-cdk に変更があるとき、stg環境へ cdk deploy する。
4+
# develop環境(staging)はAWSアカウントをstg環境(826784631888)と共用しているため、
5+
# 独立したstg環境は作らず、既存のstgスタックにそのままデプロイする
66
on:
77
push:
88
branches: [develop]
99
paths:
1010
- "infra/aws-cdk/**"
11-
- ".github/workflows/cdk_deploy_dev.yml"
11+
- ".github/workflows/cdk_deploy_stg.yml"
1212
- ".github/workflows/_cdk_deploy.yml"
1313

1414
concurrency:
15-
group: cdk-deploy-dev
15+
group: cdk-deploy-stg
1616
cancel-in-progress: false
1717

1818
permissions:
@@ -24,6 +24,6 @@ jobs:
2424
uses: ./.github/workflows/_cdk_deploy.yml
2525
with:
2626
environment: staging
27-
context_env: dev
27+
context_env: stg
2828
secrets:
2929
role_arn: ${{ secrets.AWS_CDK_DEPLOY_ROLE_ARN }}
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
name: CDK Diff [dev]
1+
name: CDK Diff [stg]
22

3-
# develop への PR で infra/aws-cdk に変更があるとき、dev環境に対する cdk diff を実行し、
3+
# develop への PR で infra/aws-cdk に変更があるとき、stg環境に対する cdk diff を実行し、
44
# 結果を PR コメントに表示する(実際のデプロイは行わない)。
55
on:
66
pull_request:
77
branches: [develop]
88
paths:
99
- "infra/aws-cdk/**"
10-
- ".github/workflows/cdk_diff_dev.yml"
10+
- ".github/workflows/cdk_diff_stg.yml"
1111
- ".github/workflows/_cdk_diff.yml"
1212

1313
concurrency:
14-
group: cdk-diff-dev-${{ github.event.pull_request.number }}
14+
group: cdk-diff-stg-${{ github.event.pull_request.number }}
1515
cancel-in-progress: true
1616

1717
permissions:
@@ -21,12 +21,12 @@ permissions:
2121

2222
jobs:
2323
cdk-diff:
24-
# fork からの PR は OIDC で dev アカウントの認証情報を取得できてしまうと危険なため対象外
24+
# fork からの PR は OIDC で stg アカウントの認証情報を取得できてしまうと危険なため対象外
2525
if: github.event.pull_request.head.repo.full_name == github.repository
2626
uses: ./.github/workflows/_cdk_diff.yml
2727
with:
2828
environment: staging
29-
context_env: dev
29+
context_env: stg
3030
pr_number: ${{ github.event.pull_request.number }}
3131
secrets:
3232
role_arn: ${{ secrets.AWS_CDK_DEPLOY_ROLE_ARN }}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
name: Deploy Topic Analysis Worker (ECR) [dev]
1+
name: Deploy Topic Analysis Worker (ECR) [stg]
22

33
# worker / topic-analysis-core / その依存パッケージがdevelopに変わったときだけ
44
# イメージをビルドしてECRにpushする。Batch Job Definitionは常に:latestタグを
55
# 参照するため、pushするだけで次回のSubmitJobから新しいイメージが使われる。
6-
# develop環境(staging)はAWSアカウントをdev環境(826784631888)と共用しているため、
7-
# push先はdev用ECRリポジトリになる
6+
# develop環境(staging)はAWSアカウントをstg環境(826784631888)と共用しているため、
7+
# push先はstg用ECRリポジトリになる
88
on:
99
push:
1010
branches: [develop]
@@ -14,22 +14,22 @@ on:
1414
- "packages/shared/**"
1515
- "packages/supabase/**"
1616
- "pnpm-lock.yaml"
17-
- ".github/workflows/deploy_worker_ecs_dev.yml"
17+
- ".github/workflows/deploy_worker_ecs_stg.yml"
1818
- ".github/workflows/_deploy_worker_ecs.yml"
1919

2020
permissions:
2121
contents: read
2222
id-token: write
2323

2424
concurrency:
25-
group: deploy-worker-ecs-dev
25+
group: deploy-worker-ecs-stg
2626
cancel-in-progress: false
2727

2828
jobs:
2929
build-and-push:
3030
uses: ./.github/workflows/_deploy_worker_ecs.yml
3131
with:
3232
environment: staging
33-
ecr_repository: mirai-gikai-topic-analysis-worker-dev
33+
ecr_repository: mirai-gikai-topic-analysis-worker-stg
3434
secrets:
3535
role_arn: ${{ secrets.AWS_CDK_DEPLOY_ROLE_ARN }}

docs/20260906_0848_develop環境Vercel環境変数とSecrets実値設定手順.md

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# develop環境(staging)Vercel環境変数 + Secrets Manager実値 設定手順
22

33
`docs/20260831_1206_staging環境整備計画.md`の手順6・「TopicAnalysisStackのデプロイ後にやること」手順1に対応する作業手順。
4-
`MiraiGikaiVercelOidcStack-dev` / `MiraiGikaiTopicAnalysisStack-dev`は既にAWSアカウント`826784631888``saga-koucho-dev`)にデプロイ済みで、この手順はその出力値をVercel/Secrets Managerに反映する作業。
4+
`MiraiGikaiVercelOidcStack-stg` / `MiraiGikaiTopicAnalysisStack-stg`は既にAWSアカウント`826784631888``saga-koucho-stg`)にデプロイ済みで、この手順はその出力値をVercel/Secrets Managerに反映する作業。
55

66
## 前提
77

8-
- AWSアカウント`826784631888`(プロファイル`saga-koucho-dev`)への読み取りアクセス権があること
8+
- AWSアカウント`826784631888`(プロファイル`saga-koucho-stg`)への読み取りアクセス権があること
99
- Vercelチーム`c4j``saga-kocho-web` / `saga-kocho-admin`プロジェクトの設定変更権限があること
1010
- `SUPABASE_SECRET_KEY` / `AI_GATEWAY_API_KEY`などの実値を持っていること(1Password等、社内の秘密情報管理先を参照)
1111

@@ -20,8 +20,8 @@ develop環境(staging)には性質の異なる3種類の認証情報があ
2020
| ③ AWS Secrets Manager | AWSアカウント`826784631888`| AWS Batchで動くworkerコンテナが起動時に読む、Supabase/AI Gatewayの認証情報 | **未設定(本手順の対象)** |
2121

2222
①と②はどちらも「AWSにOIDCで認証する」という点で似ているが、**別々のIAM Role**を使う点に注意:
23-
- ①は`MiraiGikaiGitHubActionsDeployRole-dev`(GitHub Actions用、`infra/aws-cdk`のCDKデプロイ専用)
24-
- ②は`MiraiGikaiVercelBedrockAccessRole-dev`(Vercel用、Bedrock呼び出し+Batch SubmitJob専用)
23+
- ①は`MiraiGikaiGitHubActionsDeployRole-stg`(GitHub Actions用、`infra/aws-cdk`のCDKデプロイ専用)
24+
- ②は`MiraiGikaiVercelBedrockAccessRole-stg`(Vercel用、Bedrock呼び出し+Batch SubmitJob専用)
2525

2626
### ① GitHub Actions Environment Secrets(`staging`、現状・参考情報)
2727

@@ -33,7 +33,7 @@ gh api repos/codeforjapan/saga-broadlistening/environments/staging/secrets --jq
3333

3434
| Secret名 | 用途 |
3535
|---|---|
36-
| `AWS_CDK_DEPLOY_ROLE_ARN` | CDK deploy/diff・worker ECR pushのOIDC認証(`MiraiGikaiGitHubActionsDeployRole-dev`|
36+
| `AWS_CDK_DEPLOY_ROLE_ARN` | CDK deploy/diff・worker ECR pushのOIDC認証(`MiraiGikaiGitHubActionsDeployRole-stg`|
3737
| `SUPABASE_ACCESS_TOKEN` / `SUPABASE_PROJECT_REF` / `SUPABASE_DB_PASSWORD` | `supabase link` / `db push` |
3838
| `SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID` / `SUPABASE_AUTH_EXTERNAL_GOOGLE_SECRET` / `ADMIN_AUTH_CALLBACK_URL` | `supabase config push`(Google OAuth設定) |
3939
| `WEB_VERCEL_DEPLOY_HOOK_URL` / `ADMIN_VERCEL_DEPLOY_HOOK_URL` | DB migrate完了後にVercelデプロイを起動するDeploy Hook |
@@ -46,24 +46,24 @@ adminアプリ(`admin/src/lib/env.ts`)が実行時に読む変数。**webア
4646

4747
| 環境変数名 | 取得元 |
4848
|---|---|
49-
| `AWS_ROLE_ARN` | `MiraiGikaiVercelOidcStack-dev`の出力`VercelBedrockAccessRoleArn` |
49+
| `AWS_ROLE_ARN` | `MiraiGikaiVercelOidcStack-stg`の出力`VercelBedrockAccessRoleArn` |
5050
| `AWS_REGION` | `ap-northeast-1`(固定値。未設定でもコード側のデフォルトで動くが明示推奨) |
51-
| `TOPIC_ANALYSIS_BATCH_JOB_QUEUE_ARN` | `MiraiGikaiTopicAnalysisStack-dev`の出力`JobQueueArnOutput` |
52-
| `TOPIC_ANALYSIS_BATCH_JOB_DEFINITION_ARN` | `MiraiGikaiTopicAnalysisStack-dev`の出力`JobDefinitionArnOutput` |
51+
| `TOPIC_ANALYSIS_BATCH_JOB_QUEUE_ARN` | `MiraiGikaiTopicAnalysisStack-stg`の出力`JobQueueArnOutput` |
52+
| `TOPIC_ANALYSIS_BATCH_JOB_DEFINITION_ARN` | `MiraiGikaiTopicAnalysisStack-stg`の出力`JobDefinitionArnOutput` |
5353

5454
### 2.2 実際の値を取得する
5555

5656
```bash
57-
aws sso login --profile saga-koucho-dev
57+
aws sso login --profile saga-koucho-stg
5858

5959
aws cloudformation describe-stacks \
60-
--stack-name MiraiGikaiVercelOidcStack-dev \
61-
--profile saga-koucho-dev --region ap-northeast-1 \
60+
--stack-name MiraiGikaiVercelOidcStack-stg \
61+
--profile saga-koucho-stg --region ap-northeast-1 \
6262
--query "Stacks[0].Outputs"
6363

6464
aws cloudformation describe-stacks \
65-
--stack-name MiraiGikaiTopicAnalysisStack-dev \
66-
--profile saga-koucho-dev --region ap-northeast-1 \
65+
--stack-name MiraiGikaiTopicAnalysisStack-stg \
66+
--profile saga-koucho-stg --region ap-northeast-1 \
6767
--query "Stacks[0].Outputs"
6868
```
6969

@@ -75,7 +75,7 @@ aws cloudformation describe-stacks \
7575

7676
### 2.4 注意(重要・セキュリティ)
7777

78-
Vercelの`Preview`環境変数は、branchを絞らない限り**developブランチだけでなく、任意のfeatureブランチのプレビューデプロイにも適用される**。つまり何も絞らずに設定すると、develop以外のPRプレビューからも`MiraiGikaiVercelBedrockAccessRole-dev`(Bedrock呼び出し+Batch SubmitJob権限)にアクセスできてしまう。
78+
Vercelの`Preview`環境変数は、branchを絞らない限り**developブランチだけでなく、任意のfeatureブランチのプレビューデプロイにも適用される**。つまり何も絞らずに設定すると、develop以外のPRプレビューからも`MiraiGikaiVercelBedrockAccessRole-stg`(Bedrock呼び出し+Batch SubmitJob権限)にアクセスできてしまう。
7979

8080
- Vercelのプラン・設定で「特定ブランチのみに適用するPreview環境変数」(Preview Branchesの指定)が可能な場合は、**`develop`ブランチに限定**して設定すること
8181
- 絞り込みができない場合は、リスクを許容範囲と判断できるか(本リポジトリはfork PRを`if: github.event.pull_request.head.repo.full_name == github.repository`で弾いているため、外部フォークからの悪用は防げるが、社内の他featureブランチのプレビューからはアクセスできてしまう点は変わらない)を確認してから設定する
@@ -84,66 +84,66 @@ Vercelの`Preview`環境変数は、branchを絞らない限り**developブラ
8484

8585
1. `develop`へpush → `Migrate DB then Deploy`ワークフロー経由でVercelデプロイが起動することを確認
8686
2. developのプレビューURLでadminにログインし、トピック分析のBatch起動機能(`admin/src/lib/topic-analysis-batch.ts`を使う画面)を実行
87-
3. AWS Batchのjob queue(`mirai-gikai-topic-analysis-dev`)にjobが積まれることを確認:
87+
3. AWS Batchのjob queue(`mirai-gikai-topic-analysis-stg`)にjobが積まれることを確認:
8888
```bash
89-
aws batch list-jobs --job-queue mirai-gikai-topic-analysis-dev \
90-
--profile saga-koucho-dev --region ap-northeast-1
89+
aws batch list-jobs --job-queue mirai-gikai-topic-analysis-stg \
90+
--profile saga-koucho-stg --region ap-northeast-1
9191
```
9292

93-
## 3. Secrets Manager実値の投入(devのworker用
93+
## 3. Secrets Manager実値の投入(stgのworker用
9494

9595
### 3.1 対象キー
9696

9797
CDKは空のSecretだけを作成しており(`infra/aws-cdk/lib/stacks/topic-analysis-stack.ts`)、実値は別途投入する必要がある。worker本体(`worker/src/main.ts`)が起動時に必須envとして要求する3つ。
9898

9999
| Secret ID ||
100100
|---|---|
101-
| `mirai-gikai-topic-analysis-worker-dev/SUPABASE_URL` | dev用SupabaseプロジェクトのURL |
102-
| `mirai-gikai-topic-analysis-worker-dev/SUPABASE_SECRET_KEY` | dev用SupabaseのService Role Key |
103-
| `mirai-gikai-topic-analysis-worker-dev/AI_GATEWAY_API_KEY` | Vercel AI GatewayのAPIキー |
101+
| `mirai-gikai-topic-analysis-worker-stg/SUPABASE_URL` | stg用SupabaseプロジェクトのURL |
102+
| `mirai-gikai-topic-analysis-worker-stg/SUPABASE_SECRET_KEY` | stg用SupabaseのService Role Key |
103+
| `mirai-gikai-topic-analysis-worker-stg/AI_GATEWAY_API_KEY` | Vercel AI GatewayのAPIキー |
104104

105105
### 3.2 投入コマンド
106106

107107
値は対話入力させ、シェル履歴に残さない。
108108

109109
```bash
110110
aws secretsmanager put-secret-value \
111-
--secret-id mirai-gikai-topic-analysis-worker-dev/SUPABASE_URL \
112-
--secret-string "<値>" --profile saga-koucho-dev --region ap-northeast-1
111+
--secret-id mirai-gikai-topic-analysis-worker-stg/SUPABASE_URL \
112+
--secret-string "<値>" --profile saga-koucho-stg --region ap-northeast-1
113113

114114
aws secretsmanager put-secret-value \
115-
--secret-id mirai-gikai-topic-analysis-worker-dev/SUPABASE_SECRET_KEY \
116-
--secret-string "<値>" --profile saga-koucho-dev --region ap-northeast-1
115+
--secret-id mirai-gikai-topic-analysis-worker-stg/SUPABASE_SECRET_KEY \
116+
--secret-string "<値>" --profile saga-koucho-stg --region ap-northeast-1
117117

118118
aws secretsmanager put-secret-value \
119-
--secret-id mirai-gikai-topic-analysis-worker-dev/AI_GATEWAY_API_KEY \
120-
--secret-string "<値>" --profile saga-koucho-dev --region ap-northeast-1
119+
--secret-id mirai-gikai-topic-analysis-worker-stg/AI_GATEWAY_API_KEY \
120+
--secret-string "<値>" --profile saga-koucho-stg --region ap-northeast-1
121121
```
122122

123123
### 3.3 workerイメージのpush(初回のみ手動、以降は自動)
124124

125125
`:latest`タグが無いとBatch Job Definitionの起動が失敗する。PR #109`deploy_worker_ecs_dev.yml`が追加されたため、**develop側は次回`worker/`配下の変更がdevelopにマージされた時点で自動push**される。それより前に動作確認したい場合のみ手動push:
126126

127127
```bash
128-
aws ecr get-login-password --region ap-northeast-1 --profile saga-koucho-dev | \
128+
aws ecr get-login-password --region ap-northeast-1 --profile saga-koucho-stg | \
129129
docker login --username AWS --password-stdin 826784631888.dkr.ecr.ap-northeast-1.amazonaws.com
130130
docker build --platform linux/amd64 -f worker/Dockerfile \
131-
-t 826784631888.dkr.ecr.ap-northeast-1.amazonaws.com/mirai-gikai-topic-analysis-worker-dev:latest .
132-
docker push 826784631888.dkr.ecr.ap-northeast-1.amazonaws.com/mirai-gikai-topic-analysis-worker-dev:latest
131+
-t 826784631888.dkr.ecr.ap-northeast-1.amazonaws.com/mirai-gikai-topic-analysis-worker-stg:latest .
132+
docker push 826784631888.dkr.ecr.ap-northeast-1.amazonaws.com/mirai-gikai-topic-analysis-worker-stg:latest
133133
```
134134

135135
### 3.4 動作確認(手動でBatchジョブを実行)
136136

137137
```bash
138138
aws batch submit-job \
139139
--job-name manual-test \
140-
--job-queue mirai-gikai-topic-analysis-dev \
141-
--job-definition mirai-gikai-topic-analysis-worker-dev \
140+
--job-queue mirai-gikai-topic-analysis-stg \
141+
--job-definition mirai-gikai-topic-analysis-worker-stg \
142142
--container-overrides command=--mode=analyze-all \
143-
--profile saga-koucho-dev --region ap-northeast-1
143+
--profile saga-koucho-stg --region ap-northeast-1
144144

145-
aws logs tail /mirai-gikai/topic-analysis-worker-dev --follow \
146-
--profile saga-koucho-dev --region ap-northeast-1
145+
aws logs tail /mirai-gikai/topic-analysis-worker-stg --follow \
146+
--profile saga-koucho-stg --region ap-northeast-1
147147
```
148148

149149
## 4. 未対応(本手順の対象外)

docs/20260906_2230_develop環境_全サービス環境変数チェックリスト.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ Branchingの`develop`ブランチ(親プロジェクト配下)を使う。
8282

8383
| 変数名 | 取得元 |
8484
|---|---|
85-
| `AWS_ROLE_ARN` | `MiraiGikaiVercelOidcStack-dev`の出力`VercelBedrockAccessRoleArn` |
85+
| `AWS_ROLE_ARN` | `MiraiGikaiVercelOidcStack-stg`の出力`VercelBedrockAccessRoleArn` |
8686
| `AWS_REGION` | `ap-northeast-1` |
87-
| `TOPIC_ANALYSIS_BATCH_JOB_QUEUE_ARN` | `MiraiGikaiTopicAnalysisStack-dev`の出力`JobQueueArnOutput` |
88-
| `TOPIC_ANALYSIS_BATCH_JOB_DEFINITION_ARN` | `MiraiGikaiTopicAnalysisStack-dev`の出力`JobDefinitionArnOutput` |
87+
| `TOPIC_ANALYSIS_BATCH_JOB_QUEUE_ARN` | `MiraiGikaiTopicAnalysisStack-stg`の出力`JobQueueArnOutput` |
88+
| `TOPIC_ANALYSIS_BATCH_JOB_DEFINITION_ARN` | `MiraiGikaiTopicAnalysisStack-stg`の出力`JobDefinitionArnOutput` |
8989

9090
> **セキュリティ注意**: 上記AWS系変数はVercelの`Preview`環境変数がブランチを絞らない限り
9191
> 任意のfeatureブランチのプレビューにも適用される。可能なら`develop`ブランチに限定すること

0 commit comments

Comments
 (0)