Amazon EC2 インスタンスの起動に関する問題のトラブルシューティング
次は、Amazon EC2 インスタンスを起動する際の問題の解決に役立つトラブルシューティングのヒントです。
起動に関する問題
無効なデバイス名
説明
新しいインスタンスを起動しようとすると、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 ボリュームの制限を超えた。詳細については、「Amazon EC2 インスタンスの Amazon EBS ボリューム制限」を参照してください。
-
EBS スナップショットが破損している。
-
ルート EBS ボリュームは暗号化されていて、復号用の KMS キー にアクセスする権限がない。
-
AMI のブロックデバイスマッピングで指定されたスナップショットは暗号化されていて、復号するための KMS キー へのアクセス権限がないか、復元されたボリュームを暗号化するための KMS キー へのアクセス権限がありません。
-
インスタンスを起動するために使用した Instance Store-Backed AMI で、必要な部分 (image.part.xx ファイル)。
詳細については、次のいずれかの方法を使用して、削除された理由を確認します。
Amazon EC2 コンソールを使用して、削除された理由を確認するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。
-
最初のタブで、[State transition reason (状態遷移の理由)] の横にある理由を見つけます。
AWS Command Line Interface を使用して、削除された理由を確認するには
-
describe-instances コマンドを使用して、インスタンス ID を指定します。
aws ec2 describe-instances --instance-id
instance_id
-
コマンドによって返された 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" というエラーが発生した後、認証失敗のメッセージをデコードする方法
Windows の起動直後に CPU 使用率が高い (Windows インスタンスのみ)
注記
このトラブルシューティングのヒントは、Windows インスタンスのみが対象です。
Windows Update が、[更新プログラムを確認するが、ダウンロードとインストールを行うかどうかは選択する] (デフォルトのインスタンス設定) に設定されている場合は、この確認によってインスタンスの CPU の 50 ~ 99% が消費される可能性があります。この CPU の消費によってアプリケーションの問題が発生する場合は、[コントロールパネル] で Windows Update の設定を手動で変更するか、または Amazon EC2 ユーザーデータフィールドで以下のスクリプトを使用できます。
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d
3
/f net stop wuauserv net start wuauserv
このスクリプトを実行するときに /d の値を指定します。デフォルト値は 3 です。以下に示しているのは、可能な値です。
-
更新プログラムを確認しない
-
更新プログラムを確認するが、ダウンロードとインストールを行うかどうかは選択する
-
更新プログラムをダウンロードするが、インストールを行うかどうかは選択する
-
更新プログラムを自動的にインストールする
インスタンスのユーザーデータを変更したら、そのインスタンスを実行できます。詳細については、「起動時に Linux インスタンスでコマンドを実行する」を参照してください。