インスタンスを開始できず、describe-instances コマンドの実行時に Client.InternalError が表示されます。この問題を解決する方法を教えてください。

最終更新日: 2020 年 3 月 30 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを開始しようとすると、インスタンスが起動せずにエラーメッセージが返されないか、起動せずにエラーメッセージ「Client.InternalError」が返されます。どうすれば修正できますか? 

簡単な説明

Client.InternalError メッセージが表示される理由はいくつかあります。

  • Elastic Block Store(Amazon EBS) ボリュームがインスタンスに正しく添付されていない。
  • インスタンスに添付された EBS ボリュームがエラー状態である。
  • インスタンスに添付された EBS ボリュームが暗号化されている。

: インスタンスが開始せず、エラーコードが表示されない場合は、describe-instances コマンドを実行します。次に、インスタンス ID を指定します。次の例では、MYINSTANCEを、開始しようとしているインスタンスの ID に置き換えています。

aws ec2 describe-instances --instance-id MYINSTANCE --output json

コマンドが返す JSON レスポンスの StateReason メッセージを確認します。

次の例では、返される StateReason は「Client.InternalError」です。

"StateReason": {
     "Message": "Client.InternalError: Client error on launch",
     "Code": "Client.InternalError"
   },

解決方法

EBS ボリュームがインスタンスに正しく添付されていない

EBS ルートボリュームが /dev/sda1 または /dev/xvda としてインスタンスに添付されておらず、2 番目の EBS ボリュームに重複または競合するデバイス名がある場合、インスタンスを停止または開始することはできません。

  1. Amazon EC2 コンソールを開き、開始できないインスタンスを選択します。
  2. [説明] タブで、ブロックデバイスに一覧表示されているデバイス名を確認します。ブロックデバイスフィールドには、添付されたボリュームのデバイス名がすべて表示されます。
  3. ルートデバイスが正しく添付されており、同じ名前または競合する名前のデバイスが表示されていないことを確認します。
  4. デバイス名が重複または競合するデバイスがある場合は、競合するボリュームを添付解除して名前を変更します。次に、更新されたデバイス名でボリュームを再添付します。

添付された EBS ボリュームが ERROR 状態である

Amazon EC2 コンソールを開き、[ボリューム] を選択して、ボリュームのステータスが [エラー] であることを確認します。オプションは、エラー状態のボリュームがルートボリュームであるかセカンダリボリュームであるかによって異なります。

エラー状態のボリュームがセカンダリボリュームの場合は、ボリュームを添付解除します。これで、インスタンスを開始できます。

エラー状態のボリュームがルートボリュームであり、ボリュームの既存のスナップショットがある場合:

  1. ボリュームを添付解除します
  2. スナップショットで新しいボリュームを作成します
  3. 元のインスタンスのデバイス名を使用して、新しいボリュームをインスタンスに添付します。インスタンスを開始します。

: エラー状態のボリュームがルートボリュームで、ボリュームの既存のスナップショットがない場合、インスタンスを再起動することはできません。インスタンスを再構築する必要があります。

添付されたボリュームが暗号化されている

添付されたボリュームが暗号化されている場合は、以下を確認してください。

: ボリュームが暗号化されているかどうかを確認するには、Amazon EC2 コンソールを開き、[ボリューム] をクリックします。暗号化されたボリュームは、暗号化済み暗号化列に表示されます。