🎉

AWS CDKの基本

2024/10/03に公開

はじめに

このページでは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