EBS 卷类型对比
| 类型 | 基准性能 | 最大 IOPS | 适用场景 |
|---|---|---|---|
| gp3(推荐) | 3000 IOPS / 125 MB/s 起 | 16000 | 绝大多数通用负载,性能与价格解耦 |
| gp2(旧) | 3 IOPS/GB | 16000 | 存量卷,建议转 gp3 |
| io2 Block Express | 按配置 | 256000 | 高性能数据库、SAP HANA、关键 OLTP |
| st1 | 40 MB/s per TB | 500 | 大数据顺序读写、日志处理 |
| sc1 | 12 MB/s per TB | 250 | 冷数据、访问极少的归档卷 |
gp3 的基准 3000 IOPS 对 90% 的应用够用,不要习惯性地按容量堆 IOPS。
EFS 还是 FSx
选 EFS
- Linux 环境的 NFS 共享,多可用区自动冗余
- 容量自动伸缩,不需要预置
- 容器场景挂载共享配置或用户上传目录
- 配合 Intelligent-Tiering 自动降低冷数据成本
选 FSx
- FSx for Windows:SMB 协议、AD 集成、Windows 应用共享盘
- FSx for NetApp ONTAP:需要快照克隆、重删压缩、多协议访问
- FSx for Lustre:HPC 与 AI 训练的高吞吐并行文件系统
- FSx for OpenZFS:需要 ZFS 特性的 Linux 工作负载
批量把 gp2 转成 gp3
#!/usr/bin/env bash
# 在线把区域内所有 gp2 卷转成 gp3(转换过程不中断业务)
set -euo pipefail
REGION="${1:-ap-northeast-1}"
DRY_RUN="${2:-true}"
mapfile -t VOLUMES < <(aws ec2 describe-volumes \
--region "$REGION" \
--filters Name=volume-type,Values=gp2 \
--query 'Volumes[].VolumeId' --output text | tr '\t' '\n')
echo "发现 ${#VOLUMES[@]} 个 gp2 卷"
for vol in "${VOLUMES[@]}"; do
if [[ "$DRY_RUN" == "true" ]]; then
echo "[dry-run] 将转换 $vol -> gp3"
else
aws ec2 modify-volume --region "$REGION" \
--volume-id "$vol" --volume-type gp3 >/dev/null
echo "已提交转换:$vol"
sleep 1 # 避免 API 限流
fi
done
echo "完成。用 describe-volumes-modifications 查看进度。"
同一个卷 6 小时内只能修改一次。大批量转换建议分批执行并记录进度。