Bỏ qua

09.EBSVolumeType2

⚡️ AWS EBS Provisioned IOPS SSD: io1, io2, io2 Block Express – Đủ kiến thức đi làm & đi thi


1. Tổng quan – Khi nào dùng nhóm này?

image

  • Provisioned IOPS SSD là nhóm EBS volume cho workload cần IOPS cực cao, latency cực thấp & ổn định, không phụ thuộc dung lượng volume.
  • Đặc biệt phù hợp cho: Database OLTP (Oracle, SQL Server, MySQL, Postgres), latency-sensitive app, workload cần throughput lớn & consistent.

2. Các loại volume Provisioned IOPS SSD

Loại volume Tình trạng Dung lượng Max IOPS/volume Max Throughput/vol Max IOPS/GB
io1 GA (ổn định) 4 GB – 16 TB 64,000 1,000 MB/s 50
io2 GA (ổn định) 4 GB – 16 TB 64,000 1,000 MB/s 500
io2 Block Express Preview/GA 4 GB – 64 TB 256,000 4,000 MB/s 1,000
  • GA: General Availability (sẵn sàng sản xuất), Preview: thử nghiệm (sẽ thành GA).
  • io2 mới hơn, durability cao hơn io1 (99.999999999%), chi phí/IOPS tốt hơn.
  • io2 Block Express: scale lớn (DB lớn, SAP HANA, analytics), latency thấp nhất.

3. Cấu hình IOPS – Đặc trưng lớn nhất

  • IOPS cấu hình độc lập với dung lượng (provisioned IOPS): Ví dụ volume 100GB, bạn có thể chọn 10,000 IOPS (nếu trong ngưỡng IOPS/GB).
  • Max IOPS/GB (giới hạn):
  • io1: 50 IOPS/GB
  • io2: 500 IOPS/GB
  • io2 BE: 1,000 IOPS/GB
  • Ví dụ: Volume io2 100GB, max IOPS request = 50,000.

  • Tính phí: Trả tiền cho cả dung lượng (GB) và số IOPS provisioned.


4. Throughput

  • io1/io2: Max 1,000 MB/s/volume (cao hơn GP2, GP3)
  • io2 Block Express: Max 4,000 MB/s/volume (siêu lớn)
  • Throughput thực tế còn phụ thuộc instance type & tổng số volume (stripe càng nhiều, tổng throughput càng cao).

5. Per Instance Limit (trần hiệu năng EC2 ↔ EBS)

  • Mỗi EC2 instance đều có giới hạn bandwidth/IOPS EBS (phụ thuộc loại, đời, size).
  • io1: Max 260,000 IOPS & 7,500 MB/s/instance - nghĩa là cần 4 cái gắn vô instance mới tới giới hạn của ec2 .
  • io2: Max 160,000 IOPS & 4,750 MB/s/instance.
  • io2 Block Express: Max 260,000 IOPS & 7,500 MB/s/instance.
  • GP2/GP3 (so sánh): Max 260,000 IOPS & 7,000 MB/s/instance.
  • Để chạm trần instance: Phải dùng nhiều volume (RAID-0/striping).
  • Chọn Nitro instance (EBS-optimized mặc định), network phải đủ lớn.

6. Tính năng đặc biệt

  • Multi-Attach:
  • io1/io2 hỗ trợ attach 1 volume vào nhiều EC2 (cùng AZ), app phải cluster-aware (Oracle RAC, Windows Failover Cluster).
  • Snapshot:
  • Backup incremental lên S3, tạo volume mới ở AZ khác hoặc region khác (DR).
  • Encryption:
  • Hỗ trợ encryption by default với KMS.

7. So sánh với các loại EBS khác

Loại Volume Max IOPS/vol Max Throughput/vol Điểm mạnh Điểm yếu
GP2 16,000 250 MB/s Rẻ, phổ thông IOPS phụ thuộc dung lượng
GP3 16,000 1,000 MB/s Rẻ hơn GP2, ổn định IOPS cao phải mua thêm
io1 64,000 1,000 MB/s IOPS cao, có Multi-Attach Đắt, durability thấp hơn io2
io2 64,000 1,000 MB/s IOPS cao, durability tốt, Multi-Attach Đắt hơn GP3
io2 BlockExpress 256,000 4,000 MB/s Scale lớn, hiệu năng “khủng” Chỉ Nitro EC2, đắt nhất

