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

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

以下の問題が発生すると、インスタンスを起動できなくなります。

無効なデバイス名

説明

新しいインスタンスを起動しようとすると、Invalid device name device_name エラーが発生します。

原因

インスタンスを起動しようとしたときにこのエラーが発生した場合、リクエストの 1 つ以上のボリュームのために指定されたデバイス名に無効なデバイス名が含まれています。エラーの原因として以下が考えられます。

  • デバイス名は、選択した AMI によって使用されている可能性があります。

  • デバイス名は、ルートボリューム用に予約されている可能性があります。

  • デバイス名は、リクエスト内の別のボリュームのために使用される可能性があります。

  • デバイス名は、オペレーティングシステム向けに有効でない可能性があります。

解決策

問題を解決するには:

  • デバイス名が、選択した AMI で使用されていないことを確認します。次のコマンドを実行して、AMI によって使用されるデバイス名を表示します。

    $ aws ec2 describe-images --image-id ami_id --query 'Images[*].BlockDeviceMappings[].DeviceName'
  • ルートボリューム用に予約されているデバイス名を使用していないことを確認します。詳細については、「使用できるデバイス名」を参照してください。

  • リクエストで指定されている各ボリュームのデバイス名が一意であることを確認します。

  • 指定したデバイス名が正しい形式となっていることを確認します。詳細については、「使用できるデバイス名」を参照してください。

インスタンス制限の超過

説明

新しいインスタンスを起動するか、停止したインスタンスを再起動しようとすると、InstanceLimitExceeded エラーが発生する。

原因

新しいインスタンスを起動するか、停止したインスタンスを再起動しようとすると InstanceLimitExceeded エラーが発生する場合、リージョンで起動できるインスタンス数の制限に達しています。AWS アカウントを作成するときに、リージョンごとに、実行できるインスタンスの数についてデフォルトの制限が設定されます。

解決策

インスタンス制限の引き上げは、リージョンごとにリクエストできます。詳細については、「Amazon EC2 の Service Quotas」を参照してください。

インスタンス容量の不足

説明

新しいインスタンスを起動するか、停止したインスタンスを再起動しようとすると、InsufficientInstanceCapacity エラーが発生する。

原因

インスタンスを起動したり、停止したインスタンスを再起動したりする際にこのエラーが発生する場合、現在 AWS にはリクエストに対応するために必要とされる十分なオンデマンドキャパシティーがありません。

解決策

この問題を解決するには、以下の手順を実行します。

  • 数分間待ってからリクエストを再度送信します。容量は頻繁に変化します。

  • インスタンス数を減らして新しいリクエストを送信します。たとえば、15 インスタンスを起動する 1 つのリクエストを行っている場合、代わりに 5 つのインスタンスに対する 3 つのリクエストを作成するか、1 つのインスタンスに対する 15 のリクエストを作成してみてください。

  • インスタンスを起動する場合は、アベイラビリティーゾーンを指定しないで新しいリクエストを送信します。

  • インスタンスを起動する場合は、別のインスタンスタイプを使用して新しいリクエストを送信します (これは後でサイズを変更できます)。詳細については、「インスタンスタイプを変更する」を参照してください。

  • クラスタープレイスメントグループにインスタンスを起動すると、容量不足エラーが発生する場合があります。詳細については、「プレイスメントグループの操作」を参照してください。

リクエストされた設定は現在サポートされていません。サポートされている設定については、ドキュメントを参照してください。

説明

インスタンス設定がサポートされていないため、新しいインスタンスを起動しようとすると、Unsupported エラーが表示されます。

原因

エラーメッセージには、詳細が記載されています。例えば、インスタンスタイプまたはインスタンス購入オプションは、指定されたリージョンまたはアベイラビリティーゾーンではサポートされていない可能性があります。

解決策

別のインスタンス設定を試してください。要件を満たすインスタンスタイプを検索するには、「Amazon EC2 インスタンスタイプの検索」を参照してください。

インスタンスがすぐに終了する

説明

インスタンスは pending 状態から terminated 状態に移行します。

原因

インスタンスがすぐに終了する理由を次にいくつか示します。

  • EBS ボリュームの制限を超えた。詳細については、「インスタンスボリューム数の制限」を参照してください。

  • EBS スナップショットが破損している。

  • ルート EBS ボリュームは暗号化されていて、復号用の KMS キー にアクセスする権限がない。

  • AMI のブロックデバイスマッピングで指定されたスナップショットは暗号化されていて、復号するための KMS キー へのアクセス権限がないか、復元されたボリュームを暗号化するための KMS キー へのアクセス権限がありません。

  • インスタンスを起動するために使用した Instance Store-Backed AMI で、必要な部分 (image.part.xx ファイル)。

詳細については、次のいずれかの方法を使用して、削除された理由を確認します。

Amazon EC2 コンソールを使用して、削除された理由を確認するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. 最初のタブで、[State transition reason (状態遷移の理由)] の横にある理由を見つけます。

AWS Command Line Interface を使用して、削除された理由を確認するには
  1. describe-instances コマンドを使用して、インスタンス ID を指定します。

    aws ec2 describe-instances --instance-id instance_id
  2. コマンドによって返された JSON レスポンスで、StateReason レスポンス要素の値を確認します。

    次のコードブロックは StateReason レスポンス要素の例を示しています。

    "StateReason": { "Message": "Client.VolumeLimitExceeded: Volume limit exceeded", "Code": "Server.InternalError" },
AWS CloudTrail を使用して、削除された理由を確認するには

詳細については、AWS CloudTrail ユーザーガイドの「CloudTrail イベント履歴でのイベントの表示」を参照してください。

解決策

削除の理由に応じて、次のアクションの 1 つを実行します。

  • Client.VolumeLimitExceeded: Volume limit exceeded — 未使用のボリュームを削除します。ボリューム制限を引き上げるリクエストを送信できます。

  • Client.InternalError: Client error on launch - ボリュームの復号と暗号化に使用する AWS KMS keys への必要なアクセス権限があることを確認します。詳細については、AWS Key Management Service デベロッパーガイドの「AWS KMS でのキーポリシーの使用」を参照してください。

アクセス権限の不足

説明

新しいインスタンスを起動しようとすると、"errorMessage": "You are not authorized to perform this operation." エラーが発生し、起動が失敗します。

原因

インスタンスを起動しようとしたときにこのエラーが表示される場合は、インスタンスを起動するために必要な IAM 権限が不足している可能性があります。

不足している可能性のある権限には次のものがあります。

  • ec2:RunInstances

  • iam:PassRole

その他のアクセス許可が不足している可能性もあります。インスタンスの起動に必要な権限のリストについては、例: EC2 起動インスタンスウィザードの使用 および インスタンスの起動 (RunInstances) の下にある IAM ポリシーの例を参照してください。

解決策

問題を解決するには:

  • IAM ユーザーとしてリクエストを発行する場合は、以下の条件が満たされていることを確認します。

    • ec2:RunInstances でリソースがワイルドカード (*) で定義されている

    • iam:PassRole でロールの ARN (arn:aws:iam::999999999999:role/ExampleRoleName など) に一致するリソースが定義されている

  • 上記の権限がない場合は、IAM ロールまたはユーザーに関連付けられた IAM ポリシーを編集して、不足している必要な権限を追加してください。

問題が解決されず、起動失敗エラーが引き続き表示される場合は、エラーに含まれる認証失敗メッセージをデコードすることができます。デコードされたメッセージには、IAM ポリシーにない権限が含まれています。詳細については、「EC2 インスタンスの起動中に 「UnauthorizedOperation」というエラーを受け取った後、認証失敗のメッセージをデコードするには」を参照してください。