Amazon EBS マルチアタッチを使用した複数のインスタンスへのボリュームのアタッチ
Amazon EBS マルチアタッチを使用すると、1 つのプロビジョンド IOPS SSD (io1
または io2
) ボリュームを、同じアベイラビリティーゾーンにある複数のインスタンスにアタッチできます。複数のマルチアタッチが有効なボリュームを 1 つのインスタンスまたはインスタンスセットにアタッチできます。ボリュームがアタッチされている各インスタンスには、共有ボリュームに対する完全な読み取りおよび書き込みアクセス許可があります。マルチアタッチを使用すると、同時書き込みオペレーションを管理するクラスター化された Linux アプリケーションで、アプリケーションの可用性を高めることが容易になります。
考慮事項と制約事項
-
マルチアタッチが有効なボリュームは、同じアベイラビリティーゾーンにある Nitro Systemで構築された最大 16 の Linux インスタンスにアタッチできます。マルチアタッチが有効なボリュームを Windows インスタンスにアタッチできますが、インスタンス間で共有されているボリューム上のデータはオペレーティングシステムによって認識されません。これにより、データの不整合が生じる可能性があります。
-
マルチアタッチは、プロビジョンド IOPS SSD (io1 および io2) ボリューム でのみサポートされています。
-
io1
ボリューム用マルチアタッチは次のリージョン でのみ利用できます: 米国東部 (バージニア北部)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アジアパシフィック (ソウル)。io2
およびio2
Block Express ボリューム用のマルチアタッチは、これらのボリュームタイプをサポートするすべてのリージョンで使用できます。 -
マルチアタッチが有効な
io2
ボリュームを、Block Express をサポートするインスタンスタイプと Block Express をサポートしないインスタンスタイプに同時にアタッチすることはできません。詳細については、「io2 Block Express ボリューム」を参照してください。 -
マルチアタッチが有効になっている
io1
ボリュームは、io2 Block Express をサポートするインスタンスタイプではサポートされていません。これらのインスタンスタイプでマルチアタッチを使用するには、io2 ボリュームを使用する必要があります。 -
XFS や EXT4 などの標準ファイルシステムは、EC2 インスタンスなどの複数のサーバーから同時にアクセスできるように設計されていません。標準ファイルシステムでマルチアタッチを使用すると、データの破損や損失を招く可能性があるため、本稼働状態のワークロードでは安全ではありません。クラスター化されたファイルシステムを使用することで、本稼働ワークロードのデータに対し復元性と信頼性を確保できるようになります。
-
マルチアタッチが有効なボリュームは I/O フェンスをサポートしていません。I/O フェンスプロトコルは、データの一貫性を維持するために、共有ストレージ環境での書き込みアクセスを制御します。アプリケーションは、データの整合性を維持するために、アタッチされたインスタンスの書き込み順序を提供する必要があります。
-
マルチアタッチが有効なボリュームは、ブートボリュームとして作成できません。
-
マルチアタッチ対応のボリュームは、インスタンスあたり 1 つのブロックデバイスマッピングにアタッチできます。
-
マルチアタッチは、Amazon EC2 コンソールまたは RunInstances API を使用してインスタンスの起動時に有効にすることはできません。
-
Amazon EBS インフラストラクチャレイヤーに問題があるマルチアタッチが有効なボリュームは、アタッチされているすべてのインスタンスで使用できません。Amazon EC2 またはネットワークレイヤーでの問題は、一部のアタッチされたインスタンスにのみ影響する可能性があります。
-
次の表は、作成後にマルチアタッチが有効な
io1
およびio2
ボリュームに対するボリューム変更サポートを示しています。io2
ボリュームio1
ボリュームボリュームタイプの変更 ✗ ✗ ボリュームサイズの変更 ✓ ✗ プロビジョンド IOPS の変更 ✓ ✗ マルチアタッチの有効化 ✓ * ✗ マルチアタッチの無効化 ✓ * ✗ * ボリュームがインスタンスにアタッチされている間は、マルチアタッチを有効または無効にすることはできません。
パフォーマンス
アタッチされた各インスタンスは、ボリュームのプロビジョニングされた最大パフォーマンスまで IOPS の最大パフォーマンスを引き上げます。ただし、アタッチされたすべてのインスタンスの集計パフォーマンスは、ボリュームのプロビジョニングされた最大パフォーマンスを超えることはできません。アタッチされたインスタンスの IOPS に対する需要がボリュームのプロビジョンド IOPS よりも高い場合、ボリュームはプロビジョニングされたパフォーマンスを超えることはありません。
例えば、io2
プロビジョンド IOPS で 50,000
マルチアタッチ対応のボリュームを作成し、それを m5.8xlarge
インスタンスと c5.12xlarge
インスタンスにアタッチするとします。m5.8xlarge
および c5.12xlarge
インスタンスは、それぞれ最大 30,000
および 40,000
IOPS をサポートします。各インスタンスは、ボリュームのプロビジョンド IOPS 50,000
を下回るため、最大 IOPS を駆動できます。ただし、両方のインスタンスがボリュームへの I/O を同時に駆動する場合、それらの合計 IOPS は、ボリュームのプロビジョニングされた 50,000
IOPS のパフォーマンスを超えることはできません。ボリュームは 50,000
IOPS を超えません。
整合性のあるパフォーマンスを実現するには、マルチアタッチが有効なボリュームのセクターにわたって、アタッチされたインスタンスから駆動される I/O のバランスを取ることがベストプラクティスです。
マルチアタッチの操作
マルチアタッチが有効なボリュームは、他の Amazon EBS ボリュームを管理する場合とほぼ同じ方法で管理できます。ただし、マルチアタッチ機能を使用するには、ボリュームに対してマルチアタッチ機能を有効にする必要があります。新しいボリュームを作成する場合、マルチアタッチはデフォルトで無効になっています。
マルチアタッチの有効化
作成時に io1
および io2
ボリュームに対してマルチアタッチを有効にできます。
io1
または io2
ボリュームの作成時にマルチアタッチを有効にするには、次のいずれかの方法を使用します。
また、作成後の io2
ボリュームがどのインスタンスにもアタッチされていない場合に限り、マルチアタッチを有効にすることができます。
注記
作成後、io1
ボリュームに対してマルチアタッチを有効にすることはできません。
Amazon EBS ボリュームの作成後にマルチアタッチを有効にするには、次のいずれかの方法を使用します。
マルチアタッチの無効化
複数のインスタンスにアタッチされている場合にのみ、io2
ボリュームに対してマルチアタッチを無効にできます。
注記
io1
ボリュームの作成後にマルチアタッチを無効にすることはできません。
io2
ボリュームのマルチアタッチを無効にするには、次のいずれかの方法を使用します。
インスタンスへのボリュームのアタッチ
マルチアタッチが有効なボリュームは、他の EBS ボリュームをアタッチするのと同じ方法でインスタンスにアタッチします。詳細については、インスタンスへの Amazon EBS ボリュームのアタッチを参照してください。
終了時に削除
マルチアタッチが有効なボリュームは、最後にアタッチされたインスタンスが終了し、そのインスタンスが終了時にボリュームを削除するように設定されている場合、インスタンスの終了時に削除されます。ボリュームが複数のインスタンスにアタッチされ、ボリュームブロックデバイスマッピングで終了時の削除設定が異なる場合、最後にアタッチされたインスタンスのブロックデバイスマッピング設定によって、終了時の削除動作が決まります。
終了時の削除を予測できるようにするには、ボリュームがアタッチされているすべてのインスタンスについて、終了時の削除を有効または無効にします。
デフォルトでは、ボリュームがインスタンスにアタッチされると、ブロックデバイスマッピングの終了時に削除の設定は false に設定されます。マルチアタッチが有効なボリュームの終了時に削除をオンにするには、ブロックデバイスマッピングを修正します。
アタッチされたインスタンスの終了時にボリュームを削除する場合は、アタッチされたすべてのインスタンスのブロックデバイスマッピングで終了時に削除を有効にします。アタッチされたインスタンスの終了後にボリュームを保持する場合は、アタッチされたすべてのインスタンスのブロックデバイスマッピングで、終了時に削除を無効にします。詳細については、インスタンスの終了時の Amazon EBS ボリュームの保持を参照してください。
インスタンスの終了時の削除設定は、起動時または起動後に変更できます。インスタンスの起動時に終了時に削除を有効または無効にした場合、設定は起動時にアタッチされたボリュームにのみ適用されます。起動後にインスタンスにボリュームをアタッチする場合は、そのボリュームの終了時の削除動作を明示的に設定する必要があります。
終了時のインスタンスの削除設定は、コマンドラインツールでのみ変更できます。
既存のインスタンスの [終了時に削除] 設定を変更するには
modify-instance-attribute コマンドを使用して、DeleteOnTermination
で --block-device-mappings option
属性を指定します。
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--block-device-mappings file://mapping.json
mapping.json
で、以下を指定します。
[ { "DeviceName": "
/dev/sdf
", "Ebs": { "DeleteOnTermination":true|false
} } ]
マルチアタッチ対応ボリュームのモニタリング
Amazon EBS ボリュームの CloudWatch メトリクスを使用して、マルチアタッチが有効なボリュームをモニタリングできます。詳細については、Amazon EBS の Amazon CloudWatch メトリクスを参照してください。
データは、アタッチされたすべてのインスタンスにわたって集約されます。アタッチされた個々のインスタンスのメトリクスをモニタリングすることはできません。
料金と請求
Amazon EBS マルチアタッチの使用に追加料金はかかりません。プロビジョンド IOPS SSD (io1
および io2
) ボリュームに適用される標準料金が請求されます。詳細については、Amazon EBS の料金表