Servisphere
AWS Cloud Development Kit のアイコン(AWS Architecture Icons)

AWS Cloud Development Kit

本物のコードで書くインフラ

使い慣れたプログラミング言語(TypeScript、Python、Java、C#、Go)で AWS インフラを定義するフレームワークです。`cdk synth` コマンドでコードを CloudFormation テンプレートに変換し、`cdk deploy` でデプロイします。

  • コスト$ 安い
  • 難易度●●●●●
  • 未使用でも課金?いいえ
  • サーバーレス
  • 出題試験DVA · SAA

範囲: Account(ツールは手元のマシンで実行し、Region ごとにデプロイ)

CDK をマップで開く →
たとえるなら自分の言葉でレシピを書き、それを料理長の言葉(CloudFormation)に翻訳してもらって調理するようなものです。

いつ使う?

✓ 使うべき場面

開発チームがループ、関数、データ型を使い、construct を再利用しながらインフラをコードで書きたいとき。

✗ 避けるべき場面

マルチクラウドのツールが必要、またはチームが純粋な宣言型に慣れている → Terraform / CloudFormation。

よくある使い方

  • 数十行のコードで serverless stack(API Gateway + Lambda + DynamoDB)を構築
  • 複数チームで共有する社内 construct のパッケージ化
  • 同一コードから dev/staging/prod の複数環境のインフラを作成

料金はいくら?

  • 課金方式: 無料です。stack が作成した AWS リソースの料金のみを支払います。
⚠️ 料金の落とし穴

`cdk bootstrap` は asset を格納する S3 バケットと ECR リポジトリを作成します。古い asset が溜まり続けるとストレージ料金がかかります。

料金は us-east-1 の参考値(2026年10月14日 更新)で、変更されている可能性があります。必ず AWS の料金ページでご確認ください。

💡 試験のコツ

「TypeScript や Python などのプログラミング言語でインフラを定義」なら CDK、「宣言的な YAML/JSON テンプレート」なら CloudFormation、「簡略構文のサーバーレスアプリ」なら SAM を選びます。CDK は最終的に CloudFormation を生成します。

よくある質問

CDK は CloudFormation と何が違いますか?

CloudFormation は宣言的な YAML/JSON テンプレートを使います。CDK ではプログラミング言語 (TypeScript、Python、Java など) でループ、関数、型を使ってインフラを記述し、それを合成 (synth) して CloudFormation テンプレートを生成しデプロイします。そのため CDK も CloudFormation 上で動作し、スタック、ロールバック、ドリフト検出は通常どおり利用できます。

L1、L2、L3 コンストラクトとは?

L1 は CloudFormation リソースと 1 対 1 に対応し (名前は Cfn で始まります)、すべてのプロパティを自分で指定します。L2 は適切なデフォルト値とヘルパーメソッド (権限付与など) を備えた使いやすい抽象化です。L3 (パターン) は複数のリソースを組み合わせた完成したソリューションで、ロードバランサーの背後で動くサービスなどです。

CDK の主なコマンドと cdk bootstrap の目的は?

cdk synth は CloudFormation テンプレートを生成し、cdk diff はデプロイ済みの内容と比較し、cdk deploy でデプロイします。アカウントと Region で最初にデプロイする前に cdk bootstrap を実行して、アセット用の S3 バケットや必要なロールなどの支援リソースを作成します。

関連サービス

CDK をマップで開く →