SJ blog
backend
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

EBSボリュームタイプ詳細比較 — gp3/io2/st1/sc1の選択基準

Amazon EBSの各ボリュームタイプ(gp3、gp2、io2 Block Express、io1、st1、sc1)のIOPS・スループット・コストの詳細比較、ユースケース別の選択基準、gp2からgp3への移行を解説。

一言結論

gp3はサイズとIOPSが独立して設定できるためgp2より安くて高性能であり新規作成のデフォルト選択肢だが、稼働中のボリュームもダウンタイムなしでgp3に変更できるため既存環境のコスト最適化にも積極的に活用すべきだ。

EBSボリュームタイプ一覧

タイプ種類最大IOPS最大スループット最大サイズ用途
gp3SSD16,0001,000 MB/s16TB汎用(推奨)
gp2SSD16,000250 MB/s16TB汎用(レガシー)
io2 Block ExpressSSD256,0004,000 MB/s64TB最高性能DB
io2SSD64,0001,000 MB/s16TB高性能DB
io1SSD64,0001,000 MB/s16TB高性能DB(レガシー)
st1HDD500(IOPS)500 MB/s16TBビッグデータ
sc1HDD250(IOPS)250 MB/s16TBアーカイブ

gp3(汎用SSD・推奨)

gp3 の特徴:
  ベースIOPS: 3,000(サイズに関係なく固定)
  ベーススループット: 125 MB/s(固定)
  最大IOPS: 16,000(追加費用 $0.005/IOPS)
  最大スループット: 1,000 MB/s(追加費用 $0.040/MB/s)
  料金: $0.08/GB/月
  
gp2 との違い:
  gp2: IOPSはGB × 3で決まる(1GB = 3 IOPS)
       → 少ないサイズは低IOPSで、ストレージを水増しする必要があった
  gp3: サイズとIOPSが独立(IOPSをサイズに依存せず設定)
       → 小さいボリュームでも高IOPSが必要な場合に有利
       → 料金も20%程度安い
# gp3ボリュームの作成(IOPSとスループットを個別設定)
aws ec2 create-volume \
  --availability-zone ap-northeast-1a \
  --volume-type gp3 \
  --size 100 \
  --iops 6000 \
  --throughput 500

# gp2 → gp3 への変更(ダウンタイムなし)
aws ec2 modify-volume \
  --volume-id vol-xxx \
  --volume-type gp3 \
  --iops 3000 \
  --throughput 125

io2 Block Express(最高性能)

io2 Block Express の特徴:
  最大IOPS: 256,000(単一ボリューム)
  最大スループット: 4,000 MB/s
  最大サイズ: 64TB
  レイテンシー: マイクロ秒(<1ms)
  Multi-Attach: 最大16インスタンスから同時アクセス可能
  料金: $0.125/GB/月 + $0.065/プロビジョンドIOPS/月

ユースケース:
  → 大規模SAP HANA / Oracle RAC
  → 高性能なMySQLクラスター
  → ハイパフォーマンスコンピューティング

st1(スループット最適化HDD)

st1 の特徴:
  最大スループット: 500 MB/s
  ベーススループット: 40 MB/GB(バーストで500 MB/s)
  最大IOPS: 500(シーケンシャルアクセス向け)
  料金: $0.045/GB/月(gp3の半額以下)
  ブートボリュームとして使用不可
  
ユースケース(大容量シーケンシャル読み書き):
  → Apache Kafka のログストレージ
  → Hadoop / HDFS データノード
  → データウェアハウスのETL処理
  → ビッグデータのステージングエリア

sc1(コールドHDD)

sc1 の特徴:
  最大スループット: 250 MB/s
  料金: $0.015/GB/月(最も安い)
  ブートボリュームとして使用不可
  アクセス頻度が低いデータに最適
  
ユースケース:
  → 長期アーカイブ(毎月1回程度のアクセス)
  → バックアップ先
  → コスト最重視のコールドデータストレージ

ボリュームの変更(ダウンタイムなし)

# 稼働中のボリュームタイプ変更(インスタンス停止不要)
aws ec2 modify-volume \
  --volume-id vol-xxx \
  --volume-type io2 \
  --iops 10000 \
  --size 200

# 変更状態の確認
aws ec2 describe-volumes-modifications \
  --volume-ids vol-xxx
変更後の最適化:
  変更が完了してもファイルシステムの拡張が必要な場合がある
  
  Linux の場合:
  sudo growpart /dev/xvda 1  # パーティション拡張
  sudo resize2fs /dev/xvda1   # ext4の場合
  または
  sudo xfs_growfs /            # XFSの場合

スナップショットと暗号化

EBSスナップショット:
  → S3に増分バックアップとして保存
  → リージョン間コピー可能(DRに活用)
  → スナップショットから別タイプのボリュームを復元可能

暗号化:
  → KMSキーで暗号化(aws/ebs または CMK)
  → 暗号化されたスナップショット → 暗号化されたボリュームのみ復元可
  → アカウントデフォルトで暗号化を有効にできる
  
  aws ec2 enable-ebs-encryption-by-default

試験頻出ポイント

シナリオ回答
コスト重視の汎用ワークロードgp3
高性能DBでマイクロ秒レイテンシーio2 Block Express
Hadoop/Kafkaなど大容量シーケンシャルst1
月数回アクセスのアーカイブsc1
gp2との主な違いgp3はIOPSとサイズが独立して設定可能
ブートボリュームに使えないタイプst1, sc1(HDDタイプ)

まとめ

gp3は新規作成のデフォルト選択肢で、IOPSとスループットをサイズと独立して設定できる。高性能DBにはio2 Block Express、大容量シーケンシャルアクセスにはst1、コールドアーカイブにはsc1が適している。