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

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

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

考慮事項と制約事項

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

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

  • マルチアタッチは、us-east-1us-west-2eu-west-1、および ap-northeast-2 リージョンで使用できます。

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

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

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

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

  • マルチアタッチが有効なボリュームのボリュームタイプ、サイズ、プロビジョンド IOPS を変更することはできません。

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

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

パフォーマンス

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

たとえば、50,000 プロビジョンド IOPS で io1 マルチアタッチ対応のボリュームを作成し、それを 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 ボリュームを管理する場合とほぼ同じ方法で管理できます。ただし、マルチアタッチ機能を使用するには、ボリュームに対してマルチアタッチ機能を有効にする必要があります。新しいボリュームを作成する場合、マルチアタッチはデフォルトで無効になっています。

マルチアタッチの有効化

Amazon EBS ボリュームに対してマルチアタッチを有効にできるのは、作成時のみです。

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

Console

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

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

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

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

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

  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 io1 --multi-attach-enabled --size 100 --iops 2000 --region us-west-2 --availability-zone us-west-2b

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

マルチアタッチが有効なボリュームは、他の 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) ボリュームに適用される標準料金が請求されます。詳細については、「Amazon EBS 料金表」を参照してください。