Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

とは AWS CDK

フォーカスモード
とは AWS CDK - AWS Cloud Development Kit (AWS CDK) v2

これは v2 AWS CDK デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

これは 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 app structure with stacks, constructs, and deployment to 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 (統合開発環境) でインフラストラクチャを開発する利点が得られます。

Code snippet showing AWS CDK setup for ECS クラスター with VPC and Fargate service configuration.
によるインフラストラクチャのデプロイ 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」を参照してください。

TypeScript
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 }); } }
JavaScript
class MyEcsConstructStack extends Stack { constructor(scope, id, props) { 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 }); } } module.exports = { MyEcsConstructStack }
Python
class MyEcsConstructStack(Stack): def __init__(self, scope: Construct, id: str, **kwargs) -> None: super().__init__(scope, id, **kwargs) vpc = ec2.Vpc(self, "MyVpc", max_azs=3) # default is all AZs in region cluster = ecs.Cluster(self, "MyCluster", vpc=vpc) ecs_patterns.ApplicationLoadBalancedFargateService(self, "MyFargateService", cluster=cluster, # Required cpu=512, # Default is 256 desired_count=6, # Default is 1 task_image_options=ecs_patterns.ApplicationLoadBalancedTaskImageOptions( image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")), memory_limit_mib=2048, # Default is 512 public_load_balancer=True) # Default is False
Java
public class MyEcsConstructStack extends Stack { public MyEcsConstructStack(final Construct scope, final String id) { this(scope, id, null); } public MyEcsConstructStack(final Construct scope, final String id, StackProps props) { super(scope, id, props); Vpc vpc = Vpc.Builder.create(this, "MyVpc").maxAzs(3).build(); Cluster cluster = Cluster.Builder.create(this, "MyCluster") .vpc(vpc).build(); ApplicationLoadBalancedFargateService.Builder.create(this, "MyFargateService") .cluster(cluster) .cpu(512) .desiredCount(6) .taskImageOptions( ApplicationLoadBalancedTaskImageOptions.builder() .image(ContainerImage .fromRegistry("amazon/amazon-ecs-sample")) .build()).memoryLimitMiB(2048) .publicLoadBalancer(true).build(); } }
C#
public class MyEcsConstructStack : Stack { public MyEcsConstructStack(Construct scope, string id, IStackProps props=null) : base(scope, id, props) { var vpc = new Vpc(this, "MyVpc", new VpcProps { MaxAzs = 3 }); var cluster = new Cluster(this, "MyCluster", new ClusterProps { Vpc = vpc }); new ApplicationLoadBalancedFargateService(this, "MyFargateService", new ApplicationLoadBalancedFargateServiceProps { Cluster = cluster, Cpu = 512, DesiredCount = 6, TaskImageOptions = new ApplicationLoadBalancedTaskImageOptions { Image = ContainerImage.FromRegistry("amazon/amazon-ecs-sample") }, MemoryLimitMiB = 2048, PublicLoadBalancer = true, }); } }
Go
func NewMyEcsConstructStack(scope constructs.Construct, id string, props *MyEcsConstructStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) vpc := awsec2.NewVpc(stack, jsii.String("MyVpc"), &awsec2.VpcProps{ MaxAzs: jsii.Number(3), // Default is all AZs in region }) cluster := awsecs.NewCluster(stack, jsii.String("MyCluster"), &awsecs.ClusterProps{ Vpc: vpc, }) awsecspatterns.NewApplicationLoadBalancedFargateService(stack, jsii.String("MyFargateService"), &awsecspatterns.ApplicationLoadBalancedFargateServiceProps{ Cluster: cluster, // required Cpu: jsii.Number(512), // default is 256 DesiredCount: jsii.Number(5), // default is 1 MemoryLimitMiB: jsii.Number(2048), // Default is 512 TaskImageOptions: &awsecspatterns.ApplicationLoadBalancedTaskImageOptions{ Image: awsecs.ContainerImage_FromRegistry(jsii.String("amazon/amazon-ecs-sample"), nil), }, PublicLoadBalancer: jsii.Bool(true), // Default is false }) return stack }
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 アプリケーションをデプロイすると、次のタイプの 50 を超えるリソースが生成されます。

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 を使用するその他のツールには次のものが含まれます。

コンストラクトハブ

Construct Hub は、オープンソース AWS CDK ライブラリを検索、公開、共有できるオンラインレジストリです。

次のステップ

の使用を開始するには AWS CDK、「」を参照してくださいの開始方法 AWS CDK

詳細

について学習を続けるには AWS CDK、以下を参照してください。

に関連するトピックの詳細については AWS CDK、以下を参照してください。

  • AWS CloudFormation の概念 – AWS CDK は と連携するように構築されているため AWS CloudFormation、主要な AWS CloudFormation 概念を学習して理解することをお勧めします。

  • AWS 用語集 – 全体で使用される主要な用語の定義 AWS。

サーバーレスアプリケーションの開発とデプロイを簡素化するために使用できる AWS CDK に関連するツールの詳細については、以下を参照してください。

  • AWS Serverless Application Model – AWSでサーバーレスアプリケーションを構築および実行するエクスペリエンスを簡素化および改善するオープンソースの開発者ツール。

  • AWSChalice – Python でサーバーレスアプリを記述するためのフレームワーク。

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.