その他サービス

AWS CDK とは?TypeScript / Python で IaC を書く高水準フレームワーク

AWS CDK は TypeScript / Python / Java / C# / Go でインフラをコード化できる IaC フレームワーク。プログラム言語の 抽象化・再利用・テスト が活用でき、CloudFormation の YAML 地獄から解放される。最終的には...

TypeScript / Python 等のプログラミング言語でインフラを定義できる高水準 IaC フレームワーク。裏では CloudFormation。


1. 概要(端的に)

AWS CDK は TypeScript / Python / Java / C# / Go でインフラをコード化できる IaC フレームワーク。プログラム言語の 抽象化・再利用・テスト が活用でき、CloudFormation の YAML 地獄から解放される。最終的には CloudFormation テンプレートを生成して実行する。


2. 何ができるか

  • プログラミング言語でインフラ定義:TypeScript / Python / Java / C# / Go
  • High-level Construct:1 行で複数リソース作成
  • TypeScript の型安全性:IDE 補完・コンパイルチェック
  • 再利用可能なコンポーネント:自社製 Construct
  • CloudFormation 互換:裏で CFn テンプレ生成

3. 特徴

観点特徴
追加料金無料(裏の CFn とリソース料金のみ)
対応言語TypeScript / Python / Java / C# / Go
抽象化レベル3 段階(L1 / L2 / L3 Construct)
デプロイcdk deploy で実行
学習コスト高(プログラミング + IaC 概念)

Construct の 3 階層

  • L1(Cfn 系):CloudFormation リソース 1:1
  • L2:賢いデフォルト・型安全性
  • L3(Patterns):1 行でフルスタック構成

簡単な TypeScript 例

import * as ec2 from 'aws-cdk-lib/aws-ec2';

const vpc = new ec2.Vpc(this, 'MyVPC', {
  maxAzs: 3,
  natGateways: 1
});

→ 数行で VPC + サブネット + NAT GW + IGW が作成される。


4. 仕組み

CDK は コードを CloudFormation テンプレートにコンパイルし、CloudFormation で実行する。デバッグや変更プレビューも CloudFormation 経由。

動作の流れ

  1. TypeScript / Python でコード書く
  2. cdk synth で CloudFormation テンプレ生成
  3. cdk diff で変更プレビュー
  4. cdk deploy で実行(CloudFormation 経由)

5. ユースケース

ユースケース 1:複雑な構成の管理

複数 VPC・大量 Lambda 等、YAML では辛い構成。

ユースケース 2:再利用可能なテンプレート

社内標準 Construct を作成・共有。

ユースケース 3:マイクロサービス展開

サービスごとに同じ構成を量産。

ユースケース 4:型安全な IaC

コンパイル時にミスを発見。


6. 関連用語


7. 関連サイト


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFIaC の選択肢
SAA出題増加中
DVA開発者視点での IaC
SOA運用での IaC 採用