ストレージ最適化インスタンス
ストレージ最適化インスタンスは、ローカルストレージの大規模データセットに対する高いシーケンシャル読み取りおよび書き込みアクセスを必要とするワークロード用に設計されています。ストレージ最適化インスタンスは、数万回の低レイテンシーとランダム I/O オペレーション/秒 (IOPS) をアプリケーションに提供するように最適化されています。
D2 インスタンス
これらのインスタンスは、次の用途に適しています。
-
超並列処理 (MPP) データウェアハウス
-
MapReduce および Hadoop 分散コンピューティング
-
ログまたはデータ処理アプリケーション
D3 および D3en インスタンス
これらのインスタンスは、インスタンスストレージのスケールアウトを提供し、以下に適しています。
-
Hadoop ワークロード向けの分散ファイルシステム
-
GPFC や BeeFS などのファイルストレージワークロード
-
HPC ワークロード向けの大規模なデータレイク
H1 インスタンス
これらのインスタンスは、次の用途に適しています。
-
MapReduce および分散ファイルシステムなどのデータ集約型ワークロード
-
直接アタッチされたインスタンスストレージにある大量データへのシーケンシャルアクセスを必要とするアプリケーション
-
大量のデータへの高スループットアクセスを必要とするアプリケーション
I3 および I3en インスタンス
これらのインスタンスは、次の用途に適しています。
-
高頻度オンライントランザクション処理 (OLTP) システム
-
リレーショナルデータベース
-
NoSQL データベース
-
メモリ内データベース (Redis など) のキャッシュ
-
データウェアハウスアプリケーション
-
分散されたファイルシステム
ベアメタルインスタンスを使用すると、アプリケーションから、プロセッサとメモリなどのホストサーバーの物理リソースに直接アクセスすることができます。
詳細については、「Amazon EC2 I3 インスタンス
ハードウェア仕様
D2、D3、D3en インスタンスのプライマリデータストレージは、HDD インスタンスストアボリュームです。I3、I3en インスタンスのプライマリデータストレージは、NVMe (Non-Volatile Memory Express) SSD インスタンスストアボリュームです。
インスタンスストアボリュームは、インスタンスの存続中のみ使用できます。インスタンスを停止、休止、または終了すると、アプリケーションとそのインスタンスストアボリュームのデータは消去されます。インスタンスストアボリュームの重要なデータは、定期的にバックアップまたはレプリケートすることをお勧めします。詳細については、「Amazon EC2 インスタンスストア」および「SSD インスタンスストアボリューム」を参照してください。
ストレージ最適化インスタンスのハードウェア仕様の要約を以下に示します。
インスタンスタイプ | デフォルト 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 |
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンスタイプ
CPU オプションの指定についての詳細は、「CPU オプションの最適化」を参照してください。
インスタンスのパフォーマンス
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 |
d3.xlarge |
最大 5 Gbps † | ENA |
d3.2xlarge |
5 Gbps | ENA |
i3.4xlarge 以下
|
最大 10 Gbps † | ENA |
d2.8xlarge |
10 Gbps | Intel 82599 VF |
d3.4xlarge | i3.8xlarge | h1.8xlarge |
10 Gbps | ENA |
d3en.2xlarge 以下 | i3en.3xlarge 以下
|
最大 25 Gbps † | ENA |
d3.8xlarge | d3en.4xlarge | i3.16xlarge | i3.metal | i3en.6xlarge | h1.16xlarge
|
25 Gbps | ENA |
d3en.6xlarge |
40 Gbps | ENA |
d3.8xlarge | d3en.8xlarge | i3en.12xlarge |
50 Gbps | ENA |
d3en.12xlarge |
75 Gbps | ENA |
i3en.24xlarge | i3en.metal |
100 Gbps | ENA |
† これらのインスタンスでは、ネットワーク I/O クレジットメカニズムを使用して、平均帯域幅使用率に基づいてインスタンスにネットワーク帯域幅を割り当てます。これらのインスタンスでは、帯域幅がベースライン帯域幅を下回るとクレジットを獲得し、これらのクレジットを、ネットワークデータ転送を実行するときに使用できます。詳細については、サポートケースを開き、関心のある特定のインスタンスタイプのベースライン帯域幅について問い合わせてください。
SSD I/O パフォーマンス
カーネルバージョン 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 |
140 万 |
i3.metal |
3,300,000 |
140 万 |
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 |
100 万件 |
800,000 |
i3en.24xlarge |
200 万件 |
160 万件 |
i3en.metal |
200 万件 |
160 万件 |
* これらのインスタンスの場合、最大で指定されたパフォーマンスを得ることができます。
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 * |
はい |
* ルートデバイスボリュームは、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 をサポートするようにインスタンスを更新する
-
AMI を使用して D2 インスタンスを起動し、
d2.8xlarge
以外の D2 インスタンスタイプを選択します。 -
使用するオペレーティングシステム固有の手順に従って、カーネルを最新バージョンに更新します。たとえば、RHEL 6 の場合は、次のコマンドを使用します。
sudo yum update -y kernel
-
インスタンスを停止します。
-
(オプション) 将来的に必要な追加の
d2.8xlarge
インスタンスを起動するために使用できるインスタンスから AMI を作成します。 -
停止したインスタンスのインスタンスタイプを
d2.8xlarge
に変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 -
インスタンスを起動します。インスタンスが正常に起動すれば、完了です。これでもインスタンスが正しく実施されない場合、以下のステップに進みます。
-
(オプショナル) インスタンスがまだ正しく実施されない場合、インスタンスのカーネルが 32 個の vCPU をサポートしていない可能性があります。ただし、vCPU を制限すると、インスタンスを起動できる場合があります。
-
停止したインスタンスのインスタンスタイプを
d2.8xlarge
以外の D2 インスタンスタイプのいずれかに変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 -
使用するオペレーティングシステム固有の手順に従って、カーネル起動パラメータに
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 -
インスタンスを停止します。
-
(オプション) 将来的に必要な追加の
d2.8xlarge
インスタンスを起動するために使用できるインスタンスから AMI を作成します。 -
停止したインスタンスのインスタンスタイプを
d2.8xlarge
に変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 -
インスタンスを起動します。
-
リリースノート
-
ストレージ最適化インスタンスは、HVM AMI を使用して起動する必要があります。詳細については、「Linux AMI 仮想化タイプ」を参照してください。
-
Nitro System 上に構築されたインスタンスには、次の要件があります。
-
NVMe ドライバーがインストールされている必要があります。
-
Elastic Network Adapter (ENA) ドライバーがインストールされている必要があります。
以下の 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 のネイティブホットプラグサポートが必要です。Amazon Linux 2 および最新バージョンの Amazon Linux AMI は PCIe ネイティブホットプラグをサポートしていますが、以前のバージョンではサポートされていません。次の 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 で実行できるインスタンス数の上限は
」を参照してください。