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 | 最大スループット | 最大サイズ | 用途 |
|---|---|---|---|---|---|
| gp3 | SSD | 16,000 | 1,000 MB/s | 16TB | 汎用(推奨) |
| gp2 | SSD | 16,000 | 250 MB/s | 16TB | 汎用(レガシー) |
| io2 Block Express | SSD | 256,000 | 4,000 MB/s | 64TB | 最高性能DB |
| io2 | SSD | 64,000 | 1,000 MB/s | 16TB | 高性能DB |
| io1 | SSD | 64,000 | 1,000 MB/s | 16TB | 高性能DB(レガシー) |
| st1 | HDD | 500(IOPS) | 500 MB/s | 16TB | ビッグデータ |
| sc1 | HDD | 250(IOPS) | 250 MB/s | 16TB | アーカイブ |
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が適している。