

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

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

# AWS CDK の主要な概念を学ぶ
<a name="core-concepts"></a>

 AWS Cloud Development Kit (AWS CDK) の主な概念について説明します。

## AWS CDK と IaC
<a name="concepts-iac"></a>

 AWS CDK は、コードを使用して AWS インフラストラクチャを管理するために使用できるオープンソースフレームワークです。このアプローチは、*Infrastructure as Code (IaC)* と呼ばれます。インフラストラクチャをコードとして管理およびプロビジョニングすることで、開発者がコードを処理するのと同じ方法でインフラストラクチャを処理します。これにより、バージョン管理やスケーラビリティなど、多くの利点が得られます。IaC の詳細については、[「Infrastructure as Code とは」](https://aws.amazon.com/what-is/iac/)を参照してください。

## AWS CDK と AWS CloudFormation
<a name="concepts-cfn"></a>

 AWS CDK は AWS CloudFormation と緊密に統合されています。 AWS CloudFormation は、インフラストラクチャの管理とプロビジョニングに使用できるフルマネージドサービスです AWS。 AWS CloudFormation では、 テンプレートでインフラストラクチャを定義し、 AWS CloudFormation にデプロイします。その後、 AWS CloudFormation サービスは、テンプレートで定義された設定に従ってインフラストラクチャをプロビジョニングします。

 AWS CloudFormation テンプレートは*宣言型*です。つまり、インフラストラクチャの望ましい状態または結果を宣言します。JSON または YAML を使用して、*リソース*と*プロパティ*を定義して AWS インフラストラクチャを AWS 宣言します。リソースは の多くのサービスを表 AWS し、プロパティはそれらのサービスの必要な設定を表します。テンプレートを AWS CloudFormation にデプロイすると、リソースとその設定済みプロパティがテンプレートの説明に従ってプロビジョニングされます。

 AWS CDK を使用すると、汎用プログラミング言語を使用してインフラストラクチャを*厳密に*管理できます。目的の状態を宣言的に定義する代わりに、目的の状態に達するために必要なロジックまたはシーケンスを定義できます。たとえば、`if` ステートメントまたは条件ループを使用して、インフラストラクチャの希望する終了状態に到達する方法を決定できます。

 AWS CDK で作成されたインフラストラクチャは、最終的に変換されるか、 AWS CloudFormation テンプレートに*合成*され、 AWS CloudFormation サービスを使用してデプロイされます。したがって、 AWS CDK はインフラストラクチャの作成に異なるアプローチを提供しますが、 AWS リソース設定の広範なサポートや堅牢なデプロイプロセスなど、 AWS CloudFormation の利点を引き続き享受できます。

 AWS CloudFormation の詳細については、[AWS CloudFormation とは」を参照してください。](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) * AWS CloudFormation ユーザーガイド*」の「」を参照してください。

## AWS CDK と抽象化
<a name="concepts-abstractions"></a>

 AWS CloudFormation では、リソースの設定方法の詳細をすべて定義する必要があります。これにより、インフラストラクチャを完全に制御できます。ただし、そのためには、リソース設定の詳細と、アクセス許可やイベント駆動型のインタラクションなどのリソース間の関係を含む堅牢なテンプレートを学習、理解、作成する必要があります。

 AWS CDK を使用すると、リソース設定を同じように制御できます。ただし、 AWS CDK は強力な抽象化も提供するため、インフラストラクチャ開発プロセスを高速化して簡素化できます。たとえば、 AWS CDK には、適切なデフォルト設定を提供するコンストラクトと、定型コードを生成するヘルパーメソッドが含まれています。 AWS CDK には、インフラストラクチャ管理アクションを実行する AWS CDK コマンドラインインターフェイス (AWS CDK CLI) などのツールも用意されています。

## コア AWS CDK の概念の詳細
<a name="concepts-learn"></a><a name="concepts-learn-interact"></a>

 ** AWS CDK の操作**   
 AWS CDK で を使用する場合、主に AWS コンストラクトライブラリと AWS CDK CLI を操作します。<a name="concepts-learn-develop"></a>

 ** AWS CDK を使用した開発**   
 AWS CDK は、[サポートされている任意のプログラミング言語で](languages.md)記述できます。まず、[アセット](assets.md)を含むフォルダとファイルの構造を含む [CDK プロジェクト](projects.md)から始めます。プロジェクト内で、[CDK アプリケーション](apps.md)を作成します。アプリケーション内では[スタック](stacks.md)を定義します。これは CloudFormation スタックを直接表すものです。スタック内では、 [コンストラクト](constructs.md)を使用して AWS リソースとプロパティを定義します。<a name="concepts-learn-deploy"></a>

 ** AWS CDK を使用したデプロイ**   
CDK アプリケーションを AWS [環境](environments.md)にデプロイします。デプロイする前に、環境を準備するための[ブートストラップ](bootstrapping.md)を 1 回だけ実行する必要があります。<a name="concepts-learn-more"></a>

 **詳細はこちら**   
 AWS CDK の主要概念の詳細については、このセクションのトピックを参照してください。