Amazon EBS ボリュームを EC2 インスタンスにアタッチできないのはなぜですか?

所要時間2分
0

Amazon Elastic Block Store (EBS) ボリュームを Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにアタッチしようとすると、失敗します。この問題を解決する方法を教えてください。

簡単な説明

Amazon EBS ボリュームを Amazon EC2 インスタンスにアタッチできない場合の、一般的な理由は以下のとおりです。

  • EC2 インスタンスと EBS ボリュームが、それぞれ異なるアベイラビリティーゾーンに置かれている。
  • 既に使用されているデバイス名を指定した。
  • ボリュームまたはインスタンスのいずれかが、適切な動作状態にない。
  • io2 Block Express のボリュームタイプを指定した。
  • Amazon EC2 で、インスタンスボリューム数が上限に達している。
  • ボリュームに、AWS Marketplace の製品コードが付加されている。
  • AWS Identity and Access Management (IAM) のユーザーまたはロールに、 AttachVolume アクションを実行するためのアクセス許可が付与されていない。

解決方法

EC2 インスタンスと EBS ボリュームが、それぞれ異なるアベイラビリティーゾーンに置かれている

EBS ボリュームは、それが作成されたアベイラビリティーゾーンに固有です。ボリュームをアタッチするインスタンスが、そのボリュームと同じアベイラビリティーゾーンにあることを確認してください。AWS アカウントで利用できるアベイラビリティーゾーンを確認するには、「アベイラビリティーゾーンの説明」を参照してください。ボリュームがあるアベイラビリティーゾーンを確認するには、「Amazon EBS ボリュームに関する情報の表示」を参照してください。

既に使用されているデバイス名を指定した

ボリュームをインスタンスにアタッチする際は、Amazon EC2 が使用するボリュームのデバイス名を指定します。Amazon EC2 では、重複するデバイス名を使用することはできません。この場合、オペレーションは次のエラーで失敗します: Invalid value '/dev/xxx' for unixDeviceAttachment point /dev/xxx is already in use. (ボリューム /dev/xxx は unixDevice 用として無効です。アタッチポイント /dev/xxx は既に使用されています。)

デバイス名がすでに使用されている場合は、別のデバイス名を選択する必要があります。デバイスの名前付けの詳細については、「Linux インスタンスでのデバイス名」または「Windows インスタンスでのデバイス名」を参照してください。

ボリュームを EC2 インスタンスから強制的にデタッチしても、ブロックデバイスドライバが、デバイス名を引き続き使用している場合があります。つまり、この (デタッチされた) ボリュームでは、そのデバイス名を使用することはできなくなります。別のデバイス名を選択するか、インスタンスを再起動する必要があります。

詳細については、「Linux インスタンスから Amazon EBS ボリュームをデタッチします。」を参照してください。

ボリュームまたはインスタンスのいずれかが、適切な動作状態にない

ボリュームをインスタンスにアタッチできるのは、そのインスタンスが「running (実行中)」または「stopped (停止中)」状態にある場合だけです。インスタンスが「starting (起動中)」または「stopping (停止中)」状態のときは、ボリュームをアタッチすることはできません。また、ボリュームをインスタンスにアタッチする際は、そのボリュームの状態が「available (使用可能)」になっている必要があります。

ボリュームが「attaching (アタッチ中)」状態でスタックする場合は、「Amazon EBS ボリュームが「アタッチ」状態でスタックしているのはなぜですか?」を参照してください。

io2 Block Express のボリュームタイプを指定した

io2 Block Express ボリュームは、c7g、r5b、trn1、x2idn、x2iedn のインスタンスタイプにのみアタッチできます。io2 Block Express ボリュームを他のインスタンスタイプにアタッチしようとすると、次のエラーが表示されます。「vol-xxxxxxxx is already attached to an instance. (vol-xxxxxxxx は既にインスタンスにアタッチされています)

詳細については、「io2 Block Express volumes」(io2 Block Express ボリューム) を参照してください。

Amazon EC2 で、インスタンスボリューム数が上限に達している。

インスタンスでサポートされるボリュームの最大数は、そのインスタンスとオペレーティングシステムのタイプによって異なります。ボリュームのアタッチに失敗し、かつエラーメッセージが表示されない場合については、「インスタンスボリューム数の制限」を参照してください。

ボリュームに、AWS Marketplace の製品コードが付加されている

ボリュームに AWS Marketplace 製品コードが付いている場合は、そのボリュームの AWS Marketplace コードにサブスクライブする必要があります。また、インスタンスの設定は、その AWS Marketplace コードの要件に従う必要があります。詳細については、「インスタンスへの Amazon EBS ボリュームのアタッチ」で、「前提条件」を参照してください。

IAM ユーザーまたはロールに、 AttachVolume アクションを実行するためのアクセス許可が付与されていない

この場合、次のエラーが表示されます。「You are not authorized to perform this operation.Encoded authorization failure message...

Amazon EC2 は、AttachVolume API を使用して、EBS ボリュームをインスタンスにアタッチします。お使いの IAM ユーザーまたはロールには、AttachVolume API アクションを実行するための許可が、IAM ポリシーにより付与されていない可能性があります。または、AWS Organizations のサービスコントロールポリシー (SCP) が、対象の IAM ユーザーまたはロールを制限している場合があります。この問題を解決するには、「IAM ポリシーを使用した際に発生する、アクセス拒否、もしくは、非認証の操作によるエラーをトラブルシュートするにはどうすればよいですか?」を参照してください。


AWS公式
AWS公式更新しました 1年前