👏
aws cdkを始める 下準備からS3を操作するまで
前提条件の確認
- AWSアカウント、ユーザー
- AWS CLI のインストール & 初期化
- Node.js
CDKのインストール
brew install awscli
mkdir sample1
cd sample1
nodenv local 20.2.0
npm install -g aws-cdk
nodenv rehash
以下の環境で進めます
node.js: 20.2.0
cdk: 2.1018.1 (build cb71364)
プロジェクトの作成
cdk init app --language typescript
これにより以下のようなファイルが生成されます
% ll
README.md jest.config.js package-lock.json tsconfig.json
bin lib package.json
cdk.json node_modules test
IAMユーザー準備
IAMユーザーの作成
- IAMコンソール にアクセス
- 左メニューの「ユーザー」→「ユーザーの作成」をクリック
- ユーザー名を入力
-「許可を設定」では「ポリシーを直接アタッチする」から「AdministratorAccess」を選択し、ユーザーの作成 - 「セキュリティ認証情報」から「アクセスキーを作成」
- ユースケースは「コマンドラインインターフェイス (CLI)」を選択
- アクセスキーを取得
CDKに設定
aws configure
AWS Access Key ID:作成したアクセスキーID
AWS Secret Access Key:作成時に表示されたシークレット
Default region name:例)ap-northeast-1(東京)
Default output format:json でOK
設定
CDKのメインファイルを編集
code lib/sample1-stack.ts
こんな感じ
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
export class Sample1Stack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new s3.Bucket(this, 'Sample1StackBucket', {
bucketName: "samplestuck-bucket-sample1", // グローバルで誰とも被らない一意な名前を設定
versioned: true, // バージョニング有効
removalPolicy: cdk.RemovalPolicy.DESTROY, // スタック削除時にバケットも削除
autoDeleteObjects: true, // オブジェクトも削除(注意:本番では推奨されない)
});
}
}
cdk diff
ここで差分が出るかどうか。出なければ設定を再度見直す
cdk deploy
で作成
cdk destroy
で全部消せます
Discussion