これは AWS CDK v2 デベロッパーガイドです。古い 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 とも呼ばれます。
は、TypeScript、、JavaScript、Python、Java、C#/.Netおよび AWS CDK をサポートしますGo。これらのサポートされているプログラミング言語のいずれかを使用して、コンストラクト と呼ばれる再利用可能なクラウドコンポーネントを定義できます。これらをスタックとアプリケーション にまとめて構成します。次に、CDKアプリケーションを にデプロイ AWS CloudFormation して、 リソースをプロビジョニングまたは更新します。
の利点 AWS CDK
を使用して、プログラミング言語のかなりの表現力を備えた、信頼性が高く、スケーラブルで、費用対効果の高いアプリケーションをクラウドで AWS CDK 開発します。このアプローチには、次のような多くの利点があります。
- Infrastructure as Code (IaC) の開発と管理
-
Infrastructure as Code を実践して、プログラム、説明、宣言的な方法でインフラストラクチャを作成、デプロイ、維持します。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、 の使用を開始するときに新しい IaC 管理サービスを学ぶ必要はありません AWS CDK。
- コンストラクトを使用してアプリケーションの開発をすばやく開始する
-
コンストラクトと呼ばれる再利用可能なコンポーネントを使用して共有することで、開発を高速化します。低レベルのコンストラクトを使用して、個々の AWS CloudFormation リソースとそのプロパティを定義します。高レベルのコンストラクトを使用して、アプリケーションのより大きなコンポーネントをすばやく定義し、 AWS リソースの適切で安全なデフォルトを使用して、より少ないコードでより多くのインフラストラクチャを定義します。
独自のユースケースに合わせてカスタマイズされた独自のコンストラクトを作成し、組織全体または一般ユーザーと共有します。
の例 AWS CDK
以下は、 AWS CDK コンストラクトライブラリを使用して AWS Fargate (Fargate) 、起動タイプで Amazon Elastic Container Service (Amazon ECS) サービスを作成する例です。この例の詳細については、「」を参照してください例: を使用して AWS Fargate サービスを作成する AWS CDK。
このクラスは、 AWS CloudFormation 500 行以上のテンプレート
AWS CDK features
AWS CDKGitHub リポジトリ
公式 AWS CDK GitHubリポジトリについては、「aws-cdk
AWS CDK はオープンソースであるため、チームはさらに優れたツールになるように貢献することをお勧めします。詳細については、「 への寄稿 AWS Cloud Development Kit (AWS CDK)
AWS CDK API リファレンス
AWS CDK コンストラクトライブラリは、CDKアプリケーションを定義し、アプリケーションにCDKコンストラクトを追加APIsするために を提供します。詳細については、「 AWS CDK APIリファレンス」を参照してください。
コンストラクトプログラミングモデル
プログラミングモデルの構築 (CPM) は、 の背後にある概念を追加のドメイン AWS CDK に拡張します。を使用するその他のツールCPMは次のとおりです。
-
CDK Terraform 用
(CDKtf) -
CDK for Kubernetes
(CDK8s) -
プロジェクト設定を構築するための Projen
Construct Hub
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、 のコミュニティ駆動型ハブ。 -
素晴らしい CDK
— オープンソースプロジェクト、ガイド、ブログ、その他のリソースの AWS CDK 厳選されたリストを含むGitHubリポジトリ。 -
AWS ソリューション構築 —
本番環境に対応したアプリケーションに簡単にアセンブルできる、セットされたコードとしてのインフラストラクチャ (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。