ストレージ最適化インスタンス - Amazon Elastic Compute Cloud

ストレージ最適化インスタンス

ストレージ最適化インスタンスは、ローカルストレージの大規模データセットに対する高いシーケンシャル読み取りおよび書き込みアクセスを必要とするワークロード用に設計されています。ストレージ最適化インスタンスは、数万回の低レイテンシーとランダム I/O オペレーション/秒 (IOPS) をアプリケーションに提供するように最適化されています。

D2 インスタンス

これらのインスタンスは、次の用途に適しています。

  • 超並列処理 (MPP) データウェアハウス

  • MapReduce および Hadoop 分散コンピューティング

  • ログまたはデータ処理アプリケーション

D3 および D3en インスタンス

これらのインスタンスは、インスタンスストレージのスケールアウトを提供し、以下に適しています。

  • Hadoop ワークロード向けの分散ファイルシステム

  • GPFC や BeeFS などのファイルストレージワークロード

  • HPC ワークロード向けの大規模なデータレイク

H1 インスタンス

これらのインスタンスは、次の用途に適しています。

  • MapReduce および分散ファイルシステムなどのデータ集約型ワークロード

  • 直接アタッチされたインスタンスストレージにある大量データへのシーケンシャルアクセスを必要とするアプリケーション

  • 大量のデータへの高スループットアクセスを必要とするアプリケーション

I3 および I3en インスタンス

これらのインスタンスは、次の用途に適しています。

  • 高頻度オンライントランザクション処理 (OLTP) システム

  • リレーショナルデータベース

  • NoSQL データベース

  • メモリ内データベース (Redis など) のキャッシュ

  • データウェアハウスアプリケーション

  • 分散されたファイルシステム

ベアメタルインスタンスを使用すると、アプリケーションから、プロセッサとメモリなどのホストサーバーの物理リソースに直接アクセスすることができます。

詳細については、「Amazon EC2 I3 インスタンス」を参照してください。

I4i インスタンス

これらのインスタンスは、トランザクションデータベースや NoSQL データベースなど、ローカルストレージで小規模から中規模のデータセットを必要とする I/O 負荷の高いワークロードに適しています。

詳細については、「Amazon EC2 I4i インスタンス」を参照してください。

ハードウェア仕様

ストレージ最適化インスタンスのハードウェア仕様の要約を以下に示します。仮想中央処理ユニット (vCPU) は、仮想マシン (VM) に割り当てられた物理 CPU の一部を表します。x86 インスタンスの場合、コアごとに 2 つの vCPU があります。Graviton インスタンスの場合、コアごとに 1 つの vCPU があります。

インスタンスタイプ デフォルト vCPU メモリ (GiB)
d2.xlarge 4 30.5
d2.2xlarge 8 61
d2.4xlarge 16 122
d2.8xlarge 36 244
d3.xlarge 4 32
d3.2xlarge 8 64
d3.4xlarge 16 128
d3.8xlarge 32 256
d3en.large 2 8
d3en.xlarge 4 16
d3en.2xlarge 8 32
d3en.4xlarge 16 64
d3en.6xlarge 24 96
d3en.8xlarge 32 128
d3en.12xlarge 48 192
h1.2xlarge 8 32
h1.4xlarge 16 64
h1.8xlarge 32 128
h1.16xlarge 64 256
i3.large 2 15.25
i3.xlarge 4 30.5
i3.2xlarge 8 61
i3.4xlarge 16 122
i3.8xlarge 32 244
i3.16xlarge 64 488
i3.metal 72 512
i3en.large 2 16
i3en.xlarge 4 32
i3en.2xlarge 8 64
i3en.3xlarge 12 96
i3en.6xlarge 24 192
i3en.12xlarge 48 384
i3en.24xlarge 96 768
i3en.metal 96 768
i4i.large 2 16
i4i.xlarge 4 32
i4i.2xlarge 8 64
i4i.4xlarge 16 128
i4i.8xlarge 32 256
i4i.16xlarge 64 512
i4i.32xlarge 128 1,024
i4i.metal 128 1,024

ストレージ最適化インスタンスでは、次のプロセッサを使用します。

