これは v2 AWS CDK デベロッパーガイドです。古い CDKv1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CDK とは
AWS Cloud Development Kit (AWS CDK) は、コードでクラウドインフラストラクチャを定義して AWS CloudFormation を通じてプロビジョニングするオープンソースのソフトウェア開発フレームワークです。
AWS CDK は 2 つの主要な部分で構成されます。
-
AWS CDK コンストラクトライブラリ – コンストラクトと呼ばれる、事前記述されたモジュール式で再利用可能なコードのコレクション。インフラストラクチャを短時間で開発するために使用、変更、統合できます。AWS CDK コンストラクトライブラリの目的は、AWS でアプリケーションを構築するときに AWS サービスの定義および統合に必要な複雑さを低減することです。
-
AWS CDK コマンドラインインターフェイス (AWS CDKCLI) – CDK アプリを操作するためのコマンドラインツール。CDK CLI を使用して AWS CDK プロジェクトを作成、管理、デプロイします。CDK CLI は CDK Toolkit とも呼ばれます。
AWS CDK は TypeScript、JavaScript、Python、Java、C#/.Net、Go をサポートします。これらのサポートされている任意のプログラミング言語を使用し、コンストラクトと呼ばれる再利用可能なクラウドコンポーネントを定義できます。これらをまとめてスタックおよびアプリに構成します。次に、CDK アプリケーションを AWS CloudFormation にデプロイし、リソースをプロビジョニングまたは更新します。
AWS CDK のメリット
AWS CDK を使用し、プログラミング言語の優れた表現力を活かした信頼性が高い、スケーラブル、コスト効率の高いアプリケーションをクラウドで開発できます。このアプローチには、次の内容を含む多くの利点があります。
- Infrastructure as Code (IaC) の開発と管理
-
コードとしてのインフラストラクチャを実践し、プログラム的、説明的、宣言的な方法でインフラストラクチャを作成、デプロイ、維持します。IaC を使用すると、デベロッパーがコードを扱う方法と同じようにインフラストラクチャを扱います。インフラストラクチャの管理にスケーラブルで構造化されたアプローチが得られます。IaC の詳細については、「AWSホワイトペーパーの DevOps 入門」の「コードとしてのインフラストラクチャ」を参照してください。
AWS CDK を使用すると、インフラストラクチャ、アプリケーションコード、設定をすべて 1 か所に配置し、すべてのマイルストーンで完全なクラウドデプロイ可能なシステムを確保できます。コードレビュー、ユニットテスト、ソースコントロールなどのソフトウェアエンジニアリングのベストプラクティスを採用し、インフラストラクチャをより堅牢にします。
- 汎用プログラミング言語を使用してクラウドインフラストラクチャの定義
-
AWS CDK を使用すると、次のいずれかのプログラミング言語を使用し、クラウドインフラストラクチャの TypeScript、JavaScript、Python、Java、C#/.Net、Go を定義できます。希望する言語を選択し、パラメータ、条件、ループ、構成、継承などのプログラミング要素を使用して、インフラストラクチャの望ましい結果を定義します。
同じプログラミング言語を使用し、インフラストラクチャおよびアプリケーションロジックを定義します。
構文の強調表示やインテリジェントコード補完など、任意の IDE (統合開発環境) でインフラストラクチャを開発する利点が得られます。
- AWS CloudFormation でインフラストラクチャのデプロイ
-
AWS CDK は AWS CloudFormation と統合し、AWS にインフラストラクチャをデプロイおよびプロビジョニングします。AWS CloudFormation は、AWS でサービスをプロビジョニングするリソースおよびプロパティの設定を幅広くサポートするマネージド AWS のサービス です。AWS CloudFormation を使用すると、エラー時にロールバックし、インフラストラクチャのデプロイを予測可能かつ繰り返し実行できます。AWS CloudFormation をすでに理解している場合、AWS CDK の使用を開始するときに新しい IaC 管理サービスについて知る必要はありません。
- コンストラクトを使用してアプリケーションの開発をすばやく開始
-
コンストラクトと呼ばれる再利用可能なコンポーネントを使用および共有することにより、開発を高速化できます。低レベルのコンストラクトを使用し、個々の AWS CloudFormation リソースおよびそのプロパティを定義します。高レベルのコンストラクトを使用してアプリケーションのより大きなコンポーネントをすばやく定義し、AWS リソースの賢明で安全なデフォルトを使用して、少ないコードで多くのインフラストラクチャを定義します。
ユニークのユースケースに合わせてカスタマイズされた独自のコンストラクトを作成し、組織全体またはパブリックと共有します。
AWS CDK の例
次の内容は、AWS CDK コンストラクトライブラリを使用して AWS Fargate 起動タイプを持つ Amazon Elastic Container Service (Amazon ECS) サービスを作成する例です。この例の詳細については、「例: AWS CDK を使用して AWS Fargate サービスを作成する」を参照してください。
このクラスは、AWS CloudFormation に 500 行を超えるテンプレート
AWS CDK の機能
AWS CDK GitHub レポジトリ
公式の AWS CDK GitHub リポジトリについては、aws-cdk
AWS CDK はオープンソースであるため、さらに優れたツールにするには、チームはユーザーが貢献することを奨励します。詳細については、「AWS Cloud Development Kit (AWS CDK) への貢献
AWS CDK API リファレンス
CDK アプリケーションを定義してアプリケーションに CDK コンストラクトを追加するため、AWS CDK コンストラクトライブラリは API を提供します。詳細については、「 APIリファレンスAWS CDK」を参照してください。
コンストラクトプログラミングモデル
コンストラクトプログラミングモデル (CPM) は、AWS CDK にちなんだ概念を追加のドメインに拡張します。CPM を使用するその他のツールには次のものが含まれます。
-
CDK for Terraform
(CDKtf) -
CDK for Kubernetes
(CDK8s) -
プロジェクト設定を構築するための Projen
コンストラクトハブ
Construct Hub
次のステップ
AWS CDK の使用を開始するには、「AWS CDK の開始方法」を参照してください。
詳細はこちら
AWS CDK の詳細については、次のものを参照してください。
-
AWS CDK のコアコンセプトを学ぶ – AWS CDK の重要な概念と用語。
-
AWS CDK ワークショップ
– AWS CDK を知って使用する実践的なワークショップ。 -
AWS CDK パターン
– AWS エキスパートによって AWS CDK のために構築された AWS サーバーレスアーキテクチャパターンのオープンソースコレクション。 -
AWS CDK コード例
– AWS CDK プロジェクトの例の GitHub リポジトリ。 -
cdk.dev
– コミュニティ Slack ワークスペースを含む AWS CDK のコミュニティ駆動型ハブ。 -
Awesome CDK
- AWS CDK オープンソースプロジェクト、ガイド、ブログ、その他のリソースの厳選されたリストを含む GitHub リポジトリ。 -
AWS ソリューションコンストラクト
– 本番稼働用のアプリケーションに簡単に組み立てることができる精査された Infrastructure as Code (IaC) 設定パターン。 -
AWS デベロッパーツールブログ
– AWS CDK 用にフィルタリングされたブログ記事。 -
Stack Overflow での AWS CDK
– Stack Overflow に aws-cdk でタグ付けされた質問。 -
AWS Cloud9 の AWS CDK チュートリアル – AWS Cloud9 開発環境で AWS CDK を使用するチュートリアル。
AWS CDK の関連トピックの詳細については、次の内容を参照してください。
-
AWS CloudFormation の概念 – AWS CDK は AWS CloudFormation と連携するように構築されているため、主要な AWS CloudFormation 概念を知って理解することをお勧めします。
-
AWS 用語集 – AWS 全体で使用される主要な用語の定義。
サーバーレスアプリケーションの開発およびデプロイを簡素化するために使用できる AWS CDK に関連するツールの詳細については、次の内容を参照してください。
-
AWS Serverless Application Model
– AWS でサーバーレスアプリケーションを構築および実行するエクスペリエンスを簡素化および改善するオープンソースの開発者ツール。 -
AWSChalice
– Python でサーバーレスアプリを記述するためのフレームワーク。