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

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

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

考慮事項と制約事項

  • マルチアタッチが有効なボリュームは、同じアベイラビリティーゾーンにある Nitro Systemで構築された最大 16 の Linux インスタンスにアタッチできます。マルチアタッチが有効なボリュームを Windows インスタンスにアタッチできますが、インスタンス間で共有されているボリューム上のデータはオペレーティングシステムによって認識されません。これにより、データの不整合が生じる可能性があります。

  • マルチアタッチは、プロビジョンド IOPS SSD ボリューム でのみサポートされています。

  • io2 ボリューム用のマルチアタッチは、io2 ボリュームをサポートするすべてのリージョンで使用できます。io1 ボリュームのマルチアタッチは、us-east-1us-west-2eu-west-1、および ap-northeast-2 のリージョンでのみ使用できます。

  • マルチアタッチが有効なボリュームは、R5b インスタンスにアタッチできません。

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

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

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

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

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

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

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

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

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

パフォーマンス

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

例えば、50,000 プロビジョンド IOPS で io2 マルチアタッチ対応のボリュームを作成し、それを 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 ボリュームの作成時にマルチアタッチを有効にするには、次のいずれかの方法を使用します。

Console

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

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

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

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

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

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

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

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

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

Command line

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

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

$ 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 ボリュームに対してマルチアタッチを有効にすることはできません。

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

Console

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

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

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

  3. ボリュームを選択し、[Actions (アクション)]、[Attach Volume (ボリュームのアタッチ)] の順に選択します。

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

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

Command line

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

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

$ aws ec2 modify-volume --volume-id vol-1234567890abcdef0 --multi-attach-enabled

マルチアタッチの無効化

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

注記

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

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

Console

マルチアタッチを無効にするには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

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

  3. ボリュームを選択し、[Actions (アクション)]、[Attach Volume (ボリュームのアタッチ)] の順に選択します。

  4. [Multi-Attach (マルチアタッチ)] で [Enable (有効)] をオフにします。

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

Command line

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

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

$ aws ec2 modify-volume --volume-id vol-1234567890abcdef0 -–no-multi-attach-enabled

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

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

終了時に削除

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

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

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

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

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

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

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

modify-instance-attribute コマンドを使用して、--block-device-mappings optionDeleteOnTermination 属性を指定します。

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