MENU

【AWS Certified Cloud Practitioner】AWS CDKとは何ができる?機能とCloudFormationとの違いを整理

目次

AWS CDKとは何か

AWS CDK(AWS Cloud Development Kit)は、AWSのインフラをプログラミング言語で定義し、最終的にAWS CloudFormationを通じてデプロイするためのInfrastructure as Code(IaC)ツールです。IaCとは、サーバーやネットワーク、ストレージなどの構成を手作業ではなくコードで管理する考え方を指します。

公式の定義では、AWS CDKは「クラウドインフラをコードで定義し、AWS CloudFormationを通じてプロビジョニングするためのフレームワーク」とされています。参考: https://docs.aws.amazon.com/cdk/v2/guide/home.html

AWS CDKでできること

1. 一般的なプログラミング言語でAWSリソースを定義できる

AWS CDKは、TypeScript、JavaScript、Python、Java、C#、Go などの言語に対応しています。CloudFormationのJSONやYAMLを直接大量に書かなくても、普段の開発で使う言語でインフラを記述できます。

たとえば「S3バケットを1つ作る」「Lambda関数とAPI Gatewayをまとめて作る」「VPCの中にEC2を配置する」といった構成をコードで表現できます。参考: https://docs.aws.amazon.com/cdk/v2/guide/home.html

2. 再利用しやすい部品(Construct)で構成を組み立てられる

AWS CDKの中心概念がConstructです。Constructは、1つまたは複数のCloudFormationリソースを表す部品です。開発者はこの部品を組み合わせて、アプリケーション基盤を段階的に作れます。

たとえば、単純なS3バケット1個を表すConstructもあれば、「Lambda + API Gateway + IAMロール」のように複数リソースをまとめた高レベルなConstructもあります。参考: https://docs.aws.amazon.com/cdk/v2/guide/constructs.html

3. 抽象度の異なるConstructを使い分けられる

Constructには大きく3つのレベルがあります。

  • L1: CloudFormationリソースにほぼ1対1で対応する低レベル部品
  • L2: よく使う設定を扱いやすくまとめた実用的な部品
  • L3: 複数のサービスを組み合わせた高レベルパターン

試験対策としては、細かなAPI名よりも「CDKは抽象化された再利用部品でAWS構成を作れる」と理解しておくと十分です。参考: https://docs.aws.amazon.com/cdk/v2/guide/constructs.html

4. CloudFormationテンプレートを自動生成できる

AWS CDKは、書いたコードを直接そのままAWSに実行するのではなく、まずCloudFormationテンプレートに合成(synthesize)し、それを使ってデプロイします。つまり、実際の作成・更新処理の中核にあるのはCloudFormationです。

この点は試験でも重要です。CDKはCloudFormationと競合する別物ではなく、CloudFormationを開発者が扱いやすくする上位レイヤーと考えると理解しやすくなります。参考: https://docs.aws.amazon.com/cdk/v2/guide/home.html

5. CLIで差分確認・デプロイ・削除ができる

AWS CDKにはCLIがあり、代表的に次のような操作ができます。

  • cdk synth: CloudFormationテンプレートを生成する
  • cdk diff: 変更差分を確認する
  • cdk deploy: スタックをデプロイする
  • cdk destroy: 作成したスタックを削除する
  • cdk bootstrap: CDK利用前の事前準備を行う

特にcdk diffで変更点を確認してから反映できる点は、実務でも試験でも「安全に反復的な変更を行う」イメージにつながります。参考: https://docs.aws.amazon.com/cdk/v2/guide/cli.html

6. ブートストラップでデプロイ用の基盤を準備できる

cdk bootstrapは、CDKがデプロイに必要とする環境側の準備を行うコマンドです。公式ドキュメントでは、CloudFormationスタックとしてブートストラップスタックが作成され、既定ではCDKToolkitという名前で表示されると説明されています。

試験で深い実装知識までは不要ですが、「CDKは事前準備を伴う場合がある」「その準備もCloudFormationで管理される」という理解は役立ちます。参考: https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html

Cloud Practitioner試験向けに押さえるべきポイント

CDKそのものより、IaCとCloudFormationとの関係を理解する

AWS Certified Cloud Practitioner(CLF-C02)は、AWS全体の基礎理解を問う試験です。公式試験ガイドでは、Infrastructure as Code(IaC)は試験に関連する技術・概念に含まれており、さらにAWS CloudFormationはin-scopeのサービスとして掲載されています。

一方で、同じ試験ガイドでは、受験対象者にとって「コーディング」や「実装」は試験範囲外とされています。参考: https://docs.aws.amazon.com/pdfs/aws-certification/latest/cloud-practitioner-02/cloud-practitioner-02.pdf

そのため、Cloud Practitionerで重要なのは次の理解です。

  • IaCとは何かを説明できる
  • CloudFormationがAWSの代表的なIaCサービスであると理解する
  • AWS CDKは、一般的な言語でIaCを実現し、結果的にCloudFormation経由でデプロイする仕組みだと理解する

試験での実践的な覚え方

  • CloudFormation: テンプレートベースでAWSリソースを自動構築するサービス
  • AWS CDK: そのCloudFormationをコードで扱いやすくする開発者向けフレームワーク
  • 目的: 手作業の設定を減らし、再現性・再利用性・変更管理をしやすくする

もし選択肢問題で「繰り返し同じ構成を作りたい」「手動設定を減らしたい」「コード管理したい」といった文脈が出たら、IaC、CloudFormation、CDKの関係を結び付けて考えると正答しやすくなります。

よくある混同ポイント

CloudFormationとCDKはどう違うのか

CloudFormationはテンプレートを使ってAWSリソースを作成・更新するマネージドサービスです。CDKは、そのテンプレートをより開発しやすい形で生成するためのフレームワークです。つまり、役割は近いですが、層が異なります。

CDKは初心者試験で深掘りされるのか

ここは断定しすぎない方が安全です。試験ガイドから読み取れる範囲で整理すると次の通りです。

確実に言えること

  • Cloud Practitioner試験ではIaCの概念が関連技術・概念に含まれる
  • AWS CloudFormationはin-scopeのAWSサービスに含まれる
  • コーディングや実装そのものは試験範囲外とされている

推測

  • AWS CDKの詳細なコード記述やCLIオプション暗記が主題として深く問われる可能性は高くないと考えられます
  • その根拠は、試験の性質が「AWS全体の基礎理解」を重視しており、試験ガイドでもIaCやCloudFormationは明示されている一方、コーディング・実装は範囲外とされているためです

不明点

  • 実際の出題文や出題頻度の詳細は公開されていません
  • 試験問題は更新され得るため、CDKが将来どの程度名前付きで登場するかは公開情報だけでは断定できません

直前復習用の要点まとめ

  • AWS CDKは、AWSインフラをコードで定義するためのIaCフレームワーク
  • 一般的なプログラミング言語で記述できる
  • Constructという再利用可能な部品で構成を組み立てる
  • 最終的にはCloudFormationを通じてデプロイする
  • Cloud Practitionerでは、CDKの詳細実装よりも「IaC」「CloudFormationとの関係」を理解することが重要

公式参考情報

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次