「stop_failed」状態にある AWS OpsWorks Stacks インスタンスを停止するときに、「内部エラー」メッセージのトラブルシューティングを行うにはどうすればよいですか?

所要時間2分
0

「stop_failed」状態にある AWS OpsWorks Stacks インスタンスを停止しようとすると、「内部エラー」というメッセージが表示されます。このエラーをトラブルシューティングする方法を教えてください。

簡単な説明

OpsWorks Stacks は、次の 2 つの理由で stop_failed 状態のインスタンスを停止しようとすると、内部エラーメッセージが返されることがあります。

エラーを解決するには、まずスタックの IAM サービスロールが正しく設定されていることを確認します。問題がアクセス許可に関連していない場合は、AWS Command Line Interface (AWS CLI) stop-instance コマンドを実行して、インスタンスを停止します。コマンドには、停止する必要があるインスタンスの --force パラメーターと OpsWorks インスタンス ID を含める必要があります。

解決方法

注意: AWS CLI コマンドの実行時にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください

スタックの IAM サービスロールが正しく設定されていることを確認する

[AWS OpsWorks Stacks がユーザーに代わって動作することを許可する] に記載されている手順に従います

問題がアクセス許可に関連していない場合は、AWS CLI stop-instance コマンドを実行してインスタンスを停止します。

AWS CLI stop-instance コマンドを実行してインスタンスを停止するには

注: AWS CloudShell を使用して次のコマンドを実行することもできます。

1.    次の describe-instances コマンドを実行して、 stoped_failed 状態にあるスタック内のインスタンスのインスタンス ID を返します。

重要: your-stack-id を自分のスタック ID に置き換えます。your-OpsWorks-Stack-Endpoint-region を、スタックがある AWS OpsWorks Stacks のエンドポイントリージョンに置き換えます。

$ aws opsworks describe-instances --stack-id your-stack-id --region your-OpsWorks-Stack-Endpoint-region --query 'Instances[?Status==`stop_failed`].{Id:InstanceId}'

2.    停止するインスタンスのインスタンス ID を特定します。stop-instance コマンドを実行するには、これらのインスタンス ID が必要です。

3.    (単一のインスタンスを停止するには) 次の stop-instance コマンドを実行します。

重要: your-opsworks-instance-id を停止するインスタンス ID に、your-opsWorks-Stack-Endpoint-region をスタックがある OpsWorks Stacks のエンドポイントリージョンに置き換えます。

$ aws opsworks stop-instance --instance-id your-opsworks-instance-id --force --region your-OpsWorks-Stack-Endpoint-region
  • または -

(複数のインスタンスを停止するには) カスタム構文ロジックを使用して、停止するインスタンスを反復する stop-instance コマンドを実行します。

複数のインスタンスを停止する stop-instance コマンドの例

重要: your-stack-id を自分のスタック ID に置き換えます。your-OpsWorks-Stack-Endpoint-region を、スタックがある OpsWorks Stacks のエンドポイントリージョンに置き換えます。

$ for Id in $(aws opsworks describe-instances --stack-id your-stack-id --region your-OpsWorks-Stack-Endpoint-region --query 'Instances[?Status==`stop_failed`].{Id:InstanceId}' --output text) ; do aws opsworks stop-instance --instance-id $Id --force --region your-OpsWorks-Stack-Endpoint-region  ; done

AWS公式
AWS公式更新しました 3年前
コメントはありません