1. やったこと(概要)
- CDKプロジェクトで複数のスタック(CloudFormation Stack)を管理している。
- 特定のスタックのみをCloudFormationテンプレートとして出力(
synth)したり、AWS上から削除(destroy)したりしたい場合、スタック名を指定してコマンドを実行する。 - スタック名は
bin/levtech.tsなどでnew XxxStack(app, "<StackName>", ...)の形で定義されている。
2. スタック名の確認
npx cdk lsまたは
npm run ls:stgなどで、現在のSTAGEで有効なスタック名一覧を確認できる。
3. スタックの作成(テンプレート出力)
コマンド例
npx cdk synth <StackName>例:<StackName> というスタックのみテンプレート出力したい場合
npx cdk synth <StackName>npm scriptを使う場合(package.jsonより):
npm run synth:dev <StackName>4. スタックのデプロイ(実際にAWSへ反映)
補足:
スタックはcdk synthでテンプレートを生成しただけではAWS上に作成・変更されません。
実際にAWSへリソースを作成・更新するにはcdk deployを実行する必要があります。
コマンド例
npx cdk deploy <StackName>npm scriptを使う場合(package.jsonより):
npm run deploy:dev <StackName>5. スタックの削除
コマンド例
npx cdk destroy <StackName>例:<StackName> というスタックのみ削除したい場合
npx cdk destroy <StackName>npm scriptを使う場合(package.jsonより):
npm run destroy:dev <StackName>- 削除時は確認プロンプトが出る。
-fオプションで強制削除も可能。
6. よく使うnpm script(package.jsonより)
npm run synth:dev <StackName>… Dev環境でテンプレート出力npm run deploy:dev <StackName>… Dev環境でデプロイ(AWSへ反映)npm run destroy:dev <StackName>… Dev環境でスタック削除npm run synth:stg <StackName>… Stg環境でテンプレート出力npm run deploy:stg <StackName>… Stg環境でデプロイnpm run destroy:stg <StackName>… Stg環境でスタック削除npm run synth:prd <StackName>… Prd環境でテンプレート出力npm run deploy:prd <StackName>… Prd環境でデプロイnpm run destroy:prd <StackName>… Prd環境でスタック削除
7. まとめ
- スタック名を指定して
cdk synthでテンプレート出力、cdk deployでAWSへ反映、cdk destroyで削除ができる。 cdk synthだけではAWS上にリソースは作成されない。実際に反映するにはcdk deployが必要。- npm scriptを活用すると環境変数(STAGE)も自動でセットされるので便利。
- スタック名は
cdk lsで確認できる。





コメント