これは v2 AWS CDK デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 とも呼ばれます。
は、TypeScript、、JavaScript、Python、JavaC#/.Net、および AWS CDK をサポートしますGo。これらのサポートされている任意のプログラミング言語を使用し、コンストラクトと呼ばれる再利用可能なクラウドコンポーネントを定義できます。これらをまとめてスタックおよびアプリに構成します。次に、CDK アプリケーションを AWS CloudFormation にデプロイし、リソースをプロビジョニングまたは更新します。

の利点 AWS CDK
を使用して、プログラミング言語の表現力に優れた信頼性、スケーラビリティ、費用対効果の高いアプリケーションをクラウドで AWS CDK 開発します。このアプローチには、次の内容を含む多くの利点があります。
- Infrastructure as Code (IaC) の開発と管理
-
コードとしてのインフラストラクチャを実践し、プログラム的、説明的、宣言的な方法でインフラストラクチャを作成、デプロイ、維持します。IaC を使用すると、デベロッパーがコードを扱う方法と同じようにインフラストラクチャを扱います。インフラストラクチャの管理にスケーラブルで構造化されたアプローチが得られます。IaC の詳細については、ホワイトペーパーの「DevOps 入門」の「コードとしてのインフラストラクチャ」を参照してください。 DevOps AWS
を使用すると AWS CDK、インフラストラクチャ、アプリケーションコード、および設定をすべて 1 か所に配置し、マイルストーンごとに完全なクラウドデプロイ可能なシステムを確保できます。コードレビュー、ユニットテスト、ソースコントロールなどのソフトウェアエンジニアリングのベストプラクティスを採用し、インフラストラクチャをより堅牢にします。
- 汎用プログラミング言語を使用してクラウドインフラストラクチャの定義
-
では AWS CDK、、、、TypeScript、、JavaScriptPythonJava、 C#/.Netのいずれかのプログラミング言語を使用してクラウドインフラストラクチャを定義できますGo。希望する言語を選択し、パラメータ、条件、ループ、構成、継承などのプログラミング要素を使用して、インフラストラクチャの望ましい結果を定義します。
同じプログラミング言語を使用し、インフラストラクチャおよびアプリケーションロジックを定義します。
構文の強調表示やインテリジェントコード補完など、任意の IDE (統合開発環境) でインフラストラクチャを開発する利点が得られます。
- によるインフラストラクチャのデプロイ AWS CloudFormation
-
AWS CDK は と統合 AWS CloudFormation して、 インフラストラクチャをデプロイおよびプロビジョニングします AWS。 AWS CloudFormation は、 で サービスをプロビジョニングするためのリソースとプロパティの設定を広範囲にサポート AWS のサービス するマネージド です AWS。を使用すると AWS CloudFormation、エラー時にロールバックして、インフラストラクチャのデプロイを予測どおりに繰り返し実行できます。にすでに精通している場合は AWS CloudFormation、 の使用を開始するときに新しい IaC 管理サービスを学ぶ必要はありません AWS CDK。
- コンストラクトを使用してアプリケーションの開発をすばやく開始
-
コンストラクトと呼ばれる再利用可能なコンポーネントを使用および共有することにより、開発を高速化できます。低レベルのコンストラクトを使用して、個々の AWS CloudFormation リソースとそのプロパティを定義します。高レベルのコンストラクトを使用すると、 AWS リソースの賢明で安全なデフォルトを使用して、アプリケーションのより大きなコンポーネントをすばやく定義し、より少ないコードでより多くのインフラストラクチャを定義できます。
ユニークのユースケースに合わせてカスタマイズされた独自のコンストラクトを作成し、組織全体またはパブリックと共有します。
の例 AWS CDK
以下は、 AWS CDK コンストラクトライブラリを使用して AWS Fargate 、起動タイプで Amazon Elastic Container Service (Amazon ECS) サービスを作成する例です。この例の詳細については、「例: を使用して AWS Fargate サービスを作成する AWS CDK」を参照してください。
export class MyEcsConstructStack extends Stack {
constructor(scope: App, id: string, props?: StackProps) {
super(scope, id, props);
const vpc = new ec2.Vpc(this, "MyVpc", {
maxAzs: 3 // Default is all AZs in region
});
const cluster = new ecs.Cluster(this, "MyCluster", {
vpc: vpc
});
// Create a load-balanced Fargate service and make it public
new ecs_patterns.ApplicationLoadBalancedFargateService(this, "MyFargateService", {
cluster: cluster, // Required
cpu: 512, // Default is 256
desiredCount: 6, // Default is 1
taskImageOptions: { image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample") },
memoryLimitMiB: 2048, // Default is 512
publicLoadBalancer: true // Default is false
});
}
}
このクラスは AWS CloudFormation 500 行を超えるテンプレート
AWS CDK features
AWS CDK GitHub レポジトリ
公式 AWS CDK GitHubリポジトリについては、aws-cdk
AWS CDK はオープンソースであるため、チームはさらに優れたツールになるように貢献することをお勧めします。詳細については、「AWS Cloud Development Kit (AWS CDK)への貢献
AWS CDK API リファレンス
AWS CDK コンストラクトライブラリにはAPIs が用意されています。詳細については、「 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 ソリューション構築
— 本番環境に対応したアプリケーションに簡単に組み込める、Vetted 設定Infrastructure as Code (IaC) パターン。 -
AWS デベロッパーツールブログ
– 用にフィルタリングされたブログ記事 AWS CDK。 -
AWS CDK on Stack Overflow
– の aws-cdk でタグ付けされた質問Stack Overflow。 -
AWS CDK のチュートリアル AWS Cloud9 – AWS CDK AWS Cloud9 開発環境で を使用するためのチュートリアル。
に関連するトピックの詳細については AWS CDK、以下を参照してください。
-
AWS CloudFormation の概念 – AWS CDK は と連携するように構築されているため AWS CloudFormation、主要な AWS CloudFormation 概念を学習して理解することをお勧めします。
-
AWS 用語集 – 全体で使用される主要な用語の定義 AWS。
サーバーレスアプリケーションの開発とデプロイを簡素化するために使用できる AWS CDK に関連するツールの詳細については、以下を参照してください。
-
AWS Serverless Application Model
– AWSでサーバーレスアプリケーションを構築および実行するエクスペリエンスを簡素化および改善するオープンソースの開発者ツール。 -
AWSChalice
– Python でサーバーレスアプリを記述するためのフレームワーク。