Amazon EBS マルチアタッチを使用した複数のインスタンスへのボリュームのアタッチ - Amazon EBS

Amazon EBS マルチアタッチを使用した複数のインスタンスへのボリュームのアタッチ

Amazon EBS マルチアタッチを使用すると、1 つのプロビジョンド IOPS SSD (io1 または io2) ボリュームを、同じアベイラビリティーゾーンにある複数のインスタンスにアタッチできます。複数のマルチアタッチが有効なボリュームを 1 つのインスタンスまたはインスタンスセットにアタッチできます。ボリュームがアタッチされている各インスタンスには、共有ボリュームに対する完全な読み取りおよび書き込みアクセス許可があります。マルチアタッチを使用すると、同時書き込みオペレーションを管理するアプリケーションで、アプリケーションの可用性を高めることが容易になります。

考慮事項と制約事項

  • マルチアタッチが有効なボリュームは、同じアベイラビリティーゾーンにある「Nitro System」に構築された最大 16 のインスタンスにアタッチできます。

  • Linux インスタンスは、マルチアタッチが有効な io1 および io2 ボリュームをサポートします。Windows インスタンスは、マルチアタッチが有効な io2 ボリュームのみをサポートします。

  • インスタンスにアタッチできる Amazon EBS ボリュームの最大数は、インスタンスのタイプとサイズによって異なります。詳細については、「インスタンスボリューム数の制限」を参照してください。

  • マルチアタッチは、プロビジョンド IOPS SSD (io1 およびio2 ) ボリュームでのみサポートされます

  • io1 ボリューム用マルチアタッチは次のリージョンでのみ利用できます: 米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (ソウル)。

    io2 用のマルチアタッチは、io2 をサポートするすべてのリージョンで使用できます。

    注記

    パフォーマンス、一貫性、耐久性を低コストで向上させるには、io2 ボリュームを使用することをお勧めします。

  • マルチアタッチが有効になっている io1 ボリュームは、Scalable Reliable Datagram (SRD) ネットワークプロトコルのみをサポートする Nitro System 上に構築されたインスタンスではサポートされません。これらのインスタンスタイプでマルチアタッチを使用するには、io2 Block Express ボリュームを使用する必要があります。

  • XFS や EXT4 などの標準ファイルシステムは、EC2 インスタンスなどの複数のサーバーから同時にアクセスできるように設計されていません。本稼働ワークロードのデータに対し復元性と信頼性を確保するには、クラスター化されたファイルシステムを使用する必要があります。

  • マルチアタッチが有効な io2 ボリュームは I/O フェンスをサポートしています。I/O フェンスプロトコルは、データの一貫性を維持するために、共有ストレージ環境での書き込みアクセスを制御します。アプリケーションは、データの整合性を維持するために、アタッチされたインスタンスの書き込み順序を提供する必要があります。詳細については、「NVMe 予約」を参照してください。

    マルチアタッチが有効な io1 ボリュームは I/O フェンスをサポートしていません。

  • マルチアタッチが有効なボリュームは、ブートボリュームとして作成できません。

  • マルチアタッチ対応のボリュームは、インスタンスあたり 1 つのブロックデバイスマッピングにアタッチできます。

  • マルチアタッチは、Amazon EC2 コンソールまたは RunInstances API を使用してインスタンスの起動時に有効にすることはできません。

  • Amazon EBS インフラストラクチャレイヤーに問題があるマルチアタッチが有効なボリュームは、アタッチされているすべてのインスタンスで使用できません。Amazon EC2 またはネットワークレイヤーでの問題は、一部のアタッチされたインスタンスにのみ影響する可能性があります。

  • 次の表は、作成後にマルチアタッチが有効な io1 および io2 ボリュームに対するボリューム変更サポートを示しています。

    io2 ボリューム io1 ボリューム
    ボリュームタイプの変更
    ボリュームサイズの変更
    プロビジョンド IOPS の変更
    マルチアタッチの有効化 ✓ *
    マルチアタッチの無効化 ✓ *

    * ボリュームがインスタンスにアタッチされている間は、マルチアタッチを有効または無効にすることはできません。

