+++ title = "cdk deploy" weight = 500 +++ さて、CloudFormation テンプレートが得られました。早速、 __それを使ってデプロイしましょう!__ ## 環境のブートストラップ AWS CDK アプリケーションを環境 (アカウント/リージョン) に初めてデプロイするときは、「ブートストラップスタック」をインストールする必要があります。このスタックには、ツールキットの操作に必要なリソースが含まれています。たとえば、このスタックには、デプロイプロセス中にテンプレートとアセットを保存するための S3 バケットが含まれています。 `cdk bootstrap` コマンドを使用して、ブートストラップスタックを環境にインストールできます。 ``` cdk bootstrap ``` すると・・・ ```text ⏳ Bootstrapping environment 999999999999/us-east-1... ... ``` このコマンドが正常に終了すれば、アプリケーションのデプロイに進むことができます。 ## デプロイしましょう `cdk deploy` を使って CDK アプリケーションをデプロイします。 ``` cdk deploy ``` 次のような警告が表示されます。 ```text 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)? ``` これは、デプロイにセキュリティに関するリスクが伴うことを警告するものです。SNS トピックが SQS キューにメッセージを送信できるようアクセスポリシーを作成してアクセス権を付与する必要があります。**y** と入力してスタックをデプロイし、リソースを作成します。 出力は次のようになります。ACCOUNT-ID はアカウント ID、REGION はアプリケーションを作成したリージョン、STACK-ID はスタックの一意の識別子です。 ```text cdk-workshop: deploying... cdk-workshop: creating CloudFormation changeset... 0/6 | 1:31:31 PM | CREATE_IN_PROGRESS | AWS::CDK::Metadata | CDKMetadata 0/6 | 1:31:31 PM | CREATE_IN_PROGRESS | AWS::SQS::Queue | CdkworkshopQueue (CdkworkshopQueue18864164) 0/6 | 1:31:32 PM | CREATE_IN_PROGRESS | AWS::SNS::Topic | CdkworkshopTopic (CdkworkshopTopic58CFDD3D) 0/6 | 1:31:32 PM | CREATE_IN_PROGRESS | AWS::SQS::Queue | CdkworkshopQueue (CdkworkshopQueue18864164) Resource creation Initiated 0/6 | 1:31:32 PM | CREATE_IN_PROGRESS | AWS::SNS::Topic | CdkworkshopTopic (CdkworkshopTopic58CFDD3D) Resource creation Initiated 0/6 | 1:31:33 PM | CREATE_IN_PROGRESS | AWS::CDK::Metadata | CDKMetadata Resource creation Initiated 1/6 | 1:31:33 PM | CREATE_COMPLETE | AWS::CDK::Metadata | CDKMetadata 2/6 | 1:31:33 PM | CREATE_COMPLETE | AWS::SQS::Queue | CdkworkshopQueue (CdkworkshopQueue18864164) 3/6 | 1:31:42 PM | CREATE_COMPLETE | AWS::SNS::Topic | CdkworkshopTopic (CdkworkshopTopic58CFDD3D) 3/6 | 1:31:44 PM | CREATE_IN_PROGRESS | AWS::SQS::QueuePolicy | CdkworkshopQueue/Policy (CdkworkshopQueuePolicy78D5BF45) 3/6 | 1:31:44 PM | CREATE_IN_PROGRESS | AWS::SNS::Subscription | CdkworkshopQueue/cdkworkshopCdkworkshopTopic7642CC2F (CdkworkshopQueuecdkworkshopCdkworkshopTopic7642CC2FCF70B637) 3/6 | 1:31:45 PM | CREATE_IN_PROGRESS | AWS::SQS::QueuePolicy | CdkworkshopQueue/Policy (CdkworkshopQueuePolicy78D5BF45) Resource creation Initiated 3/6 | 1:31:45 PM | CREATE_IN_PROGRESS | AWS::SNS::Subscription | CdkworkshopQueue/cdkworkshopCdkworkshopTopic7642CC2F (CdkworkshopQueuecdkworkshopCdkworkshopTopic7642CC2FCF70B637) Resource creation Initiated 4/6 | 1:31:45 PM | CREATE_COMPLETE | AWS::SQS::QueuePolicy | CdkworkshopQueue/Policy (CdkworkshopQueuePolicy78D5BF45) 5/6 | 1:31:45 PM | CREATE_COMPLETE | AWS::SNS::Subscription | CdkworkshopQueue/cdkworkshopCdkworkshopTopic7642CC2F (CdkworkshopQueuecdkworkshopCdkworkshopTopic7642CC2FCF70B637) ✅ cdk-workshop Stack ARN: arn:aws:cloudformation:us-west-2:************:stack/cdk-workshop/********-****-****-****-************ ``` ## CloudFormation コンソール CDK アプリケーションは AWS CloudFormation を通じてデプロイされます。各 CDK スタックは CloudFormation スタックと 1:1 でマッピングされます。 つまり、AWS CloudFormation コンソールを使用してスタックを管理できます。 [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/home) を見てみましょう。 次のような内容が表示されているはずです。 (表示されない場合は、正しいリージョンを選択しているか確認してください) ![](./cfn1.png) `cdk-workshop`を選択して __Resources__ タブを開くと、リソースの物理ID が表示されます。 ![](./cfn2.png) # これでコーディングの準備が整いました