【AWS】新しいEBS汎用SSD(GP3)は乗り換え得!バーストの制約から解放される!!

先日に新たなEBSとしてGP3ボリュームが発表されました!!

発表直後ではルートボリュームのマウントには使えなかったようですが、現在は利用可能になっているようです。

今まではGP2ボリュームが推奨されていましたが、今後はストレージ容量あたりのコストパフォーマンスに優れ、高パフォーマンスを発揮できるGP3ボリュームがメインに変わっていきそうです。

では新しいGP3ボリュームはGP2ボリュームと比べると何が良くなっているのか見ていきましょう!

GP3の仕様

スペック比較
GP2 GP3
容量 1GB~16TB 1GB~16TB
ストレージ価格 $0.12/month $0.096/month
IOPS 100~16,000
※EBSストレージ1GBにつき3IOPS
3000~16,000
※3,000IOPSまで無料でそれ以上を利用する場合には$0.006
スループット ストレージ容量に応じて変動
※最大で250MB/s
125MB/s~1,000MB/s
※125MB/sを超える場合には1MB/sにつき$0.048

この表を見ていただくとわかると思いますが、GP3の方がストレージ容量あたりの価格が安いです。

さらにGP3ボリュームではIOPSの最低が3,000となっています。
もしもGP2ボリュームで3,000IOPSを実現しようとすると、ストレージ容量を1,000GBも割り当てなければなりません。

GP2ボリュームではバーストクレジットを消費して瞬間的に3,000IOPSを発揮する機能もありますが、そもそもGP3ボリュームを採用していれば無制限に3,000IOPSのパフォーマンスを維持できるので、この時点でもGP3ボリュームの方が使い勝手が良さそうです。

fioコマンドでパフォーマンスチェック


c5d.largeインスタンスにstandard、gp2、gp3、インスタンスストアをマウントさせた状態でそれぞれのパフォーマンスを調べてみました。

EBSのボリュームは全て8GBの割り当てにしています。

実行コマンドは以下の通りです。

$ sudo fio --directory=/{対象のボリュームパス} \
 --name fio_test_file \
 --direct=1 \
 --rw=randread \
 --bs=4k \
 --size=1G \
 --numjobs=4 \
 --time_based \
 --runtime=180 \
 --group_reporting \
 --norandommap

——————-
◆standardボリューム

standardボリュームではIOPSは1,100程度で、IOは839MB、スループットは4.6MB/sほどでした。

——————-
◆GP2ボリューム

GP2ボリュームではIOPSは3,000程度でIOは2,100MB、スループットは12MB/sほどでした。


ただし本来はIOPSのベースラインは100しかないため、この検証結果のパフォーマンスを得るためにバーストクレジットを消費しています
もしもバーストクレジットが尽きてしまった場合には、大幅にパフォーマンスが低下してしまうでしょう。

——————-
◆GP3ボリューム

GP3ボリュームではIOPSは3,000程度でIOは2,100MB、スループットは12MB/sほどでした。
バーストしているGP2ボリュームと同等の結果ですが、こちらの場合では常にこのパフォーマンスを担保できます。

価格的にもこちらの方が安い上に、IOPSのバーストクレジットの制約に縛られないこちらの方が明らかに使いやすいですね。

——————-
◆インスタンスストア

最後におまけとしてインスタンスストアでもfioコマンドを実行してみました。
IOPSは20,000程度で、IOは14,000MB、スループットは80MB/sほどでした。

仮想的なストレージであるEBSとは異なり、インスタンスストアは物理的なSSDのためダントツに性能が高いです。
ただし揮発性で、データを保持し続けることはできないためユースケースの選択には注意が必要です。

既存のEBSをGP3へ切り替え


既存のEBSのボリュームをGP3ボリュームへ切り替えるのは非常に簡単で、EBSの設定から「ボリュームの変更」を行うことで任意のボリュームタイプへ変更できます。


GP3ボリュームではIOPSがデフォルトで4,000になっているため、追加料金を支払いたくない場合には3,000にしておくことをお勧めします。
変更をリクエスト後、数十分後には切り替えが完了します。

ボリュームタイプを変更した場合にはEC2インスタンス側でコマンドの実行や既に実行されているプロセスの再スタートを行う必要はありませんでした。
しかし、今回はルートボリュームを切り替えてみたところsshから追い出されてしまったので、多少なりともダウンタイムは発生する可能性がありそうです。

おわりに

新しいEBSのボリュームタイプについて調べてみました。

コストパフォーマンスに優れており、既存のGP2ボリュームよりも使い勝手が良くなっています。

新しく出たばかりの機能をいきなり使用すると、もしも問題が発生した時に取り返しが付かなくなる可能性もありますので、しばらく安全を確認できたら利用していこうと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)