AWS CDK を試してみた

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

タグ: