EC2 インスタンスを起動または開始できないのはなぜですか?

所要時間3分
0

新しい Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動することも、既存のインスタンスを開始することもできません。

解決策

EC2 インスタンスを起動または開始できない理由は複数あります。インスタンスを開始しようとしてもエラーコードが表示されない場合は、以下を実行してください。

1.    AWS CloudTrailStartInstances イベントを確認してください。

または

AWS コマンドラインインターフェイス (AWS CLI) の describe-instances コマンドを実行し、インスタンス ID を指定して問題の原因を確認してください。次の例では、MYINSTANCE を開始しようとしているインスタンス ID に置き換えてください。

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

コマンドが返す JSON レスポンスの StateReason メッセージを確認します。次のレスポンスの例では、返される StateReasonClient.InternalError です。

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

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

2.    次の一般的なエラーを確認して問題を解決してください。

InsufficientInstanceCapacity

次のエラーは、新しいインスタンスを起動するか、停止したインスタンスを再起動したときに、リクエストを満たすのに十分なオンデマンドキャパシティーがない場合に発生します。

An error occurred (InsufficientInstanceCapacity) when calling the StartInstances operation (reached max retries: 4): Insufficient capacity.)

このエラーは、リクエストを完了するのに十分なオンデマンドキャパシティーがない場合に発生します。

解決策については、「EC2 インスタンスを開始または起動する際に発生する、InsufficientInstanceCapacity エラーのトラブルシューティング方法を教えてください」を参照してください。

InstanceLimitExceeded

AWS リージョンで許可されている最大数を超えるインスタンスを起動すると、次のエラーが発生します。

InstanceLimitExceeded: Your quota allows for 0 more running instance(s).

このメッセージを受け取った場合は、クォータ増加リクエストを AWS サポートに送信してください。リクエストには、起動しようとしているインスタンスタイプと起動する AWS リージョンを必ず含めてください。

このエラーの解決策については、「EC2 インスタンスを開始または起動する際に発生する、InstanceLimitExceeded エラーのトラブルシューティング方法を教えてください」を参照してください。

UnauthorizedOperation

UnauthorizedOperation エラーは、インスタンスを起動しようとしているユーザーに必要な権限がない場合に発生します。このエラーを解決するには、「EC2 インスタンスの起動中に「UnauthorizedOperation」エラーを受け取った後に認証失敗メッセージをデコードする方法を教えてください」を参照してください。

リクエストされた構成は現在サポートされていません

このエラーの原因は、次の 2 つの問題のいずれかです。

1.    指定されたインスタンスタイプが、リクエストされたアベイラビリティーゾーンではサポートされていません。特定のアベイラビリティーゾーンでのインスタンスタイプの可用性を確認するには、AWS CLI で aws ec2 describe-instance-type-offerings コマンドを実行します。次に、サポートされているアベイラビリティーゾーンでインスタンスを起動します。

たとえば、次のコマンドを使用して、us-east-1 のすべてのアベイラビリティーゾーンで c5.2xlarge インスタンスタイプの可用性を確認します。

aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=c5.2xlarge --region us-east-1

2.    インスタンスの起動に使用される Amazon マシンイメージ (AMI) は、選択したインスタンスタイプをサポートしていません。インスタンスタイプまたはファミリーを選択する前に、AWS Marketplace の AMI の説明を確認してください。この問題は通常、AWS Marketplace AMI を使用していて、サポートされていないインスタンスを AWS CLI を使用して起動しようとしたときに発生します。Amazon EC2 コンソールからインスタンスを起動する場合、サポートされていないインスタンスは使用できません。

Client.InternalError

このエラーが表示される一般的な理由は次のとおりです。

  • Amazon Elastic Block Store (Amazon EBS) ボリュームがインスタンスに正しくアタッチされていません。
  • インスタンスにアタッチされている EBS ボリュームは ERROR 状態です。
  • 暗号化された EBS ボリュームがインスタンスにアタッチされます。ただし、AWS Key Management Service (AWS KMS) にアクセスして復号化する権限はありません。

これらの問題の解決方法については、「Amazon EC2 インスタンスを開始しようとすると停止または終了する Amazon EC2 インスタンスのトラブルシューティング方法を教えてください」を参照してください。

ディスク容量不足エラー

インスタンスの容量が不足し、監査サービスが起動後すぐにマシンを停止すると、ディスク容量不足エラーが発生します。

注: 先に進む前に、ボリュームのデータをバックアップするスナップショットを作成するのがベストプラクティスです。

**重要:**これらの解決策では、インスタンスを開始および停止する必要があります。次の点に注意してください。

  • インスタンスを停止すると、インスタンスストアボリュームのデータが失われます。詳細については、「インスタンスのルートデバイスタイプの判別」を参照してください。
  • Amazon EC2 Auto Scaling グループの一部であるインスタンスを停止すると、そのインスタンスも終了する可能性があります。Amazon EMR、AWS CloudFormation、または AWS Elastic Beanstalk を使用して起動するインスタンスは、AWS Auto Scaling グループの一部である可能性があります。このシナリオでのインスタンスの終了は、Auto Scaling グループのインスタンススケールイン保護設定によって異なります。インスタンスが Auto Scaling グループの一部である場合は、先に進む前に Auto Scaling グループから一時的にインスタンスを削除します。
  • インスタンスを停止して開始すると、インスタンスのパブリック IP アドレスが変更されます。外部トラフィックをインスタンスにルーティングする場合は、パブリック IP アドレスの代わりに Elastic IP アドレスを使用するのがベストプラクティスです。

ディスク容量不足エラーを解決するには、次の手順に従います。

1.    Amazon EC2 コンソールを開きます。

2.    ナビゲーションペインから [インスタンス] を選択し、インスタンスを選択します。

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

4.    停止したインスタンスから EBS ルートボリューム (Linux の場合は /dev/xvda) をデタッチします。

5.    影響のあったインスタンスと同じアベイラビリティーゾーンで、新しい EC2 インスタンスを起動します。新しいインスタンスがレスキューインスタンスになります。

6.    ステップ 4 でデタッチしたルートボリュームをセカンダリデバイスとしてレスキューインスタンスにアタッチします。

注: セカンダリーボリュームをアタッチするときは、別のデバイス名を使用できます。

7.    SSH を使用してレスキューインスタンスに接続します。

8.    ステップ 6 でレスキューインスタンスにアタッチされた新しいボリュームのマウントポイントディレクトリを作成します。次の例では、マウントポイントディレクトリは /mnt/rescue です。

注: 次の $ sudo コマンドは Linux 環境にのみ適用されます。

$ sudo mkdir /mnt/rescue

9.    ステップ 8 で作成したディレクトリにボリュームをマウントします。

$ sudo mount /dev/xvdf /mnt/rescue

注: デバイス (この例では /dev/xvdf) が別のデバイス名でレスキューインスタンスにアタッチされている可能性があります。正しいデバイス名を確認するには、lsblk コマンドを使用して、使用可能なディスクデバイスとそのマウントポイントを表示します。

10.    ルートボリュームのサイズを増やします

11.    パーティションを拡張します

12.    umount コマンドを実行して、ボリュームをアンマウントします。

$ sudo umount /mnt/rescue

13.    一時インスタンスからボリュームをデタッチします。

14.    デバイス名 (Linux の場合は /dev/xvda) を使用して元のインスタンスにボリュームをアタッチし、インスタンスを起動して正常に起動することを確認します。

15.    監査サービスの設定を見直して、スペースが不足した場合にマシンを停止 (シャットダウン) するオプションがないことを確認します。Amazon Linux、Amazon Linux 2 および Amazon Linux 2023 では、/etc/audit/auditd.conf の監査サービスの設定に以下のオプションが含まれていることを確認してください。

max_log_file_action = ROTATE
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND

Client.InvalidParameterValue

InvalidParameterValue は、リクエストで指定されたパラメータが無効、サポートされていない、または使用できないことを意味します。返されるメッセージには、エラー値の説明が記載されています。たとえば、AMI によっては /dev/sda1 または /dev/xvda のインスタンスにルートボリュームがアタッチされていない場合、インスタンスは起動しません。これが発生すると、AWS CloudTrail に次のようなエントリが表示されます。

An error occurred (InvalidParameterValue) when calling the StartInstances operation: Invalid value 'i-xxxxxxxxxxxxxxxxx' for instanceId. Instance does not have a volume attached at root (/dev/sda1)

これを解決するには、エラーメッセージを参考にして、関連するパラメータを変更してください。たとえば、前述のエラー例を解決するには、/dev/sda1 のインスタンスにルートボリュームをアタッチしてからインスタンスを起動します。詳細については、「Amazon EC2 API のエラーコード」を参照してください。

関連情報

インスタンスの起動に関する問題のトラブルシューティング - Linux

インスタンスの起動に関する問題のトラブルシューティング - Windows

Amazon ECS ベストプラクティスガイド

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