AWS Graviton プロセッサ

  • AWS Graviton2: Im4gn、Is4gen

インテルプロセッサ

  • インテル Xeon スケーラブルプロセッサ (Haswell E5-2676 v3): D2

  • インテル Xeon スケーラブルプロセッサ (Broadwell E5-2686 v4): H1、I3

  • インテル Xeon スケーラブルプロセッサ (Skylake 8175M または Cascade Lake 8259CL): I3en

  • 第 2 世代インテル Xeon スケーラブルプロセッサ (Cascade Lake 8259CL): D3、D3en

  • 第 3 世代インテル Xeon スケーラブルプロセッサ (Ice Lake 8375C): I4i

詳細については、「Amazon EC2 のインスタンスタイプ」を参照してください。

インスタンスのパフォーマンス

Linux のインスタンスから最善のディスクスループットパフォーマンスを得るには、最新バージョンの Amazon Linux 2 または Amazon Linux AMI を使用することをお勧めします。

NVMe インスタンスストアボリュームを持つインスタンスの場合は、カーネルバージョン 4.4 以降の Linux AMI を使用する必要があります。それ以外の場合、インスタンスは利用可能な最大の IOPS パフォーマンスを達成できません。

D2 インスタンスは、永続許可 (ディスクスループットと拡張性を大幅に向上させる Xen ブロックリングプロトコルの拡張機能) をサポートする Linux カーネルを使用するときに、最大のディスクパフォーマンスを提供します。永続許可の詳細については、Xen プロジェクトのブログのこちらの記事を参照してください。

EBS 最適化インスタンスは、インスタンスからの Amazon EBS I/O とその他のネットワークトラフィックとの競合を排除することによって、EBS ボリュームの安定した高パフォーマンスを実現できます。一部のストレージ最適化インスタンスは、追加料金なしでデフォルトで EBS 最適化されます。詳細については、Amazon EBS 最適化インスタンスを使用するを参照してください。

一部のストレージ最適化インスタンスでは、Linux でプロセッサの C ステートと P ステートを制御できます。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコアからのパフォーマンス (CPU 周波数) を制御します。詳細については、EC2 インスタンスのプロセッサのステート制御を参照してください。

ネットワークパフォーマンス

サポートされているインスタンスタイプで拡張ネットワーキングを有効にすると、レイテンシーとネットワークジッターを低減し、パケット毎秒 (PPS) のパフォーマンスを高めることができます。ほとんどのアプリケーションでは、高いレベルのネットワークパフォーマンスが一貫して必要なわけではありませんが、データの送受信時にアクセスする帯域幅を増やすことでメリットを得られます。詳細については、Linux での拡張ネットワーキングを参照してください。

拡張ネットワーキングをサポートするストレージ最適化インスタンスのネットワークパフォーマンスの要約を以下に示します。

インスタンスタイプ ネットワークパフォーマンス 拡張ネットワーキング
d2.xlarge Intel 82599 VF
d2.2xlarge | d2.4xlarge Intel 82599 VF
i3.4xlarge 以下 | i4i.xlarge 以下 最大 10 Gbps † ENA
d2.8xlarge 10 Gbps Intel 82599 VF
i3.8xlarge | h1.8xlarge 10 Gbps ENA
i4i.2xlarge 最大 12 Gbps † ENA
d3.4xlarge 以下 最大 15 Gbps † ENA
i4i.8xlarge 18.75 Gbps ENA
d3en.2xlarge 以下 | i3en.3xlarge 以下 | i4i.4xlarge 最大 25 Gbps † ENA
d3.8xlarge | d3en.4xlarge | h1.16xlarge | i3.16xlarge | i3.metal | i3en.6xlarge 25 Gbps ENA
i4i.16xlarge 37.5 Gbps ENA
d3en.6xlarge 40 Gbps ENA
d3.8xlarge | d3en.8xlarge | i3en.12xlarge 50 Gbps ENA
d3en.12xlarge | i4i.32xlarge | i4i.metal 75 Gbps ENA
i3en.24xlarge | i3en.metal 100 Gbps ENAEFA

