SSD インスタンスストアボリューム - Amazon Elastic Compute Cloud

SSD インスタンスストアボリューム

他のインスタンスストアボリュームと同様に、インスタンスの SSD インスタンスストアボリュームを起動するときにマップする必要があります。SSD インスタンスボリューム上のデータは、関連するインスタンスの存続期間中のみ維持されます。詳細については、EC2 インスタンスにインスタンスストアボリュームを追加するを参照してください。

NVMe SSD ボリューム

インスタンスによっては、Non-Volatile Memory Express (NVMe) ソリッドステートドライブ (SSD) インスタンスストアボリュームを提供するものもあります。各インスタンスタイプによりサポートされるインスタンスストアボリュームのタイプの詳細については、インスタンスストアボリュームを参照してください。

以下のオペレーティングシステムの最新の AWS Windows AMI には、AWS NVMe ドライバーが含まれています。これらは、パフォーマンス向上のために NVMe ブロックデバイスとして公開される SSD インスタンスストアボリュームを操作するために使用します。

  • Windows Server 2019

  • Windows Server 2016

  • Windows Server 2012 R2

  • Windows Server 2012

  • Windows Server 2008 R2

インスタンスに接続したら、ディスクマネージャーで NVMe ボリュームが表示されることを確認できます。タスクバーで、Windows ロゴのコンテキスト (右クリック) メニューを開き、[Disk Management] を選択します。Windows Server 2008 R2 では、[スタート][管理ツール][コンピュータの管理][ディスクの管理] の順に選択します。

Amazon が提供する AWS Windows AMI には、AWS NVMe ドライバーが含まれています。最新の AWS Windows AMI を使用していない場合は、現行の AWS NVMe ドライバーをインストールできます。

NVMe インスタンスストレージのデータは、インスタンスのハードウェアモジュールに実装されている XTS-AES-256 ブロック暗号を使用して暗号化されます。暗号化キーは、ハードウェアモジュールで作成され、NVMe インスタンスストレージデバイスごとに固有です。すべての暗号化キーは、インスタンスが停止または終了して復元できないときに破棄されます。この暗号化を無効にしたり、独自の暗号キーを指定したりすることはできません。

非 NVMe SSD ボリューム

C3、I2、M3、R3、X1 の各インスタンスは、非 NVMe SSD を使用するインスタンスストアボリュームをサポートすることで、高いランダム I/O パフォーマンスを実現しています。各インスタンスタイプによりサポートされるインスタンスストアボリュームの詳細については、インスタンスストアボリュームを参照してください。

SSD ベースのインスタンスストアボリュームの I/O パフォーマンス

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

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

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

インスタンスストアボリュームの TRIM のサポート

一部のインスタンスタイプでは、TRIM を持つ SSD ボリュームがサポートされます。詳細については、インスタンスストアボリュームを参照してください。

Windows Server 2012 R2 を実行するインスタンスは、AWS PV ドライバーバージョン 7.3.0 以降の TRIM をサポートします。以前のバージョンの Windows Server を実行しているインスタンスは TRIM をサポートしていません。

TRIM をサポートしているインスタンスストアボリュームは、インスタンスに割り当てられる前に完全に TRIM が実行されます。これらのボリュームは、インスタンスの起動時にファイルシステムを使用してフォーマットされないため、マウントして使用する前にボリュームをフォーマットする必要があります。これらのボリュームを迅速に使用できるようにするには、ボリュームをフォーマットするときに、TRIM 操作をスキップします。Windows で、初期フォーマット中に TRIM のサポートを一時的に無効化するには、[fsutil behavior set DisableDeleteNotify 1] コマンドを使用します。フォーマットが完了したら、fsutil behavior set DisableDeleteNotify 0 を使用して TRIM のサポートを再度有効にします。

TRIM をサポートするインスタンスストアボリュームでは、TRIM コマンドを使用して、書き込んだデータが不要になったときに SSD コントローラーに通知することができます。これにより、より多くの空き領域がコントローラーに与えられ、その結果書き込み増幅が減り、パフォーマンスが向上します。Windows では、fsutil behavior set DisableDeleteNotify 0 コマンドを使用して、通常のオペレーション中に TRIM のサポートが有効になっていることを確認します。