CloudFormatio スタックが IN_PROGRESS 状態でスタックする理由を教えてください。

所要時間1分
0

AWS CloudFormation スタックが CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS、UPDATE_ROLLBACK_IN_PROGRESS 状態か DELETE_IN_PROGRESS 状態でスタックしています。

簡単な説明

ほとんどの場合、CloudFormation スタックは、タイムアウトするまで待つ必要があります。タイムアウトの長さはさまざまで、CloudFormation が目的の状態に達するまで待機する個々のリソースの安定化要件によって変化します。

スタックのタイムアウトを制御して、CloudFormation が待機する時間は、ロールバックトリガーで制御できます。ロールバックトリガーの詳細については「Use AWS CloudFormation stack termination protection and rollback triggers to maintain infrastructure availability」を参照してください。

解決策

スタックしているリソースを特定する

1.    CloudFormation コンソールを開きます。

2.ナビゲーションペインで [スタック] を選択し、スタック状態のスタックを選択します。

3.    [リソース] タブを選択します。

4.    [リソース] セクションの [ステータス] 列を参照します。作成、更新、削除のプロセスで停止しているリソースをすべて検索します。
注: これらのリソースは、CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS 状態か DELETE_IN_PROGRESS 状態にある可能性があります。

5.    AWS マネジメントコンソールで、リソースに対応するサービスのリソースを調べます。
**注:**このコンソールは、スタックしているリソースによって異なります。たとえば、Amazon Elastic Container Service (Amazon ECS) サービスが作成状態でスタックしている場合は、Amazon ECS コンソールでそのリソースを確認してください。

AWS CloudTrail のログを確認する

リソースの対応するコンソールにエラーが表示されない場合は、AWS CloudTrail ログを使用して問題のトラブルシューティングを行います。CloudTrail ログの表示方法については、「CloudTrail イベント履歴の操作」を参照してください。

1.    CloudFormation コンソールを開きます。

2.ナビゲーションペインで [スタック] を選択し、スタック状態のスタックを選択します。

3.    [リソース] タブを選択します。

4.    [リソース] セクションの [ステータス] 列を参照します。作成、更新、削除のプロセスで停止しているリソースをすべて検索します。
注: これらのリソースは、CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS 状態か DELETE_IN_PROGRESS 状態にある可能性があります。

5.    [イベント] タブを選択して、CloudFormation がスタックしたリソースの作成を初期化したときのタイムスタンプを書き留めます。

6.    CloudTrail コンソールを開きます。

7.    ナビゲーションペインで、[イベント履歴] を選択します。

8.    [時間範囲] に、手順 5 で記録した開始時刻 ([From]) のタイムスタンプの日時を入力します。終了時刻 ([To]) には、開始時刻から 5 分経過した日時を入力します。
**注:**たとえば、CloudFormation が 2020 年 1 月 1 日の午前 9 時にスタックリソースの作成を初期化したとします。この場合、開始時刻として、2020-01-0109:00 AM と入力し、終了時刻として、2020-01-019:05 AM と入力します。

9.    [適用] を選択します。

10.    返されたイベントのリストで、自分のリソースの create API 呼び出しまたは update API 呼び出しに関連する API 呼び出しを探します。たとえば、Amazon Elastic Block Store (Amazon EBS) のボリューム更新用の ModifyVolume を検索できます。
**ヒント:**API 呼び出しが CloudTrail ログに表示されるまで数分待ちます。API 呼び出しは、常にログにすぐに表示されるとは限りません。

タイムアウトをバイパスする

スタックがスタックする理由は複数あります。このため、解決策はスタックしているリソースによって異なります。場合によっては、タイムアウトをバイパスすれば、スタックのステータスをすばやく解決できます。たとえば、カスタムリソースと Amazon ECS サービスのタイムアウトをバイパスできる場合があります。詳細については、以下を参照してください。

スタックが CREATE_IN_PROGRESS または UPDATE_IN_PROGRESS 状態でスタックしている場合は、スタックオペレーションを使用して進行を停止できます。

**注:**問題の根本原因を理解し、今後のデプロイで回避するには、「CloudFormationのトラブルシューティング」ガイドを参照してください。


AWS公式
AWS公式更新しました 1年前