アカウントとリージョンの組み合わせごとに 1 回実行する(別のリージョンにデプロイする場合は、そのリージョンでも実行が必要)。 CloudFormationCDKToolkitスタックが作成されて、CDKで使用するS3バケットやポリシーなどのリソースが作成される。

ブートストラッピング AWS CDKを使用してスタックをデプロイするには、AWS CloudFormationデプロイ中に専用の Amazon S3 バケットとその他のコンテナを利用できるようにしておく必要があります。これらを作成することをブートストラップと呼びます。ブートストラップするには、以下を実行します。

cdk bootstrap aws://ACCOUNT-NUMBER/REGION

ref. https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/getting_started.html

ブートストラッピング例。

$ cdk bootstrap aws://xxxxxxxxxxxx/ap-northeast-1
 ⏳  Bootstrapping environment aws://xxxxxxxxxxxx/ap-northeast-1...
Trusted accounts for deployment: (none)
Trusted accounts for lookup: (none)
Using default execution policy of 'arn:aws:iam::aws:policy/AdministratorAccess'. Pass '--cloudformation-execution-policies' to customize.
CDKToolkit: creating CloudFormation changeset...
 ✅  Environment aws://xxxxxxxxxxxx/ap-northeast-1 bootstrapped.

CDKToolkitスタックを削除してしまったら

CDKToolkitスタックを削除しても、CDKToolkitで使用していたS3バケットは削除されない(コンテナイメージ用の ECR リポジトリも同様に残る)。 そのためにcdk bootstrap aws://xxxxxxxxxxxx/ap-northeast-1を実行すると、cdk-xxxxxxxx-assets-xxxxxxxxxxxx-ap-northeast-1 already existsというエラーが発生する。 CDKToolkitスタックはROLLBACK_COMPLETEになる。

削除されていないS3バケット(cdk-xxxxxxxx-assets-xxxxxxxxxxxx-ap-northeast-1)を手動で削除してから、cdk bootstrap aws://xxxxxxxxxxxx/ap-northeast-1を再度実行する。

  • バケットにオブジェクトやバージョンが残っている場合は、先に空にしてから削除する
  • ROLLBACK_COMPLETE のスタックが残っている場合は、削除してから再実行する(CDK が再作成時に自動で削除する場合もある)