Developer Tools

AWS CDK

汎用プログラミング言語でAWSインフラを定義し、最終的にCloudFormationテンプレートとして合成・デプロイするフレームワーク。AIP-C01のスキル文に名指しの出番は無く、IaC全般の知識という前提の中に埋もれています。

  • C|周辺
  • D2 実装と統合

ひとことで言うと

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 CloudFormationCDKはCloudFormationの上に乗る。CDKで書いてもデプロイの実体はCloudFormationスタック
AWS CLICLIは個々のAPI呼び出し、CDKは宣言的なインフラ定義とデプロイの自動化

想起チェック

Q1. KnowledgeBaseをCDKのL2コンストラクトで組みたいとき、何が要るか?

aws-cdk-lib.aws_bedrock 本体にはL2コンストラクトが無く、別パッケージの @aws-cdk/aws-bedrock-alpha が必要です。

出典(AWS公式)