パフォーマンス

アタッチされた各インスタンスは、ボリュームのプロビジョニングされた最大パフォーマンスまで IOPS の最大パフォーマンスを引き上げます。ただし、アタッチされたすべてのインスタンスの集計パフォーマンスは、ボリュームのプロビジョニングされた最大パフォーマンスを超えることはできません。アタッチされたインスタンスの IOPS に対する需要がボリュームのプロビジョンド IOPS よりも高い場合、ボリュームはプロビジョニングされたパフォーマンスを超えることはありません。

例えば、80,000 プロビジョンド IOPSで io2 マルチアタッチ対応のボリュームを作成し、それを 40,000 プロビジョンド IOPS をサポートする m7g.large インスタンスと、60,000 プロビジョンド IOPS をサポートする r7g.12xlarge インスタンスにアタッチするとします。各インスタンスは、ボリュームのプロビジョンド IOPS 80,000 を下回るため、最大 IOPS を駆動できます。ただし、両方のインスタンスがボリュームへの I/O を同時に駆動する場合、それらの合計 IOPS は、ボリュームのプロビジョニングされた 80,000 IOPS のパフォーマンスを超えることはできません。

整合性のあるパフォーマンスを実現するには、マルチアタッチが有効なボリュームのセクターにわたって、アタッチされたインスタンスから駆動される I/O のバランスを取ることがベストプラクティスです。

マルチアタッチの操作

マルチアタッチが有効なボリュームは、他の Amazon EBS ボリュームを管理する場合とほぼ同じ方法で管理できます。ただし、マルチアタッチ機能を使用するには、ボリュームに対してマルチアタッチ機能を有効にする必要があります。新しいボリュームを作成する場合、マルチアタッチはデフォルトで無効になっています。

マルチアタッチの有効化

ボリュームの作成時に、マルチアタッチを有効にできます。次のいずれかの方法を使用します。

Console
ボリューム作成中にマルチアタッチを有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ボリューム] を選択します。

  3. [Create volume] (ボリュームの作成) を選択します。

  4. [ボリュームタイプ] で、[プロビジョンド IOPS SSD (io1)] または [プロビジョンド IOPS SSD (io2)] を選択します。

  5. [Size (サイズ)] と [IOPS] で、必要なボリュームサイズとプロビジョニングする IOPS 数を選択します。

  6. [アベイラビリティーゾーン] で、インスタンスと同じアベイラビリティーゾーンを選択します。

  7. [Amazon EBS Multi-Attach] (Amazon EBS マルチアタッチ) で、[Enable Multi-Attach] (マルチアタッチの有効化) を選択します。

  8. (オプション) [Snapshot ID] (スナップショット ID) に、ボリュームの作成元となるスナップショットを選択します。

  9. ボリュームの暗号化ステータスを設定します。

    選択したスナップショットが暗号化されている場合、またはアカウントがデフォルトで暗号化を有効にしている場合は、暗号化が自動的に有効になり、無効にすることはできません。ボリュームの暗号化に使用する KMS キーを選択できます。

    選択したスナップショットが暗号化されておらず、アカウントの暗号化がデフォルトで有効になっていない場合、暗号化はオプションです。ボリュームを暗号化するには、[Encryption] (暗号化) で、[Encrypt this volume] (このボリュームを暗号化する) を選択し、次にボリュームの暗号化に使用する KMS キーを選択します。

    注記

    暗号化されたボリュームは、Amazon EBS の暗号化をサポートするインスタンスにのみアタッチすることができます。詳細については、「Amazon EBS 暗号化」を参照してください。

  10. (オプション) ボリュームにカスタムタグを割り当てるには、[タグ] セクションで [タグの追加] を選択し、タグのキーおよび値ペアを入力します。

  11. [Create volume] (ボリュームの作成) を選択します。

Command line
ボリューム作成中にマルチアタッチを有効にするには

create-volume コマンドを使用して、--multi-attach-enabled パラメータを指定します。

$ C:\> aws ec2 create-volume --volume-type io2 --multi-attach-enabled --size 100 --iops 2000 --region us-west-2 --availability-zone us-west-2b

