CUEBiC TEC BLOG

キュービックTECチームの技術ネタを投稿しております。

EC2作成時にデフォルトのままEBSを選ぶのはやめましょう

概要

こんにちは、キュービックでSREをやっているYuhta28です。キュービック内のテック技術について発信します。

皆さんはEC2を作成するときにEBSのボリュームタイプを意識されていますでしょうか?

f:id:Yuhta28:20220405154335p:plain
Step4のEC2へのストレージ追加画面

EBSのボリュームタイプは2022年4月時点で大別して5種類、細かく分けると8つのタイプに分かれています。

EBSボリュームタイプ一覧

  • General Purpose SSD (gp2)
  • General Purpose SSD (gp3)
  • Provisioned IOPS SSD (io1)
  • Provisioned IOPS SSD (io2)
  • Cold HDD (sc1)
  • Throughput Optimized HDD (st1)
  • Magnetic (standard)

2022年4月時点では上図のようにデフォルトでGeneral Purpose SSD(gp2)が選択されています。

Generalという名称の通り、特殊な使い方をしない限りはEC2にアタッチさせるEBSはGeneral Purpose SSDで問題ありません。

ですがgp3の存在を知らず、gp2のままにしている人も多いのではないでしょうか?gp3に変更することでAWSコストの最適化が実現できるケースもありますので今回はgp3について紹介致します。

General Purpose SSDについて

簡単にまずはGeneral Purpose SSD(以下汎用SSD)についての紹介から入ります。

汎用SSDは料金とパフォーマンスのバランスに優れたSSDで、基本的なワークロードに対応しています。もし大規模なデータベース利用やミッションクリティカルな低レイテンシーを求める場合は、Provisioned IOPS SSDを活用します。

gp3とは

gp3は2020年のAWS re:Inventで発表されたEBSボリュームです。

耐久性やボリュームサイズに変更はありませんが、gp3は3,000IOPS1と125MB/秒のスループット2が基本性能として保証されるようになりました。

f:id:Yuhta28:20220406191137p:plain
Step4のEC2へのストレージ追加画面
ストレージへの追加画面でも分かる通り、ユーザー自身で拡張もできます。

gp2は最初にプロビジョニングされたストレージ量によって、AWS側で既定の計算式に基づいてIOPS/スループット値が設定され、ユーザーによる変更はできませんでした。ただgp2はバーストクレジットとよばれる急激なパフォーマンス要求を満たせる基本スペック以上のパフォーマンスを発揮できる機能を備えています。

これによって急激なパフォーマンス要求にも一定時間なら対応することができます。 gp3はバーストクレジットがない代わりに自分で必要以上分のIOPS/スループットの値を設定することで短期的なバーストクレジットに頼ることなく安定したパフォーマンスを発揮させることができます。

コスト面

コストについて見てましょう。

純粋なEBSストレージのコストは以下のとおりです。

  • gp2
    • 0.12USD/GB 月
  • gp3
    • 0.096USD/GB 月

20%削減されていることが分かります。ですが、gp3はEBSのストレージコストに加えて、自分で設定したIOPSとスループットの料金も追加で発生します。3

要素 料金
IOPS 無料の 3,000 IOPS、および 3,000 を超えた分について 1 か月におけるプロビジョンド IOPS あたり 0.006USD
スループット 無料の 125 MB/秒、および 125 を超えた分について 1 か月におけるプロビジョンド MB/秒あたり 0.048USD

デフォルト設定されている3,000IOPSと125MB/秒分の値は無料枠ですが、ユーザーが設定した値に応じて料金が追加されます。

例えば200GBのgp2とgp3で同一のパフォーマンスを求めた場合の料金はいくらになるのかAWSの料金見積もりツールを使って計算してみます。

calculator.aws

gp2の料金

f:id:Yuhta28:20220406200356p:plain
gp2の料金

gp3の料金

f:id:Yuhta28:20220406200332p:plain
gp3の料金

こうしてみるとgp3のほうが2割ほど安くなっているように見えます。 しかし、前述したとおりgp3はパフォーマンス値にも料金が加算されます。

初期設定のままでしたら無料枠に収まりますが、実は初期設定の状態ですとgp2のデフォルト設定未満のパフォーマンスしか発揮しません。

200GBのgp2のIOPSとスループット値は以下の通りです。

IOPS スループット
600 150

初期スループット値はgp2の方が高いので、gp3のスループット値を150MB/秒に変更してもう一度計算し直します。

f:id:Yuhta28:20220407185926p:plain
ストレージ値を調整したgp3の料金

パフォーマンス値をgp2と同等の状態に持っていた場合でも僅かながらgp3の方が安くなります。 もちろん、今までのスループット値150MB/秒も不要で、デフォルトのスループット値のままでも問題なければ当初の算出したコストで問題ありませんのでさらなるコスト最適化が狙えます。

所感

EBSの汎用SSD(gp3)について紹介しました。

EC2そのものはReserved InstanceやSavings Plansなどの割引プランを活用することで通常よりも安いコストで稼働させることができますが、EBSにはそういったプランはありません。

このようにボリュームタイプを変更してコスト最適化を狙うことでAWSコストの削減に繋がりますので、皆さんもぜひともEBSのボリュームタイプを見直してみてください。

参考文献

docs.aws.amazon.com

aws.amazon.com

hack.nikkei.com

dev.classmethod.jp

blog.serverworks.co.jp