ひとことで言うと
AWSインフラをTypeScript・Python・Java等の汎用言語で定義し、cdk synth で最終的にCloudFormationテンプレートへ変換してデプロイするフレームワークです。
要するに、CloudFormationのための高水準言語コンパイラです。YAML/JSONを手で書く代わりに、for文やクラスが使えるプログラミング言語でインフラを組み立て、最後はCloudFormationテンプレートを吐き出します。だから試験の分岐は「テンプレートを直接書くか、プログラミング言語で組み立てるか」という一段上の話にしかなりません。
何に使うか
| 用途 | 中身 |
|---|---|
| 対応言語 | TypeScript・JavaScript・Python・Java・C#/.NET・Go |
| 部品化 | L2コンストラクトによる高水準な部品化(VPCやECSクラスタをまとめて数行で定義) |
| デプロイ | 最終的な実行はCloudFormationスタックの作成・更新 |
試験でどう問われるか
主役では出ません。Domain 1〜5のスキル文にAWS CDKという名前は一度も出てきません。出るとすれば「対象者に求められるAWS知識」の一項目、“AWSのデプロイとインフラストラクチャ・アズ・コード(IaC)ツールの経験” の中の一つの選択肢としてです。
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| Bedrock Knowledge BaseやAgentをコードで組み立てたい | 高水準コンストラクトで組みたい → @aws-cdk/aws-bedrock-alpha(Bedrock専用の別パッケージ) | aws-cdk-lib.aws_bedrock 本体だけで足りる(実際はFoundationModelの参照しか無い) |
aws-cdk-lib.aws_bedrock(本体)に含まれるのはFoundationModelとProvisionedModelの参照(lookup)だけです。KnowledgeBaseやAgentをL2コンストラクトで組みたいときは、まだ本体にマージされていない別パッケージ @aws-cdk/aws-bedrock-alpha が要ります。
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| AWS CloudFormation | CDKはCloudFormationの上に乗る。CDKで書いてもデプロイの実体はCloudFormationスタック |
| AWS CLI | CLIは個々のAPI呼び出し、CDKは宣言的なインフラ定義とデプロイの自動化 |
想起チェック
Q1. KnowledgeBaseをCDKのL2コンストラクトで組みたいとき、何が要るか?
aws-cdk-lib.aws_bedrock 本体にはL2コンストラクトが無く、別パッケージの @aws-cdk/aws-bedrock-alpha が必要です。