† これらのインスタンスにはベースライン帯域幅があり、ネットワーク I/O クレジットメカニズムを使用して、ベストエフォートベースでベースライン帯域幅を超えてバーストできます。詳細については、「インスタンスのネットワーク帯域幅」を参照してください。

インスタンスタイプ ベースライン帯域幅 (Gbps) バースト帯域幅 (Gbps)
d3.xlarge 3 15
d3.2xlarge 6 15
d3.4xlarge 12.5 15
d3en.large 3 25
d3en.xlarge 6 25
d3en.2xlarge 12.5 25
i3.large .75 10
i3.xlarge 1.25 10
i3.2xlarge 2.5 10
i3.4xlarge 5 10
i3en.large 2.1 25
i3en.xlarge 4.2 25
i3en.2xlarge 8.4 25
i3en.3xlarge 12.5 25
i4i.large .78125 10
i4i.xlarge 1.875 10
i4i.2xlarge 4.687 12
i4i.4xlarge 9.375 25

SSD I/O パフォーマンス

D2、D3、D3en インスタンスのプライマリデータストレージは、HDD インスタンスストアボリュームです。I3、I3en インスタンスのプライマリデータストレージは、NVMe (Non-Volatile Memory Express) SSD インスタンスストアボリュームです。

インスタンスストアボリュームは、インスタンスの存続中のみ使用できます。インスタンスを停止、休止、または終了すると、アプリケーションとそのインスタンスストアボリュームのデータは消去されます。インスタンスストアボリュームの重要なデータは、定期的にバックアップまたはレプリケートすることをお勧めします。詳細については、「Amazon EC2 インスタンスストア」および「SSD インスタンスストアボリューム」を参照してください。

カーネルバージョン 4.4 以降の Linux AMI を使用し、インスタンスで利用可能なすべての SSD ベースのインスタンスストアボリュームを使用する場合は、以下の表に示されている IOPS (4,096 バイトブロックサイズ) のパフォーマンスを得ることができます (キューの深さの飽和度において)。それ以外の場合、IOPS パフォーマンスは低下します。

インスタンスサイズ 100% のランダム読み取り時 IOPS 書き込み IOPS
i3.large 100,125 35,000
i3.xlarge 206,250 70,000
i3.2xlarge 412,500 180,000
i3.4xlarge 825,000 360,000
i3.8xlarge 1,650,000 720,000
i3.16xlarge 3,300,000 1,400,000
i3.metal 3,300,000 1,400,000
i3en.large 42,500 32,500
i3en.xlarge 85,000 65,000
i3en.2xlarge 170,000 130,000
i3en.3xlarge 250,000 200,000 件の
i3en.6xlarge 500,000 400,000
i3en.12xlarge 1,000,000 800,000
i3en.24xlarge 2,000,000 1,600,000
i3en.metal 2,000,000 1,600,000
i4i.large 50,000 27,500
i4i.xlarge 100,000 55,000
i4i.2xlarge 200,000 件の 110,000
i4i.4xlarge 400,000 220,000
i4i.8xlarge 800,000 440,000
i4i.16xlarge 1,600,000 880,000
i4i.32xlarge 3,200,000 1,760,000
i4i.metal 3,200,000 1,760,000

SSD ベースのインスタンスストアボリュームをいっぱいにすると、得られる I/O パフォーマンスは低下します。これは、SSD コントローラーが実行する必要がある追加の作業が原因です。SSD コントローラーは、利用可能な領域を見つけ、既存のデータを再書き込みし、未使用の領域を消去して、再書き込みができるようにします。このガベージコレクションというプロセスにより、SSD への内部的な書き込み増幅が発生し、ユーザーの書き込み操作に対する SSD 書き込み操作の割合として表示されます。書き込み操作が 4,096 バイトの倍数でないか、4,096 バイトの境界に整合していない場合、パフォーマンスの低下はさらに大きくなります。少量のバイト数または整合していないバイト数で書き込む場合、SSD コントローラーは周辺のデータを読み取り、その結果を新しい場所に保存する必要があります。このパターンにより、書き込み増幅が大幅に増え、レイテンシーが増加し、I/O パフォーマンスが大きく低下します。

