CloudFormationテンプレートが作成されました。次は何を行うでしょうか? AWSへのデプロイをしましょう!
AWS CDKアプリを環境(アカウント/リージョン)に初めてデプロイするときは、Bootstrapスタックを構築する必要があります。 このスタックには、ツールキットの操作に必要なリソースが含まれています。 たとえば、スタックにはデプロイプロセスで使われるCloudformationテンプレートとアセットを保存するために使用されるS3バケットが含まれます。
cdk bootstrap
コマンドを実行すれば、bootstrapスタックがAWS環境にデプロイされます。
cdk bootstrap
実行すると以下のように表示されます。
⏳ Bootstrapping environment aws://999999999999/us-east-1...
...
アクセス拒否エラーとなるときはAWS CLIのクレデンシャル情報が正しく設定されているか、
現在のプロファイルが
CloudFormationのcloudformation:CreateChangeSet
を実行する権限を持っているか確認してください。
cdk deploy
コマンドを使用することで、CDKアプリをデプロイできます。
cdk deploy
次のような警告が表示されるはずです。
This deployment will make potentially sensitive changes according to your current security approval level (--require-approval broadening).
Please confirm you intend to make the following modifications:
IAM Statement Changes
┌───┬─────────────────────────┬────────┬─────────────────┬───────────────────────────┬─────────────────────────────────────────────────────────┐
│ │ Resource │ Effect │ Action │ Principal │ Condition │
├───┼─────────────────────────┼────────┼─────────────────┼───────────────────────────┼─────────────────────────────────────────────────────────┤
│ + │ ${CdkWorkshopQueue.Arn} │ Allow │ sqs:SendMessage │ Service:sns.amazonaws.com │ "ArnEquals": { │
│ │ │ │ │ │ "aws:SourceArn": "${CdkWorkshopTopic}" │
│ │ │ │ │ │ } │
└───┴─────────────────────────┴────────┴─────────────────┴───────────────────────────┴─────────────────────────────────────────────────────────┘
(NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299)
Do you wish to deploy these changes (y/n)?
これは、アプリのデプロイにはリスクが伴うことを警告しています(具体的には、IAMに変更が入る場合などです)。 今回は、SNSトピックがメッセージをSQSキューに送信できるIAM権限が必要になるためです。 yを入力してスタックをデプロイし、リソースを作成します。
出力は次のようになります。 ACCOUNT-IDはアカウントID、REGIONはアプリを作成したリージョン、STACK-IDはスタックを一意に特定する識別子です。
CdkWorkshopStack: deploying...
CdkWorkshopStack: creating CloudFormation changeset...
✅ CdkWorkshopStack
✨ Deployment time: 93.21s
Stack ARN:
arn:aws:cloudformation:REGION:ACCOUNT-ID:stack/CdkWorkshopStack/STACK-ID
✨ Total time: 107.65s
CDKアプリケーションはAWS CloudFormationを介してデプロイされます。 各CDKスタックはCloudFormationスタックと1:1に対応します。
そのため、AWS CloudFormationコンソールでスタックを管理できます。
AWS CloudFormationコンソールを見てみましょう。
次のようなものが表示されるはずです(表示されない場合、正しいリージョンにいるか確認してください)。
CdkWorkshopStack
を選択し、リソースタブを開けば、リソースの物理IDを確認できます。