https://awscli.amazonaws.com/AWSCLIV2.pkg
which aws
aws --version
例えば以下のように返ってきます
/usr/local/bin/aws
aws-cli/2.11.21 Python/3.11.3 Darwin/22.3.0 exe/x86_64 prompt/off
npm install -g aws-cdk
cdk --version
例えば以下のように返ってきます
2.80.0 (build bbdb16a)
言語: typescript で initします
mkdir my-first-infra && cd my-first-infra
cdk init --language typescript
cdk ls
lib/my-first-infra-stack.ts
以下の内容に修正します
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
export class MyFirstInfraStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// S3 を追加する
const bucket = new s3.Bucket(this, 'CreateBucket', {
bucketName: "test-bucket-2023-05-24",
versioned: true
});
}
}
npm run build
cdk synth
最初に1度必要です
cdk bootstrap aws://<12桁のアカウント番号>/<リージョン名>
✅ Environment aws://<12桁のアカウント番号>/<リージョン名> bootstrapped.
と出ればokです。
npm run build
cdk deploy
aws s3 ls
cdk destroy
削除すると CloudFormation から対象のスタックを削除します。 なお、S3 バケットなどは残ります。
AWS CloudFormationスタック強制削除ツール - 365歩のテック
lib/my-first-infra-stack.ts に removalPolicy: RemovalPolicy.DESTROY
を追加します。
import * as cdk from 'aws-cdk-lib';
import {RemovalPolicy} from 'aws-cdk-lib';
import {Construct} from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
export class MyFirstInfraStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// S3 を追加する
new s3.Bucket(this, 'my-second-bucket', {
versioned: true,
removalPolicy: RemovalPolicy.DESTROY,
});
}
}