メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

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

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

D2 インスタンス

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

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

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

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

I2 インスタンス

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

  • NoSQL データベース

  • クラスター化データベース

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

I3 インスタンス

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

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

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

  • NoSQL データベース

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

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

  • 低レイテンシー広告技術サービスアプリケーション

ハードウェア仕様

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

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

各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」を参照してください。

ストレージパフォーマンス

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

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

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

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

拡張ネットワーキング機能を有効にすることができます。拡張ネットワーキングでは、パケット毎秒 (PPS) が非常に大きく、ネットワークのストレスが少なく、レイテンシーが低くなります。詳細については、「Linux の拡張ネットワーキング」を参照してください。

d2.8xlarge および i3.16xlarge インスタンスタイプにより、Linux のプロセッサの C ステートと P ステートを制御できます。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコアからのパフォーマンス (CPU 周波数) を制御します。詳細については、「EC2 インスタンスタイプのプロセッサのステート制御」を参照してください。

SSD I/O パフォーマンス

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

インスタンスサイズ 100% のランダム読み取り時 IOPS 最初の書き込み IOPS

i2.xlarge

35,000

35,000

i2.2xlarge

75,000

75,000

i2.4xlarge

175,000

155,000

i2.8xlarge

365,000

315,000

i3.large *

100,125

9,375

i3.xlarge *

206,250

18,750

i3.2xlarge

412,500

37,500

i3.4xlarge

825,000

75,000

i3.8xlarge

1,650,000

150,000

i3.16xlarge

3,300,000

300,000

* i3.large および i3.xlarge インスタンスの場合、最大で指定されたパフォーマンスを得ることができます。

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

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

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

ストレージインスタンスの機能

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

VPC のみ SSD ボリューム 配置グループ 拡張ネットワーキング

D2

はい

Intel 82599 VF

I2

SATA

はい

Intel 82599 VF

I3

はい

NVMe

はい

ENA

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

個の vCPU のサポート

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

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

  • Amazon Linux AMI 2017.03 (HVM)

  • Ubuntu Server 14.04 LTS (HVM)

  • Red Hat Enterprise Linux 7.1 (HVM)

  • SUSE Linux Enterprise Server 12 (HVM)

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

To update an instance to support more than 32 vCPUs

  1. Launch a D2 instance using your AMI, choosing any D2 instance type other than d2.8xlarge.

  2. Update the kernel to the latest version by following your operating system-specific instructions. For example, for RHEL 6, use the following command:

    Copy
    sudo yum update -y kernel
  3. Stop the instance.

  4. (Optional) Create an AMI from the instance that you can use to launch any additional d2.8xlarge instances that you need in the future.

  5. Change the instance type of your stopped instance to d2.8xlarge (choose Actions, Instance Settings, Change Instance Type, and then follow the directions).

  6. Start the instance. If the instance launches properly, you are done. If the instance still does not boot properly, proceed to the next step.

  7. (Optional) If the instance still does not boot properly, the kernel on your instance may not support more than 32 vCPUs. However, you may be able to boot the instance if you limit the vCPUs.

    1. Change the instance type of your stopped instance to any D2 instance type other than d2.8xlarge (choose Actions, Instance Settings, Change Instance Type, and then follow the directions).

    2. Add the maxcpus=32 option to your boot kernel parameters by following your operating system-specific instructions. For example, for RHEL 6, edit the /boot/grub/menu.lst file and add the following option to the most recent and active kernel entry:

      Copy
      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. Stop the instance.

    4. (Optional) Create an AMI from the instance that you can use to launch any additional d2.8xlarge instances that you need in the future.

    5. Change the instance type of your stopped instance to d2.8xlarge (choose Actions, Instance Settings, Change Instance Type, and then follow the directions).

    6. Start the instance.

インスタンスの制限