
【VPC外リージョンサービス】
CDK(Cloud Development Kit)は、プログラミング言語でAWSリソースを定義・構築できる IaC(Infrastructure as Code)ツール です。
TypeScript / Python / Java / C# / Go などの一般的な言語に対応し、抽象化された Construct(コンストラクト) を活用して、AWS CloudFormation の Template を自動生成します。
App / Stack / Resource / L1~L3 Construct といった構造でコードを整理でき、cdk init / synth / deploy / diff / destroy / context のCLIコマンドを利用して、環境構築・差分デプロイ・削除を容易に実行できます。また、Construct Library によるモジュール化・再利用性・抽象化を通じて、宣言的かつ テスト可能 なインフラ設計を実現します。
開発者は、再利用可能な構成要素を使って効率的にスタックを管理でき、チーム開発での一貫性確保やCI/CD(CodePipeline / CodeBuild連携)を含む自動化を促進する、柔軟で拡張性の高いインフラ管理基盤を構築できます。
重要用語
Stack
Resource
L1~L3 Construct
関連サービス
ユースケース
| プログラミング言語でのインフラ定義 | TypeScriptやPythonなどの一般的な言語を使ってインフラ構成を定義し、コードとして再利用しやすいモジュール化を行う。 |
| アプリケーションとインフラの一体管理 | アプリケーションコードと同じリポジトリでCDKコードを管理し、アプリの変更とインフラ変更を一緒にレビュー・デプロイできるようにする。 |
| ベストプラクティスを組み込んだコンストラクトの再利用 | セキュリティ設定やログ設定などをあらかじめ組み込んだCDK Constructを社内ライブラリとして用意し、毎回同じパターンで安全な環境を構築する。 |
ベストプラクティス
| コードとしてのインフラ管理 | CloudFormationテンプレートをコードで記述し、レビューとテストを行う。 |
| コンストラクトの再利用 | 共通パターンをカスタムコンストラクトとして再利用する。 |
| バージョン管理とCI/CD | CDKアプリをリポジトリで管理し、パイプラインで自動デプロイする。 |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | - |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 IaCデプロイを通じた不正なリソース変更のAPI異常検知 |
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| デプロイサイズ | CloudFormation制限に従う |
| ソフトリミット | 制限値 |
|---|---|
| CDKスタック内に定義できるリソース数 | 500(CloudFormation制限) |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| AWS CDK 自体は無料 | デプロイされるリソースに課金 |