

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

# IaC ツール AWS CloudFormation としての の使用
<a name="cloudformation"></a>

[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) は AWS のサービス 、テンプレートファイルを使用して AWS リソースのプロビジョニングを自動化する です。デプロイするすべての AWS リソースを記述するテンプレートを作成し、それらのリソースを CloudFormation プロビジョニングして設定します。

CloudFormation テンプレートは JSON または YAML を使用して記述されます。 CloudFormation *スタック*は、テンプレートで定義されているリソースの実装です。 CloudFormation スタックは、、プログラムで CloudFormation SDK AWS マネジメントコンソール、または AWS Command Line Interface () を使用して管理できますAWS CLI。の CloudFormation 仕組みの詳細については、 CloudFormation ドキュメントの「 の[AWS CloudFormation 概念](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html)」および[「 の AWS CloudFormation 仕組み](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-howdoesitwork.html)」を参照してください。

**を使用する利点 CloudFormation：**
+ CloudFormation [変更セット](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html#cfn-concepts-change-sets)を使用すると、実行中のスタックに変更をデプロイする前に、その変更をプレビューできます。*変更セット*は、既存のスタックで実行中のリソースに対して提案された変更をまとめたものです。これにより、デプロイ前に競合や意図しない結果を特定できます。例えば、Amazon Relational Database Service (Amazon RDS) データベースインスタンスの名前を変更すると、 CloudFormation は新しいデータベースを作成し、古いデータベースを削除します。既にバックアップしていない限り、古いデータベース内のデータは失われます。変更セットを生成すると、変更によってデータベースが置き換えられ、スタックを更新する前にそれに応じて計画できるようになります。
+ 変更セットのデプロイ中にエラーが発生すると、 は既知の最後の動作状態に自動的に CloudFormation ロールバックします。
+  CloudFormation [スタックセット](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)を使用して、複数の AWS アカウント と にリソースをデプロイできます AWS リージョン。
+ AWS::\$1、Alexa::\$1、および Custom::\$1 の名前空間では、 をリソースプロバイダー CloudFormation で使用しても追加料金はかかりません。このような場合、手動でプロビジョニングしたリソースと同様に、プロビジョニングした AWS リソースに対してのみ料金が発生します。
+ CloudFormation は 状態を管理します。つまり、 CloudFormation は基盤となる のサービス呼び出しを に AWS 行い、 CloudFormation テンプレートで定義されているリソースをプロビジョニングして設定します。
+ CloudFormation には、設定ドリフトを検出して修正するためのツールが用意されています。詳細については、 CloudFormation ドキュメントの[「スタックとリソースに対するアンマネージド型設定変更の検出](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html)」を参照してください。
+  CloudFormation を使用して[カスタムリソース ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html)を作成できます。カスタムプロビジョニングロジックは、スタックを作成、更新、または削除するたびに CloudFormation 実行されるテンプレートに記述できます。
+ CloudFormation は、[CloudFormation レジストリ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html) を使用したサードパーティーアプリケーションリソースのモデリング、プロビジョニング、管理をサポートします。
+ CloudFormation は、 CloudFormation 管理への[既存のリソースのインポート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)をサポートします。

**を使用することの欠点 CloudFormation：**
+ JSON または YAML 構文に慣れていない場合は、ある程度の慣れが必要です。JSON は人間が読み取れるように設計されておらず、インラインコメントを行うことはできません。YAML を使用すると、コメントを作成でき、読みやすくなります。ただし、その構文はタブとスペースに基づいているため、インデントミスを簡単に行うことができます。
+ CloudFormation はマルチクラウドデプロイをサポートしていません。
+ 再利用可能なコンストラクトやその他のモジュール化されたコード AWS Cloud Development Kit (AWS CDK)を作成するには、 などの高レベルの実装を使用する必要があります。