これは AWS CDK v2 開発者ガイドです。古い CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
は何ですか AWS CDK?
AWS Cloud Development Kit (AWS CDK) は、 AWS CloudFormationクラウドインフラストラクチャをコードで定義し、それをプロビジョニングするためのオープンソースのソフトウェア開発フレームワークです。
は主に 2 AWS CDK つの部分で構成されています。
-
AWS CDK Construct Library — コンストラクトと呼ばれる、あらかじめ作成されたモジュール式で再利用可能なコードの集まりで、使用、変更、統合することでインフラストラクチャを迅速に開発できます。 AWS CDK Construct Library の目標は、 AWS アプリケーションを構築する際にサービスを定義して統合する際に必要となる複雑さを軽減することです。 AWS
-
AWS CDK Toolkit — CDK アプリを操作するためのコマンドラインツールです。 AWS CDK Toolkit を使用してプロジェクトを作成、管理、デプロイします。 AWS CDK
はTypeScript、、JavaScript、PythonJavaC#/.Net、 AWS CDK Goおよびをサポートします。サポートされているプログラミング言語のいずれかを使用して、コンストラクトと呼ばれる再利用可能なクラウドコンポーネントを定義できます。これらをまとめてスタックとアプリにします。次に、CDK AWS CloudFormation アプリケーションをにデプロイして、リソースをプロビジョニングまたは更新します。
の利点 AWS CDK
を使用すると、 AWS CDK プログラミング言語の優れた表現力を利用して、信頼性が高く、スケーラブルで費用対効果の高いアプリケーションをクラウドで開発できます。このアプローチには、次のような多くのメリットがあります。
- インフラストラクチャー・アズ・コード (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、IaC 管理サービスを使い始めるときに新しい IaC 管理サービスを学ぶ必要はありません。 AWS CDK
- コンストラクトを使えば、アプリケーションの開発をすぐに始められます。
-
コンストラクトと呼ばれる再利用可能なコンポーネントを使用したり共有したりすることで、開発をスピードアップできます。 AWS CloudFormation 低レベルの構成を使用して個々のリソースとそのプロパティを定義してください。高水準構造を使用すると、アプリケーションのより大きなコンポーネントを迅速に定義できます。 AWS リソースには適切で安全なデフォルト設定を適用し、少ないコードでより多くのインフラストラクチャーを定義できます。
独自のユースケースに合わせてカスタマイズした独自の構成を作成して、組織全体で共有したり、一般に公開したりできます。
その例 AWS CDK
以下は、 AWS CDK AWS Fargate (Fargate) コンストラクトライブラリを使用して起動タイプの Amazon Elastic Container Service (Amazon ECS) サービスを作成する例です。この例の詳細については、「」を参照してください。を使用して AWS Fargate サービスを作成する AWS CDK
このクラスは 500 AWS CloudFormation 行を超えるテンプレートを生成します
AWS CDK features
AWS CDKGitHubレポジトリー
AWS CDK GitHub公式リポジトリについては、aws-cdk
AWS CDK はオープンソースなので、より優れたツールになるよう皆さんに貢献していただきたいとチームでは奨励しています。詳細については、「への貢献
AWS CDK API リファレンス
AWS CDK コンストラクトライブラリには、CDK アプリケーションを定義し、アプリケーションに CDK コンストラクトを追加するための API が用意されています。詳細については、「 APIリファレンスAWS CDK」を参照してください。
コンストラクトプログラミングモデル
コンストラクト・プログラミング・モデル (CPM) は、 AWS CDK その背後にある概念を他の領域にも拡張します。CPM を使用するその他のツールには以下が含まれます。
-
Projen
、プロジェクト構成の構築用
コンストラクトハブ
Construct Hub
次のステップ
の使用を開始するには AWS CDK、を参照してくださいの開始方法 AWS CDK。
詳細はこちら
について引き続き学習するには AWS CDK、以下を参照してください。
-
AWS CDK コンセプト— の重要な概念と用語 AWS CDK
-
AWS CDK ワークショップ
— を学び、使用するためのハンズオンワークショップ. AWS CDK -
AWS CDK パターン
— 専門家がのために構築した、 AWS オープンソースのサーバーレスアーキテクチャパターン集。 AWS CDK AWS -
cdk.dev
— コミュニティ主導のハブ。コミュニティワークスペースを含む。 AWS CDKSlack -
Awesome CDK
— AWS CDK オープンソースプロジェクト、ガイド、ブログ、GitHubその他のリソースの厳選されたリストを含むリポジトリ。 -
AWS ソリューション構築
— 検証済みのコードとしてのインフラストラクチャ (IaC) パターンで、本番環境ですぐに使えるアプリケーションに簡単に組み込めます。 -
AWS デベロッパーツールブログ — ブログ投稿を絞り込んでいます
。 AWS CDK -
AWS CDK オン Stack Overflow
— aws-cdk on とタグ付けされた質問 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