その他サービス ・
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 経由。
動作の流れ
- TypeScript / Python でコード書く
cdk synthで CloudFormation テンプレ生成cdk diffで変更プレビューcdk deployで実行(CloudFormation 経由)
5. ユースケース
ユースケース 1:複雑な構成の管理
複数 VPC・大量 Lambda 等、YAML では辛い構成。
ユースケース 2:再利用可能なテンプレート
社内標準 Construct を作成・共有。
ユースケース 3:マイクロサービス展開
サービスごとに同じ構成を量産。
ユースケース 4:型安全な IaC
コンパイル時にミスを発見。
6. 関連用語
- CloudFormation — CDK の実行基盤
- SAM — サーバーレス特化
- CodeBuild — CI で
cdk deploy
7. 関連サイト
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 中 | IaC の選択肢 |
| SAA | 中 | 出題増加中 |
| DVA | 高 | 開発者視点での IaC |
| SOA | 中 | 運用での IaC 採用 |