SSD コントローラーは、複数の方法を利用すると、書き込み増幅の影響を減らすことができます。このような方法の 1 つには、SSD インスタンスストレージに領域を予約し、コントローラーが書き込み操作に利用できる領域をより効率的に管理できるようにすることです。これをオーバープロビジョニングと呼びます。インスタンスに提供された SSD ベースのインスタンスストアボリュームには、オーバープロビジョニングに対して予約された領域がありません。書き込み増幅を減らすには、ボリュームの 10% を未使用の状態のままにし、SSD コントローラーがこれをオーバープロビジョニングに使用できるようにすることをお勧めします これにより、使用できるストレージは減りますが、ディスクが総容量に近づいた場合でもパフォーマンスを向上させることができます。

TRIM をサポートするインスタンスストアボリュームの場合、TRIM コマンドを使用して、書き込んだデータが不要になったときはいつでも SSD コントローラーに通知することができます。これにより、より多くの空き領域がコントローラーに与えられ、その結果書き込み増幅が減り、パフォーマンスが向上します。詳細については、インスタンスストアボリュームの TRIM のサポートを参照してください。

インスタンスの機能

ストレージ最適化インスタンスの機能の概要を以下に示します。

EBS のみ インスタンスストア 配置グループ

D2

いいえ

HDD

はい

D3

いいえ

HDD *

はい

D3en

いいえ

HDD *

はい

H1

いいえ

HDD *

はい

I3

いいえ

NVMe *

はい

I3en

いいえ

NVMe *

はい

I4i なし NVMe * はい

* ルートデバイスボリュームは、Amazon EBS ボリュームにする必要があります。

詳細については、以下を参照してください。

個の vCPU のサポート

d2.8xlarge インスタンスでは 36 個の vCPU が提供されますが、これにより vCPU を 32 個に制限している一部の Linux オペレーティング システムで問題が生じる可能性があります。d2.8xlarge インスタンスを起動する場合は、最新の AMI を使用することをお勧めします。

次の Linux AMI は、36 個の vCPU を使用した d2.8xlarge インスタンスの起動をサポートしています。

  • Amazon Linux 2 (HVM)

  • Amazon Linux AMI 2018.03 (HVM)

  • Ubuntu Server 14.04 LTS (HVM) 以降

  • Red Hat Enterprise Linux 7.1 (HVM)

  • SUSE Linux Enterprise Server 12 (HVM)

アプリケーションに別の AMI を使用する必要がある場合に、d2.8xlarge インスタンスの起動が正常に完了しないとき (stopped 状態遷移に伴って起動中にインスタンスのステータスが Client.InstanceInitiatedShutdown に変更されるときなど) は、以下の手順に従って 32 個を超える vCPU をサポートするようにインスタンスを変更し、d2.8xlarge インスタンスタイプを使用できるようにします。

