AWSのEBSをgp3に変えてコストを削減した話

エンジニアのAです。 今回はAWSでアクセス頻度がそれなりにあるEC2のEBSボリューム料金を削減したためご紹介します。

Elastic Block Storeのボリュームタイプ

AWSのEC2を立てる際に割り当てるElastic Block Store(EBS)のボリュームは下記の通りです。

  • プロビジョンド IOPS SSD:io1,io2
  • 汎用 SSD:gp2,gp3
  • スループット最適化 HDD:st1
  • Cold HDD:sc1
  • 旧世代マグネティックタイプ

これらのうち、旧世代マグネティックタイプはデータのアクセス頻度が低いかパフォーマンスを重視しない場合のみに使うボリュームで sc1もアクセス頻度が低い場合のみに使うボリューム、st1は大容量のボリュームサイズに適したタイプなため今回は割愛します。

2022年9月現在、東京リージョンのEBS価格は以下のようになっています。

ボリュームタイプ 料金
汎用 SSD (gp3) - ストレージ 0.096USD/GB 月
汎用 SSD (gp3) - IOPS 無料の 3,000 IOPS、および 3,000 を超えた分について 1 か月におけるプロビジョンド IOPS あたり 0.006USD
汎用 SSD (gp3) - スループット 無料の 125 MB/秒、および 125 を超えた分について 1 か月におけるプロビジョンド MB/秒あたり 0.048USD
汎用 SSD (gp2) ボリューム 1 か月にプロビジョニングされたストレージ 1 GB あたり 0.12USD
プロビジョンド IOPS SSD (io2) - ストレージ 0.142USD/GB 月
プロビジョンド IOPS SSD (io2) - IOPS 1 か月におけるプロビジョンド IOPS (最大 32,000 IOPS まで) あたり 0.074USD
1 か月におけるプロビジョンド IOPS (最大 32,001~64,000 IOPS) あたり 0.052USD
1 か月におけるプロビジョンド IOPS (64,000 IOPS 超) あたり 0.036USD
プロビジョンド IOPS SSD (io1) ボリューム 1 か月にプロビジョニングされたストレージ 1 GB あたり 0.142USD、さらに 1 か月にプロビジョニングされた IOPS あたり 0.074USD

上記の表にもある通り、gp2と比べてストレージの料金も安く基本的にgp3にした方が良いです。 特にIOPSが3000までで済めば無料かつスループットも125(MB/s)までなら無料枠に収まればお得です。

試算例

例えば元のボリュームタイプがio1で1 か月にプロビジョニングされたIOPSが2500程のサーバーが5台存在した場合

$0.074 * 2500IOPS * 5台 = $925 となり

全てgp3に変えることでIOPS料金だけでも月額925$の削減になります。

gp2とgp3について

また、gp2のIOPSの最低値が100IOPSで、gp3は3000IOPSなため単純にgp3は性能も向上しています。 ただしgp3は固定値であり、負荷の内容によってはgp2の方が遅延が少なくなる為ワークロードに合わせた適切な設定を行いましょう。

注意点

ちなみにEC2インスタンスを停止してもEBSはそのまま課金が発生します。 (EC2を削除する場合は割り当てられているボリュームも一緒に削除されます。)

現在どのEC2にボリュームが割り当てられているかも確認できる為、不要なボリュームは残さずに削除することをお勧めします。

aws.amazon.com

※この記事のAWSの料金形態は2022/09/02現在のものであり、最新の情報は上記でご確認ください。