これは AWS CDK v2 開発者ガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
AWS CDK のコアコンセプトの説明
AWS Cloud Development Kit (AWS CDK) の背後にあるコアコンセプトについて説明します。
AWS CDK および IaC
AWS CDK は、コードを使用して AWS インフラストラクチャを管理することに使用できるオープンソースフレームワークです。このアプローチは、Infrastructure as Code (IaC) と呼ばれます。インフラストラクチャをコードとして管理およびプロビジョニングすることで、開発者がコードを処理するのと同じ方法でインフラストラクチャを処理します。これにより、バージョン管理やスケーラビリティなど、多くの利点が得られます。IaC の詳細については、「Infrastructure as Code とは」
AWS CDK および AWS CloudFormation
AWS CDK は AWS CloudFormation と緊密に統合されています。AWS CloudFormation は、AWS でインフラストラクチャの管理とプロビジョニングを行うために使用できるフルマネージドサービスです。AWS CloudFormation では、テンプレートでインフラストラクチャを定義し、それを AWS CloudFormation にデプロイします。その後、AWS CloudFormation サービスは、テンプレートで定義された設定に従ってインフラストラクチャをプロビジョニングします。
AWS CloudFormation テンプレートは宣言型です。つまり、インフラストラクチャの望ましい状態または結果を宣言します。JSON または YAML を使用して、AWS リソースとプロパティ を定義して AWS インフラストラクチャを宣言します。リソースは AWS の多くのサービスを表し、プロパティはこれらのサービスの希望する設定を表します。テンプレートを AWS CloudFormation にデプロイすると、リソースとその設定済みプロパティがテンプレートの説明に従ってプロビジョニングされます。
AWS CDK では、汎用プログラミング言語を使用して、命令的にインフラストラクチャを管理できます。目的の状態を宣言的に定義する代わりに、目的の状態に達するために必要なロジックまたはシーケンスを定義できます。たとえば、if
ステートメントまたは条件ループを使用して、インフラストラクチャの希望する終了状態に到達する方法を決定できます。
AWS CDK で作成されたインフラストラクチャは、最終的に AWS CloudFormation テンプレートに変換または合成され、AWS CloudFormation サービスを使用してデプロイされます。つまり、AWS CDK はインフラストラクチャの作成に異なるアプローチを提供しますが、広範な AWS リソースの設定サポートや堅牢なデプロイプロセスなど、AWS CloudFormation の利点は引き続き得られます。
AWS CloudFormation の詳細については、AWS CloudFormation ユーザーガイドの「AWS CloudFormation とは」を参照してください。
AWS CDK および 抽象化
AWS CloudFormation では、リソースの設定方法の詳細をすべて定義する必要があります。これにより、インフラストラクチャを完全に制御できます。ただし、そのためには、リソース設定の詳細と、アクセス許可やイベント駆動型のインタラクションなどのリソース間の関係を含む堅牢なテンプレートを学習、理解、作成する必要があります。
AWS CDK を使用すると、リソース設定を同じように制御できます。さらに、AWS CDK は強力な抽象化も提供するため、インフラストラクチャ開発プロセスを迅速化および簡素化できます。たとえば、AWS CDK には、適切なデフォルト設定を提供するコンストラクトや、ボイラープレートコードを生成するヘルパーメソッドが含まれています。また AWS CDK には、インフラストラクチャ管理アクションを実行する AWS CDK コマンドラインインターフェイス (AWS CDK CLI) などのツールも用意されています。
AWS CDK のコアコンセプトについての詳細
AWS CDK を操作する
AWS CDK と併用する場合、主に AWS コンストラクトライブラリと AWS CDK CLI を操作することになります。
AWS CDK を使用して開発する
AWS CDK は、サポートされている任意のプログラミング言語で記述できます。まず、アセットを含むフォルダとファイルの構造を含む CDK プロジェクトから始めます。プロジェクト内で、CDK アプリケーションを作成します。アプリケーション内ではスタックを定義します。これは CloudFormation スタックを直接表すものです。スタック内では、コンストラクトを使用して AWS リソースとプロパティを定義します。
AWS CDK を使用してデプロイする
CDK アプリケーションを AWS 環境にデプロイします。デプロイする前に、環境を準備するためのブートストラップを 1 回だけ実行する必要があります。
詳細はこちら
AWS CDK コアコンセプトの詳細については、このセクションのトピックを参照してください。