AWS CDK(TypeScript)を使って
S3バケットをコードで定義し、cdk synth でCloudFormationテンプレートを確認するまでをまとめます。
※ CDKのインストールや cdk init 済みであることを前提とします。
① S3バケットを追加する
lib/cdk-practice-stack.ts を編集します。
このファイルがリソースを定義するファイルです。
編集前の画面はこんな感じ。

ここに
import * as s3 from 'aws-cdk-lib/aws-s3';
とconstructorの中に以下を追記します。
new s3.Bucket(this, 'MyFirstBucket', {
versioned: true,
removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteObjects: true,
});
なお、上記は練習用の設定で、本番環境では以下のケースが大半です。
誤ってデータが消えるのを防止するためです。
versioned: true
removalPolicy: cdk.RemovalPolicy.RETAIN
autoDeleteObjects: false
編集後のファイルはこんな感じ

② CloudFormationテンプレートを生成する
cdk synth
すると、以下のような出力が表示されます。

ここで確認できることは、
- S3バケットがCloudFormation形式に変換されている
- 論理ID(MyFirstBucketB8884501)が自動生成されている
- まだAWS上には何も作られていない
cdk synth の意味
cdk synth は
CDKコードをCloudFormationテンプレートに変換するコマンド
処理の流れは以下です。
TypeScript
↓
CDK
↓
CloudFormationテンプレート
CDKはインフラを直接作るのではなく、CloudFormationを生成しているツールとなります。
次は実際にS3バケットをデプロイしてみます。