AWS OpsWorks Stacks のインスタンスが起動せず、「start_failed」状態のままになるのはなぜですか?

最終更新日: 2021 年 12 月 29 日

AWS OpsWorks Stacks によって管理されている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの 1 つが、「start_failed」状態のままになります。OpsWorks Stacks インスタンスが「オンライン」状態にならないのはなぜですか? また、この問題をトラブルシューティングするにはどうすればよいですか?

簡単な説明

OpsWorks Stacks インスタンスが start_failed 状態になり、セットアップライフサイクルイベント中にはさまざまな理由で起動しないことがあります。ただし、この問題は通常、ネットワークの問題が原因で発生します。

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

注: setup_failed 状態のままになっているインスタンスについては、Why is my AWS OpsWorks Stacks instance not starting and stuck in the "setup_failed" state? を参照してください。

解決方法

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

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 Stacks サービスに接続できない場合

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

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

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

EC2 インスタンスがインターネットゲートウェイを使用してインターネットに接続できないのはなぜですか? の手順に従います。

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

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

  • NAT インスタンスが [running] (実行中) 状態であること。
    注: NAT インスタンスの状態が [running] (実行中) でない場合は、状態を [running] (実行中) に変更します。
  • NAT インスタンスがヘルスチェックに合格していること。
    注: NAT インスタンスがヘルスチェックに合格しない場合は、Create a new NAT instance の手順を実行します。その後、NAT インスタンスのルートテーブルで、新しい NAT インスタンスを EC2 インスタンスに関連付けます。
  • EC2 インスタンスはデフォルトの Amazon Virtual Private Cloud (Amazon VPC) にあります。
    注: OpsWorks Stacks マネージドの EC2 インスタンスは、デフォルトの Amazon VPC の外部で起動された場合、常に start_failed 状態になります。

詳細については、ステータスチェックの表示を参照してください。

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

  • 以下の操作を実行して、ご利用の Amazon VPC 内で VPC エンドポイントが正しく、かつ、到達可能であることを確認します。
    Amazon VPC コンソールを開きます。
    ナビゲーションペインの [Virtual Private Cloud] で、 [Endpoints] (エンドポイント) を選択します。
    その後、EC2 インスタンスに関連付けられている VPC エンドポイントを確認して、それらが正しく、かつ、到達可能であることを確認します。
  • VPC エンドポイントが Amazon Simple Storage Service (Amazon S3) から必要なアクションを完了できることを確認します。

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

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

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

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

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

2.    次の操作を実行して、EC2 インスタンスからインスタンスプロファイルロールをデタッチします。
EC2 コンソールで、[Instances] (インスタンス) を選択します。その後、EC2 インスタンスを選択します。
[Actions] (アクション) タブ、[Security] (セキュリティ)、[Modify IAM role] (IAM ロールを変更) の順に選択します。
[No IAM Role] (IAM ロールなし) を選択します。その後、[Save] (保存) を選択します。

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

注: OpsWorks Stacks で EC2 インスタンスを置き換える方法の詳細については、Adding an instance to a Layer を参照してください。

Amazon Elastic Block Store (Amazon EBS) によってバッキングされた EC2 インスタンスについては、インスタンスのルートデバイスボリュームがいっぱいになっていないことを確認します。

手順については、空きディスク容量の表示 (Linux) または 空きディスク容量の表示 (Windows)を参照してください。

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

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

注: OpsWorks Stacks は、Instance Metadata Service Version 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 コールを確認します。Client.UnauthorizedOperation というエラーメッセージを返した EC2 RunInstances イベントを探します。

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

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

詳細については、Adding an instance to a layer を参照してください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?