

# CloudFormation スタック作成イベントを理解する
<a name="stack-resource-configuration-complete"></a>

スタックのデプロイ中は、スタックテンプレートに定義されているリソースを作成、設定、および検証するためのイベントがいくつか発生します。これらのイベントを理解することは、スタック作成プロセスを最適化し、デプロイを合理化するために役立ちます。
+ **リソース作成イベント** – 各リソースが作成プロセスを開始すると、`CREATE_IN_PROGRESS` イベントの **[ステータス]** が設定されます。このイベントは、リソースがプロビジョニングされていることを示します。
+ **結果整合性チェック** – スタック作成時間の大部分は、スタックによって作成されたリソースに対する結果整合性チェックの実行に費やされます。このフェーズでは、サービスが内部整合性チェックを実行して、リソースが完全に機能し、各 AWS のサービスが定義するサービス安定化基準を満たしていることを確認します。
+ **設定完了イベント** – 各リソースがプロビジョニングの結果整合性チェックフェーズを完了すると、`CONFIGURATION_COMPLETE` イベントの **[詳細ステータス]** が設定されます。
+ **リソース作成完了イベント** – リソースが指定されたとおりに作成および設定され、設定がテンプレートで指定されたものと一致すると、`CREATE_COMPLETE` イベントの **[ステータス]** が設定されます。

本番稼働前のスタック設定やクロススタックプロビジョニングの検証など、リソースの結果整合性チェックが不要なシナリオでは、`CONFIGURATION_COMPLETE` イベントを活用してスタック作成プロセスを合理化できます。このイベントは複数の方法で使用できます。例えば、視覚的なシグナルとして使用することで、リソースまたはスタックの整合性チェックの終了を待たずに済みます。または、継続的インテグレーションと継続的デリバリー (CI/CD) を使用して自動メカニズムを作成し、追加のアクションをトリガーすることもできます。

**重要**  
`CONFIGURATION_COMPLETE` イベントを利用するとスタックの作成時間が短縮されますが、そのトレードオフに注意する必要があります。まず、サポートされているのは、ドリフト検出をサポートする一部のリソースタイプのみです。ドリフト検出をサポートするリソースタイプのリストについては、「[リソースタイプのサポート](resource-import-supported-resources.md)」を参照してください。このアプローチは、クラウド環境全体 (本番環境など) の運用準備を完全に確保するために、リソースが徹底的な結果整合性チェックを必要とするシナリオには適さない場合があります。デプロイ要件と各リソースの整合性チェックの重要性を慎重に評価することをお勧めします。`CONFIGURATION_COMPLETE` イベントを使用して、インフラストラクチャの整合性と信頼性を損なうことなく、デプロイ速度を最適化します。  
`CONFIGURATION_COMPLETE` イベントの設定は保証されないため、`CONFIGURATION_COMPLETE` イベントが設定済みでない場合は、それを使用するシナリオで `CREATE_COMPLETE` イベントを処理する準備を整える必要があります。

![\[スタック内のリソース作成と結果整合性チェックのイベントのシーケンスを示す図。\]](http://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/images/configuration-complete.png)


スタックのデプロイが開始されると、リソース `AWS::ECR::Repository` および `AWS::ECS::Cluster` が作成プロセスを開始します (`ResourceStatus` = `CREATE_IN_PROGRESS`)。`AWS::ECR::Repository` リソースタイプによって結果整合性チェックが開始されると (`DetailedStatus` = `CONFIGURATION_COMPLETE`)、`AWS::ECS::TaskDefinition` リソースは作成プロセスを開始できるようになります。同様に、`AWS::ECS::TaskDefinition` リソースが結果整合性チェックを開始すると、`AWS::ECS::Service` リソースは作成プロセスを開始します。

**`CREATE_IN_PROGRESS` イベントと `CREATE_COMPLETE` イベント**
+ **[スタック]:** `CREATE_IN_PROGRESS`
+ **[リソース]:** ECR リポジトリ `CREATE_IN_PROGRESS`
+ **[リソース]:** ECS クラスター `CREATE_IN_PROGRESS`
+ **[リソース]:** ECR リポジトリ`CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[リソース]:** ECS タスク定義 `CREATE_IN_PROGRESS`
+ **[リソース]:** ECS クラスター`CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[リソース]:** ECS タスク定義 `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[リソース]:** ECS サービス `CREATE_IN_PROGRESS`
+ **[リソース]:** ECR リポジトリ `CREATE_COMPLETE`
+ **[リソース]:** ECS クラスター `CREATE_COMPLETE`
+ **[リソース]:** ECS サービス `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[スタック]:** `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[リソース]:** ECS タスク定義 `CREATE_COMPLETE`
+ **[リソース]:** ECS サービス `CREATE_COMPLETE`
+ **[スタック]:** `CREATE_COMPLETE`