AWS CDKの基本
はじめに
このページではAWS CDK (Cloud Development Kit) の基本的な使い方について記述します。
AWS CDKとは
AWS CDK (Cloud Development Kit) は、プログラミング言語を使ってAWSリソースをコード化するためのツールです。従来のJSONやYAML形式で定義されるCloudFormationテンプレートの代わりに、TypeScript、JavaScript、Python、Java、C#などのプログラミング言語を使ってAWSリソースを定義できます。
AWS CDKの特徴
- コードベースでのリソース管理: 既存のプログラミング言語のフレームワークを使い、変数やループを活用して柔軟なAWSリソースの定義が可能です。
- 高レベルの抽象化: AWS CDKでは、一般的なAWSリソースを簡単に使えるように、便利なラッパーが提供されています。
- 再利用可能なコンポーネント: カスタムのコンポーネントをモジュール化して他のプロジェクトでも再利用することができます。
AWS CDKを使用するには、公式ドキュメントでインストール手順と基本的な使い方を確認できます: AWS CDK Documentation
AWS CDKの基本的な使い方
1. AWS CDKのインストール
AWS CDKはnpm経由でインストールすることができます。まずNode.jsをインストールし、その後以下のコマンドでCDKをインストールします。
npm install -g aws-cdk
インストール後、CDKのバージョンを確認します。
cdk --version
2. プロジェクトの作成
新しいCDKプロジェクトを作成するには、cdk init
コマンドを使用します。以下はTypeScriptでプロジェクトを作成する例です。
mkdir my-cdk-app
cd my-cdk-app
cdk init app --language typescript
プロジェクトを初期化すると、lib/
ディレクトリに MyStack.ts
ファイルが生成され、ここでAWSリソースを定義します。
3. AWSリソースの定義
lib/my-cdk-app-stack.ts
ファイル内で、AWSリソースをコードとして定義できます。以下はS3バケットを作成するシンプルな例です。
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
export class MyCdkAppStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new s3.Bucket(this, 'MyFirstBucket', {
versioned: true
});
}
}
このコードでは、バージョニングが有効化されたS3バケットが作成されます。
4. デプロイ
定義したリソースをAWSにデプロイするには、以下のコマンドを実行します。
cdk deploy
初めてデプロイする際、AWSアカウントとリージョンが必要になるため、設定を求められます。すべてのリソースがデプロイされると、CloudFormationスタックとして管理されます。
5. CDKの他の機能
-
cdk synth: 定義したリソースをCloudFormationテンプレートとして生成します。
cdk synth
-
cdk diff: 現在の環境とこれからデプロイする環境の差分を表示します。
cdk diff
6. スタックの削除
作成したリソースを削除するには、以下のコマンドを使用します。
cdk destroy
バージョン情報
- AWS CDKバージョン: 2.x (2024年時点)
- Node.jsバージョン: 16.x以降
まとめ
AWS CDKは、コードを使用してAWSリソースを柔軟に定義・デプロイするための強力なツールです。デプロイ、管理、リソース定義をすべてプログラム的に行えるため、インフラの管理をより効率化することができます。
Discussion