8. Khi nào chọn io1/io2/io2 Block Express?

  • Khi cần IOPS cực cao liên tục, không phụ thuộc size volume
  • Database OLTP/OLAP lớn, latency <1ms cực kỳ ổn định
  • Các workload đòi hỏi throughput lớn & burst cao (SAP HANA, analytics, log, transactional)
  • Multi-Attach cho DB cluster/failover

9. Thực tế đi làm & Best Practice

  • Luôn check EBS bandwidth/IOPS limit của EC2 instance (docs AWS hoặc ec2instances.info)
  • Nếu cần IOPS/throughtput > 1 volume, dùng nhiều volume RAID-0 (striping) trên OS
  • Luôn enable encryption (KMS) cho data protection
  • Backup định kỳ bằng snapshot, test restore
  • Giám sát CloudWatch: VolumeQueueLength, VolumeConsumedReadWriteOps, VolumeThroughputPercentage
  • Chỉ dùng Multi-Attach cho app cluster-aware (không thì dễ corrupt data!)
  • Nên dùng io2 thay io1 (bền hơn, cùng giá hoặc rẻ hơn với cùng IOPS)
  • Nếu cần scale cực lớn, chọn io2 Block Express + Nitro EC2 đời cao

10. Câu hỏi phỏng vấn/thi hay gặp

  • “Provisioned IOPS EBS là gì?” → Volume SSD cho phép tùy chỉnh IOPS độc lập size, dùng cho workload cần IOPS/latency cực cao.
  • “Max IOPS/volume cho io1/io2/io2 BE?” → io1/io2: 64,000; io2 BE: 256,000.
  • “Max throughput io2 BE?” → 4,000 MB/s/volume.
  • “Giới hạn IOPS/GB của io2?” → 500 IOPS/GB.
  • “Per-instance limit EBS?” → Tùy loại EC2, thường 160k/260k IOPS & 4,750–7,500 MB/s.
  • “Multi-Attach là gì?” → 1 volume attach nhiều EC2 cùng AZ, chỉ dùng cho app cluster-aware.
  • “So sánh GP3 vs io2?” → GP3 rẻ, phù hợp general workload; io2 đắt hơn nhưng max IOPS cao, latency thấp, durability cao.
  • “Làm sao migrate volume sang AZ khác?” → Snapshot → create volume mới ở AZ khác.

11. Lưu ý quan trọng

  • IOPS càng cao, chi phí càng lớn (chỉ đăng ký vừa đủ, scale dựa trên thực tế CloudWatch).
  • Không dùng io1/io2 cho workload không cần IOPS cao, phí sẽ lãng phí. Dùng GP3 đủ cho đa số app/web thông thường.
  • Always test performance thực tế với fio/ioping, benchmark trước khi lên production.
  • Luôn kiểm tra instance type đủ EBS bandwidth, đừng “nghẽn cổ chai” ở EC2!

12. Lệnh kiểm tra hiệu năng cơ bản (Linux)

# Random read 4k
fio --name=randread --filename=/dev/nvme1n1 --rw=randread --bs=4k --iodepth=32 --numjobs=4 --runtime=60 --time_based --ioengine=libaio --direct=1

# Sequential write 1M
fio --name=seqwrite --filename=/dev/nvme1n1 --rw=write --bs=1M --iodepth=16 --numjobs=2 --runtime=60 --time_based --ioengine=libaio --direct=1

# Kiểm tra queue length, IOPS, latency
iostat -dxm 1

Ghi nhớ:
- Chỉ nên chọn io1/io2/io2 BE nếu thực sự cần IOPS cao, latency cực thấp, workload critical (DB lớn, analytics, cluster). - Còn lại, GP3 là default tối ưu chi phí & hiệu năng cho đa số sản phẩm.