lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

EBSボリュームタイプをgp2からgp3に移行するにあたって色々調べた

きっかけ

先日のStorage JAWSの中でgp2からgp3への移行に関するLTがあったので。

内心、安くなるっぽいから性能比較して移行方法考えてやらなきゃな~とか思ってたんですがずっと後回しになっちゃって...
鉄は熱いうちに打てと言うことで興味が向いてるうちに色々調べた。

前提

移行を考えるシチュエーションは以下の通り。

  • EC2インスタンスにアタッチされたEBSボリューム。
  • ボリュームタイプはgp2、ボリュームサイズは50GiB。
  • インスタンスの使用用途はWebサーバ。

結論

  • 想定するシチュエーションであれば移行したほうが得。
  • IOPSはスペックアップとなる。追加費用を払うことでさらなるスペックアップも可能。
    • gp2: ベースライン 150 IOPS(バーストで最大3,000 IOPS)
    • gp3: ベースライン 3,000 IOPS(最大16,000 IOPSまで追加可能)
  • スループットはスペックダウンとなるが誤差の範囲。また追加費用を払うことでスペックアップも可能。
    • gp2: ベースライン128MiB/s(固定)
    • gp3: ベースライン125MiB/s(最大1,000MiB/sまで追加可能)
  • 費用は$1.2の削減となる。(-20%)
    • gp2: $6.0(50GB * $0.12)/ month
    • gp3: $4.8(50GB * $0.096)/ month

性能比較

確認するポイント

公式ドキュメントにまとめの表がある。

表の中で以下の項目に注目して確認する。

ボリュームサイズ

「1GiB - 16TiB」まで選択できるスペックは変更がないので気にする必要なし。

IOPS

ボリュームあたりの最大 IOPS (16 KiB I/O)が16,000となっている。
結論的にはスペックアップとなるので気にする必要なし。

シチュエーションとして想定するボリュームサイズである50GiBの場合は以下の通りとなる。

  • gp2: 150 IOPS(50GiB * 3 IOPS)
    • バーストクレジットを消費することで3,000 IOPSまでバースト可能

      1 TiB 未満の (および 3,000 IOPS 未満でプロビジョニングされた) gp2 ボリュームは、長期間にわたって必要な場合に 3,000 IOPS にバーストできます。ボリュームのバースト機能は I/O クレジットによって制御されます。I/O の需要がベースラインパフォーマンスよりも大きい場合、ボリュームは I/O クレジットを消費して、必要なパフォーマンスレベル (最大 3,000 IOPS) までバーストします。 汎用 SSD ボリューム - Amazon Elastic Compute Cloud

  • gp3: 3,000 IOPS(追加費用でIOPSを追加可能)

    gp3 ボリュームは、ストレージの料金に含まれている 3,000 IOPS の一貫したベースライン IOPS パフォーマンスを提供します。追加料金を支払うことで、ボリュームサイズの GiB あたり 500 IOPS の割合で追加の IOPS (最大 16,000 まで) をプロビジョニングできます。 汎用 SSD ボリューム - Amazon Elastic Compute Cloud

gp3に移行した場合、IOPSのベースラインは純粋なスペックアップとなる。
gp2をバーストした場合も最大IOPSは3,000となるため、gp3のIOPSベースラインと同じ値となる。

スループット

ボリュームあたりの最大スループットは以下の通り。

  • gp2: 1,000 MiB/秒
  • gp3: 250 MiB/秒

gp2、gp3ともにボリュームサイズによってスループット値が変動するため、想定シチュエーションである50GiBのボリュームサイズで確認する。

ベースラインスループット値はgp3が劣るが、今回のユースケースであれば誤差の範囲であると考える。

費用

gp2とgp3で課金対象が異なるため、まず課金対象を整理する。

料金表のコピペなので以下を参照したほうが正確。 ハイパフォーマンスブロックストレージの料金 – Amazon EBS の料金 – Amazon Web Services

  • gp2
    • ボリューム: 1 か月にプロビジョニングされたストレージ 1 GB あたり 0.12USD
  • gp3
    • ストレージ: 0.096USD/GB 月
    • IOPS: 無料の 3,000 IOPS、および 3,000 を超えた分について 1 か月におけるプロビジョンド IOPS あたり 0.006USD
    • スループット: 無料の 125 MB/秒、および 125 を超えた分について 1 か月におけるプロビジョンド MB/秒あたり 0.048USD

想定シチュエーションで考えると、IOPS・スループットは追加なしでベースライン値のまま使用するので、単純にストレージ費用のみを比較すれば良い。 ※GiBとGBで表記が違うが細かく計算する気はないのでスルーしてください。

  • gp2: $6.0(50GB * $0.12)
  • gp3: $4.8(50GB * $0.096)

$1.2(-20%)の減額となる。

移行方法

ボリュームの再作成等は不要でコンソールから移行が可能となっている。

CFnで変更を行う場合はスタックの管理リソースから除外→ボリュームタイプ変更→スタックの管理リソースにインポートと言う手順が必要となる。(ちょっと面倒

雑感

Twitterのスレッドにまとめて終わりにしようかと思ったが、なにかアウトプットしなければと最近焦燥感に駆られてるのでとりあえずブログを書いた。適当だけど。