また、作成後の io2 ボリュームがどのインスタンスにもアタッチされていない場合に限り、マルチアタッチを有効にすることができます。

注記

作成後、io1 ボリュームに対してマルチアタッチを有効にすることはできません。

io2 ボリュームの作成後にマルチアタッチを有効にするには、次のいずれかの方法を使用します。

Console
作成後にマルチアタッチを有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ボリューム] を選択します。

  3. ボリュームを選択し、[Actions] (アクション)、[Modify volume] (ボリュームの変更) の順にクリックします。

  4. [Amazon EBS Multi-Attach] (Amazon EBS マルチアタッチ) で、[Enable Multi-Attach] (マルチアタッチの有効化) を選択します。

  5. [Modify] を選択します。

Command line
作成後にマルチアタッチを有効にするには

modify-volume コマンドを使用して、--multi-attach-enabled パラメータを指定します。

$ C:\> aws ec2 modify-volume --volume-id vol-1234567890abcdef0 --multi-attach-enabled

マルチアタッチの無効化

複数のインスタンスにアタッチされている場合にのみ、io2 ボリュームに対してマルチアタッチを無効にできます。

注記

io1 ボリュームの作成後にマルチアタッチを無効にすることはできません。

io2 ボリュームのマルチアタッチを無効にするには、次のいずれかの方法を使用します。

Console
マルチアタッチの作成後に無効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ボリューム] を選択します。

  3. ボリュームを選択し、[Actions] (アクション)、[Modify volume] (ボリュームの変更) の順にクリックします。

  4. [Amazon EBS Multi-Attach] (Amazon EBS マルチアタッチ) で、[Enable Multi-Attach] (マルチアタッチを有効化) の選択を解除します。

  5. [Modify] を選択します。

Command line
マルチアタッチの作成後に無効にするには

modify-volume コマンドを使用して、-no-multi-attach-enabled パラメータを指定します。

$ C:\> aws ec2 modify-volume --volume-id vol-1234567890abcdef0 --no-multi-attach-enabled

インスタンスへのボリュームのアタッチ

マルチアタッチが有効なボリュームは、他の EBS ボリュームをアタッチするのと同じ方法でインスタンスにアタッチします。詳細については、インスタンスへの Amazon EBS ボリュームのアタッチを参照してください。

終了時に削除

マルチアタッチが有効なボリュームは、最後にアタッチされたインスタンスが終了し、そのインスタンスが終了時にボリュームを削除するように設定されている場合、インスタンスの終了時に削除されます。ボリュームが複数のインスタンスにアタッチされ、ボリュームブロックデバイスマッピングで終了時の削除設定が異なる場合、最後にアタッチされたインスタンスのブロックデバイスマッピング設定によって、終了時の削除動作が決まります。

終了時の削除を予測できるようにするには、ボリュームがアタッチされているすべてのインスタンスについて、終了時の削除を有効または無効にします。

デフォルトでは、ボリュームがインスタンスにアタッチされると、ブロックデバイスマッピングの終了時に削除の設定は false に設定されます。マルチアタッチが有効なボリュームの終了時に削除をオンにするには、ブロックデバイスマッピングを修正します。

アタッチされたインスタンスの終了時にボリュームを削除する場合は、アタッチされたすべてのインスタンスのブロックデバイスマッピングで終了時に削除を有効にします。アタッチされたインスタンスの終了後にボリュームを保持する場合は、アタッチされたすべてのインスタンスのブロックデバイスマッピングで、終了時に削除を無効にします。詳細については、「インスタンスの終了時にデータを保持する」を参照してください。

インスタンスの終了時の削除設定は、起動時または起動後に変更できます。インスタンスの起動時に終了時に削除を有効または無効にした場合、設定は起動時にアタッチされたボリュームにのみ適用されます。起動後にインスタンスにボリュームをアタッチする場合は、そのボリュームの終了時の削除動作を明示的に設定する必要があります。

終了時のインスタンスの削除設定は、コマンドラインツールでのみ変更できます。

既存のインスタンスの [終了時に削除] 設定を変更するには

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 の料金表を参照してください。