Terraform とか CloudFormation とか、IaC ツールは色々ありますが、訳あって AWS CDK を試してみました。
環境準備
AWS CDK が node 20 にはまだ未対応なため、node 18 をインストールします。
$ brew install node@18
$ node --version
v18.16.0
$ npm --version
9.5.1
$ npm install -g aws-cdk
$ cdk --version
2.86.0 (build 1130fab)
CDK コード作成
CDK を扱う上で一番制限がなさそうな TypeScript でやってみます。
cdk bootstrap aws://<AWS Account ID>/ap-northeast-1
npm install aws-cdk-lib
mkdir hello-cdk
cd hello-cdk
cdk init app --language typescript
npm run build
cdk ls
cdk synth
cdk deploy
CDK コードの変更
S3 バケットをバージョニングと自動削除を有効にして作成します。
code lib/hello-cdk-stack.ts
import * as cdk from 'aws-cdk-lib';
import { aws_s3 as s3 } from 'aws-cdk-lib';
export class HelloCdkStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new s3.Bucket(this, 'MyFirstBucket', {
versioned: true,
removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteObjects: true
});
}
}
CDK コードの差分を確認してデプロイ
cdk diff
cdk deploy
後片付け
cdk destroy
aws cloudformation delete-stack --stack-name CDKToolkit
後は、CDK 用に作成された S3 バケットが残るので手動削除します。
参考
https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/getting_started.html
タグ: AWS