32 個の以上の vCPU をサポートするようにインスタンスを更新する

  1. AMI を使用して D2 インスタンスを起動し、d2.8xlarge 以外の D2 インスタンスタイプを選択します。

  2. 使用するオペレーティングシステム固有の手順に従って、カーネルを最新バージョンに更新します。例えば、RHEL 6 の場合は、次のコマンドを使用します。

    sudo yum update -y kernel
  3. インスタンスを停止します。

  4. (オプション) 将来的に必要な追加の d2.8xlarge インスタンスを起動するために使用できるインスタンスから AMI を作成します。

  5. 停止したインスタンスのインスタンスタイプを d2.8xlarge に変更します ([Actions] (アクション)、[Instance settings] (インスタンスの設定)、[Change instance type] (インスタンスタイプの変更) の順にクリックし、その後の指示に従います)。

  6. インスタンスを起動します。インスタンスが正常に起動すれば、完了です。これでもインスタンスが正しく実施されない場合、以下のステップに進みます。

  7. (オプショナル) インスタンスがまだ正しく実施されない場合、インスタンスのカーネルが 32 個の vCPU をサポートしていない可能性があります。ただし、vCPU を制限すると、インスタンスを起動できる場合があります。

    1. 停止したインスタンスのインスタンスタイプを、d2.8xlarge を除く D2 インスタンスタイプのいずれかに変更します ([Actions] (アクション)、[Instance settings] (インスタンスの設定)、[Change instance type] (インスタンスタイプの変更) の順にクリックし、その後の指示に従います)。

    2. 使用するオペレーティングシステム固有の手順に従って、カーネル起動パラメータに maxcpus=32 オプションを追加します。たとえば、RHEL 6 の場合は、/boot/grub/menu.lst ファイルを編集し、最新のアクティブな kernel エントリに次のオプションを追加します。

      default=0 timeout=1 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-504.3.3.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 maxcpus=32 console=ttyS0 ro root=UUID=9996863e-b964-47d3-a33b-3920974fdbd9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 console=ttyS0,115200n8 console=tty0 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
    3. インスタンスを停止します。

    4. (オプション) 将来的に必要な追加の d2.8xlarge インスタンスを起動するために使用できるインスタンスから AMI を作成します。

    5. 停止したインスタンスのインスタンスタイプを d2.8xlarge に変更します ([Actions] (アクション)、[Instance Settings] (インスタンスの設定)、[Change Instance Type] (インスタンスタイプの変更) の順にクリックし、その後の指示に従います)。

    6. インスタンスを起動します。

リリースノート

  • Nitro System 上に構築されたインスタンスには、次の要件があります。

    以下の Linux AMI はこれらの要件を満たしています。

    • Amazon Linux 2

    • Amazon Linux AMI 2018.03

    • Ubuntu 14.04 (linux-awsカーネル) 以降

    • Red Hat Enterprise Linux 7.4 以降

    • SUSE Linux Enterprise Server 12 SP2 以降

    • CentOS 7.4.1708 以降

    • FreeBSD 11.1 以降

    • Debian GNU/Linux 9 以降

  • ベアメタルインスタンスを起動すると、基盤となるサーバーが起動します。これには、すべてのハードウェアやファームウェアコンポーネントの確認が含まれます。つまり、インスタンスが実行状態になってからネットワーク経由で使用できるようになるまでに 20 分かかることがあります。

  • EBS ボリュームまたはセカンダリネットワークインターフェイスを、ベアメタルインスタンスにアタッチ (または、そこからデタッチ) するには、PCIe のネイティブホットプラグがサポートされている必要があります。PCIe のネイティブホットプラグは、Amazon Linux 2 および最新バージョンの Amazon Linux AMI でサポートされています。それ以前のバージョンではサポートされていません。次の Linux カーネル設定オプションを有効にする必要があります。

    CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEASPM=y
  • ベアメタルインスタンスでは、I/O ポートベースのシリアルデバイスではなく、PCI ベースのシリアルデバイスを使用しています。アップストリームの Linux カーネルと最新の Amazon Linux AMI は、このデバイスをサポートしています。また、ベアメタルインスタンスでは、システムが PCI ベースのシリアルデバイスを自動的に使用できるようにする ACPI SPCR テーブルも使用できます。最新の Windows AMI では、自動的に PCI ベースのシリアルデバイスが使用されます。

  • FreeBSD AMI では、ベアメタルインスタンスは、起動に約 1 時間かかり、ローカルの NVMe ストレージへの I/O は完了しません。回避策として、次の行を /boot/loader.conf に追加し、再起動します。

    hw.nvme.per_cpu_io_queues="0"
  • d2.8xlarge インスタンスタイプには 36 個の vCPU がありますが、これにより vCPU を 32 個に制限している一部の Linux オペレーティング システムで問題が生じる可能性があります。詳細については、個の vCPU のサポートを参照してください。

  • d3.8xlarge および d3en.12xlarge インスタンスは、ルートボリュームを含め、最大 3 つのアタッチメントをサポートします。ネットワークインターフェイスまたは EBS ボリュームを追加するときにアタッチメントの制限を超えると、インスタンスでアタッチメントの問題が発生します。

  • リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタイプにはその他の制限もあります。詳細については、Amazon EC2 の「よくある質問」の「Amazon EC2 で実行できるインスタンス数の上限は」を参照してください。