スキップしてコンテンツを表示

AWS OpsWorks Stacks インスタンスが起動せず、「start_failed」状態に留まっている理由を知りたいです。

所要時間3分
0

AWS OpsWorks Stacks が管理する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに、「start_failed」状態に留まっているものがあります。OpsWorks Stacks インスタンスが「online」状態にならない原因を把握し、この問題をトラブルシューティングする方法を教えてください。

簡単な説明

OpsWorks Stacks インスタンスは、いくつかの原因により start_failed 状態になり、ライフサイクルイベントの設定時に起動しなくなります。ただし、この問題は通常、ネットワークの問題が原因です。

この問題をトラブルシューティングするには、まず EC2 インスタンスが OpsWorks Stacks サービスに接続できるかどうかを確認します。接続できていない場合は、この記事の「EC2 インスタンスが OpsWorks Stacks サービスに接続できない場合」セクションを参照してください。接続できている場合は、この記事の「EC2 インスタンスが OpsWorks Stacks サービスに接続できる場合」セクションを参照してください。

注: setup_failed 状態に留まっているインスタンスについては、「AWS OpsWorks Stacks インスタンスが起動せず、"setup_failed" 状態に留まっている理由を知りたいです」を参照してください。

解決策

EC2 インスタンスが OpsWorks スタックサービスに接続できるかどうかを確認する

1.Amazon EC2 インスタンスにログインします

2.Linux コマンドラインインターフェイス (CLI) で次の netcat (nc) コマンドを実行し、インスタンスに関連付けられた OpsWorks エンドポイントにテストリクエストを送信します。

重要: opsworks.us-east-1.amazonaws.com は、使用している OpsWorks Stacks のエンドポイントに置き換えます。

nc -vz opsworks.us-east-1.amazonaws.com 443

EC2 インスタンスが OpsWorks Stacks サービスに接続できる場合、次のようなコマンド出力が表示されます。

Ncat: Connected to <ipaddress>

注: netcat が EC2 インスタンスにインストールされていない場合は、次のコマンドを実行して netcat パッケージをインスタンスに手動でインストールします。

sudo yum install -y nc

EC2 インスタンスが OpsWorks スタックサービスに接続できない場合

NAT ゲートウェイが EC2 インスタンスにインターネットアクセスを提供している場合

EC2 インスタンスが NAT ゲートウェイを使用してインターネットにアクセスできない理由を知りたいです」の手順に従ってください。

インターネットゲートウェイが EC2 インスタンスにインターネットアクセスを提供している場合

EC2 インスタンスがインターネットゲートウェイを使用してインターネットに接続できない理由を知りたいです」の手順に従ってください。

NAT インスタンスが EC2 インスタンスにインターネットアクセスを提供している場合

EC2 コンソールを開き、次のことを確認します。

詳細については、「ステータスチェックを確認する」を参照してください。

** VPC エンドポイントが EC2 インスタンスにインターネットアクセスを提供している場合**

  • 次の手順を実行し、正しい VPC エンドポイントを設定しており、使用している Amazon VPC 内でアクセスできることを確認します。
    Amazon VPC コンソールを開きます。
    ナビゲーションペインの **[Virtual Private Cloud]**で [エンドポイント] を選択します。
    次に、EC2 インスタンスに関連付けた VPC エンドポイントを正しく設定しており、アクセス可能であることを確認します。
  • VPC エンドポイントが Amazon Simple Storage Service (Amazon S3) が必要とするアクションを完了できることを確認します。

EC2 インスタンスが OpsWorks スタックサービスに接続できる場合

EC2 インスタンスの IAM アクセス許可を確認する

インスタンスプロファイル用の AWS Identity and Access Management (IAM) ロールが存在し、必要なアクセス許可がすべて含まれていることを確認します。

インスタンスプロファイル用の IAM ロールがない場合は、次の手順を実行します。

1.インスタンスを停止します。

2.次の手順を実行し、インスタンスプロファイルのロールを EC2 インスタンスからデタッチします。
EC2 コンソール[インスタンス] を選択します。次に、該当する EC2 インスタンスを選択します。
[アクション] タブを選択し、[セキュリティ][IAM ロールを変更] の順に選択します。
[IAM ロールなし] を選択します。次に、[保存] を選択します。

3.既存の EC2 インスタンスを使用してインスタンスプロファイルを置き換えます。
または、
OpsWorks Stacks 内の EC2 インスタンスを置き換えます。

注: OpsWorks Stacks 内の EC2 インスタンスを置き換える方法については、「レイヤーにインスタンスを追加する」を参照してください。

Amazon Elastic Block Store (Amazon EBS) ベースの EC2 インスタンスでルートデバイスのボリュームに空きがあることを確認する

手順については、「Linux 用ディスクの空き容量を確認する」または「Windows 用ディスクの空き容量を確認する」を参照してください。

EC2 インスタンスが IMDSv1 を使用していることを確認する

インスタンスが使用するメタデータサービスを確認し、必要に応じてインスタンスを再構成する方法については、「インスタンスのメタデータオプションを設定する」を参照してください。

注: OpsWorks Stacks は Instance Metadata Service バージョン 1 (IMDSv1) のみをサポートし、IMDSv2 はサポートしません。

カスタム AMI ベースの EC2 インスタンスにおいて、AMI が正しく設定されていることを確認する

詳細については、「AWS OpsWorks Stacks インスタンスからカスタム Linux Amazon マシンイメージ (AMI) を作成する」を参照してください。

EC2 インスタンスにインストールされている OpsWorks Stacks エージェントが実行中であることを確認する

1.Amazon EC2 インスタンスにログインします

2.Linux CLI で次のコマンドを実行し、EC2 インスタンスにインストールされている OpsWorks Stacks エージェントが実行中であることを確認します。

sudo service opsworks-agent status

OpsWorks Stacks エージェントが実行中の場合、次のようなコマンド出力が表示されます。

Active: active (running)

OpsWorks Stacks エージェントが実行中ではない場合、次のようなコマンド出力が表示されます。

Active: inactive (dead)

OpsWorks Stacks エージェントが実行中ではない場合は、次のコマンドを実行してエージェントを起動します。

sudo service opsworks-agent start

EC2 インスタンスの CloudTrail ログに「Client.UnauthorizedOperation」エラーがないか確認する

AWS CloudTrail に記録されている OpsWorks Stacks インスタンスの API コールをレビューします。EC2 の RunInstances イベントに、エラーメッセージ Client.UnauthorizedOperation を返したものがないか確認します。

インスタンスの CloudTrail にこのエラーメッセージが表示されている場合は、次の記事を参照してください。 AWS Backup を使用して Amazon EC2 インスタンスの復元を試みると、エンコードされた認可エラーメッセージが発生するため、トラブルシューティング方法を教えてください

EC2 インスタンスが複数のレイヤーに割り当てられている場合、各レイヤーのネットワーク設定が同じであることを確認する

詳細については、「レイヤーにインスタンスを追加する」を参照してください。


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

関連するコンテンツ