はじめに
本ブログはCDK開発の環境構築までが完了している前提で、実際にCDKコーディングを行い、デプロイするところまでの手順を紹介しております。
開発環境構築がまだの方は、以下のブログを参考に構築を実施していただければと思います。
この記事でわかる・できること
- CDKアプリケーションの作成の仕方
- 作成したコードのデプロイの仕方
この記事の対象者
- CDK開発の環境構築が完了しCDKコーディングを始めたい方
- CDKのデプロイ方法を知りたい方
動作環境・使用するツールや言語
- OS:Windows11
- ツール:VSCode
- 言語:TypeScript
事前準備
- AWSアカウントが作成されていること
- CDK開発環境の構築が完了していること
(詳しくはこちらをご参照ください。)
手順の流れ
1. 空のCDKアプリケーション作成
まずは空のディレクトリを作成し、そのディレクトリに移動します。
以降はhogeという名前のディレクトリで作業をした例となります。
適宜読み替えていただけますと幸いです。
$ mkdir hoge && cd hoge
次に以下のコマンドを実行します。
$ cdk init --language=typescript
これで空のCDKアプリケーションが作成されます。以下のフォルダ構成が自動生成されることが確認できます。
hoge/
├─ bin/
│ └─ hoge.ts
├─ lib/
│ └─ hoge-stack.ts
├─ node_modules
├─ test/
│ └─ hoge.test.ts
├─ .gitignore
├─ .npmignore
├─ cdk.json
├─ jest.config.js
├─ package-lock.json
├─ package.json
├─ README.md
└─ tsconfig.json
2. CDKコーディング
では実際に作成されたファイルでCDKコーディングを行ってみましょう。
以下のサンプルはS3バケットを一つ作成するコードとなっています。
import * as cdk from 'aws-cdk-lib/core';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3'; // ←ここで利用するパッケージをインポート
export class HogeStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// ↓以下に作成したいS3バケットを定義
// Bucket名と削除保護の無効化のみ設定
const myBucket = new s3.Bucket(this, "MyBucket", {
bucketName: "qiita-hoge-bucket",
removalPolicy: cdk.RemovalPolicy.DESTROY,
});
}
}
3. テンプレートの作成
以下のコマンドを実行し、CDKコードからCloudFormationのテンプレートを生成します。
$ cdk synth
生成されるテンプレートは以下のフォルダに格納されます。
hoge/
├─ cdk.out/
│ ├─ HogeStack.template.json
このように、CloudFormationのテンプレートとして実際にAWS環境にどんなリソースが構築されるかを確認することができます。
4. デプロイ
いよいよデプロイです。以下のコマンドを実行し、CDKをデプロイします。
$ cdk deploy

30秒ほどでデプロイが完了します。
実際にAWSコンソール画面からも確認してみましょう。


意図したリソース(S3バケット)がデプロイされていることが確認できました!
5. 削除(おまけ)
コンソールからStackを削除するだけで簡単に削除できますが、念のためCLIでの削除コマンドを紹介しておきます。
$ cdk destroy
まとめ
いかがだったでしょうか。本ブログを通じてCDKは簡単に作成、デプロイできるという感覚を味わっていただけていると嬉しいです。
今後はCDKコードの中身の紹介なども行う予定ですので、もっとCDKに詳しくなりたい方は引き続き私と一緒に学習を進めていただけますと幸いです!