AWS CloudFormation スタックが機能しない状態になったことが原因で、AWS Elastic Beanstalk で環境の操作に失敗する問題をトラブルシューティングしたいです。
簡単な説明
Elastic Beanstalk は、CloudFormation スタックを作成することで、Elastic Beanstalk 環境に関連するリソースを管理します。このスタックは、awseb-(env-ID)-stack というスタック名で CloudFormation コンソールに表示されます。
Elastic Beanstalk 環境が機能しない状態になると、CloudFormation スタックのステータスが FAILED と表示され、次のエラーメッセージが発生します。
"環境 ENVIRONMENT-ID に関連付けられたスタック STACK-ID の状態が、STACK-STATUS です。"
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Elastic Beanstalk 環境を機能する状態に移行させるには、次の表に記載された、CloudFormation スタックのステータスに関連するアクションを実行します。
| | |
---|
CloudFormation スタックのステータス | CloudFormation のアクション | Elastic Beanstalk のアクション |
CREATE_FAILED | なし | 環境の再構築または環境の終了操作を実行する |
UDPATE_ROLLBACK_FAILED | スタックのステータスを UPDATE_ROLLBACK_COMPLETE に移行させる | 操作を再試行する |
DELETE_FAILED | スタックのステータスを DELETE_COMPLETE に移行させる | 操作を再試行する |
UPDATE_ROLLBACK_COMPLETE | なし | 操作を再試行する |
UPDATE_COMPLETE | なし | スタックの以前の状態が CREATE_FAILED だった場合は、再構築または終了操作を実行します。それ以外の場合は、操作を再試行します。 |
DELETE_COMPLETE | なし | 操作を再試行します。 |
ROLLBACK_COMPLETE | なし | 環境の再構築または環境の終了操作を実行します。 |
CloudFormation スタックのステータスが FAILED である場合は、次の解決策のいずれかを実施します。
CREATE_FAILED ステータス
スタックのステータスが CREATE_FAILED の場合、環境は回復できません。スタックのステータスが UPDATE_COMPLETE に変化した場合も、環境の問題は解消されません。スタックのステータスが CREATE_FAILED の場合は、新しい Elastic Beanstalk 環境を作成する必要があります。
環境を再作成するには、次のいずれかを実行します。
それでも新しい環境を作成できない場合は、次の手順を実行します。
- 新しい環境を作成できない原因となる問題がある場合は、スタックでの障害の根本原因に対処します。
- 新しい環境を作成するために、現在の環境を終了し、CreateEnvironment 操作をもう一度実行します。または、コンソールを使用して環境を再構築するか、rebuild-environment コマンドを実行します。
UPDATE_ROLLBACK_FAILED ステータス
Elastic Beanstalk 環境を機能する状態にするには、次の手順を実行します。
- CloudFormation コンソールを開きます。
- 各スタックイベントにおいて、ロールバック中に更新に失敗したリソースを特定した後、障害に対処します。
- スタックのステータスを UPDATE_ROLLBACK_COMPLETE に移行させるために、CloudFormation コンソールで [更新ロールバックを続ける] オプションを選択します。
- [更新ロールバックを続ける] ダイアログボックスで [高度なトラブルシューティング] を展開します。[スキップするリソース - オプション] セクションで、更新に失敗したリソースを選択します。
- [更新ロールバックを続ける] を選択します。完了すると、スタックのステータスは UPDATE_ROLLBACK_COMPLETE と表示されます。
- エラーが発生した操作を再試行します。
DELETE_FAILED ステータス
Elastic Beanstalk 環境を機能する状態にするには、次の手順を実行します。
- CloudFormation コンソールを開きます。
- 各スタックイベントにおいて、削除に失敗したリソースを特定します。
- リソースを手動で削除します。たとえば、削除に失敗したリソースがセキュリティグループである場合は、Amazon Elastic Compute Cloud (Amazon EC2) コンソールを使用してそのセキュリティグループを削除します。
- CloudFormation コンソールから CloudFormation スタックを削除します。削除されたスタックのステータスは、DELETE_COMPLETE と表示されます。
- 環境の終了または環境の再構築操作を再試行します。
詳細については、「AWSebSecurityGroup が削除に失敗した場合、Elastic Beanstalk 環境を終了または再構築する方法を教えてください」を参照してください。