Lesson 2Storage

EC2 Storage

EC2 storage มีหลายแบบ แต่พื้นฐานที่ต้องเข้าใจคือ EBS Volume สำหรับ block storage แบบ persistent, Snapshot สำหรับ backup และ Instance Store สำหรับ temporary local storage

Persistence EBS อยู่แยกจาก instance lifecycle Stop/terminate behavior ขึ้นกับ volume setting และ volume ยังคิดเงินถ้ายังอยู่
AZ rule EBS ต้องอยู่ AZ เดียวกับ instance Attach volume ข้าม AZ ไม่ได้ ต้องใช้ snapshot/copy strategy หากย้าย AZ
Backup Snapshot เป็นสิ่งที่คุณต้องวางแผนเอง ใช้ snapshot, AWS Backup หรือ lifecycle policy สำหรับข้อมูลสำคัญ

Amazon EBS Volume

Amazon EBS Volume คือ block-level storage ที่ attach กับ EC2 instance ได้ ใช้งานเหมือน disk ปกติ และ persist แยกจาก lifecycle ของ instance Volume และ instance ต้องอยู่ใน Availability Zone เดียวกัน

Volume typeเหมาะกับหมายเหตุ
gp3default general purposeปรับ IOPS/throughput แยกจาก size ได้
io2database / latency-sensitive workloadProvisioned IOPS ราคาแพงกว่า
st1throughput-heavy sequential workloadไม่เหมาะกับ boot volume
sc1cold datacost ต่ำกว่า performance ต่ำกว่า

Attach, mount และ resize

หลัง attach EBS กับ Linux instance คุณต้องตรวจ device, สร้าง filesystem ถ้ายังไม่มี, mount ไป directory และเพิ่มใน /etc/fstab หาก resize volume ต้องขยาย partition/filesystem ใน OS ด้วย ไม่ใช่แก้ size ใน Console แล้วจบเสมอ

lsblk
sudo file -s /dev/xvdf
sudo mkfs -t xfs /dev/xvdf
sudo mkdir -p /data
sudo mount /dev/xvdf /data

EBS Snapshot

EBS Snapshot คือ point-in-time backup ของ EBS Volume และเป็น incremental backup AWS ไม่ได้ backup EBS ให้โดยอัตโนมัติ คุณต้องสร้าง Snapshot เอง หรือใช้ AWS Backup / Data Lifecycle Manager

Instance Store และ EFS

  • Instance Store: local temporary storage ที่เร็ว แต่ข้อมูลหายเมื่อ instance stop/terminate ตามข้อกำหนดของ instance type
  • Amazon EFS: shared file system ที่หลาย instance mount ร่วมกันได้ เหมาะกับ shared content หรือ workload ที่ต้องใช้ POSIX-like file system

Common mistakes

  • คิดว่า Stop EC2 แล้ว EBS ไม่มีค่าใช้จ่าย ทั้งที่ volume ยังคิดเงิน
  • ลืม snapshot ก่อนเปลี่ยน disk สำคัญ
  • ใช้ Instance Store เก็บข้อมูลถาวร
  • เพิ่ม EBS size แล้วลืมขยาย filesystem

Review questions

Before next lesson
  1. แยก EBS, Instance Store และ EFS concept ได้
  2. รู้ว่า resize volume ต้องขยาย filesystem ใน OS ด้วย
  3. รู้ว่า detached EBS และ snapshots ยังมีค่าใช้จ่าย
  1. EBS Volume persist หลัง stop instance หรือไม่?
  2. Snapshot เป็น full copy ทุกครั้งหรือ incremental?
  3. เมื่อใดควรใช้ EFS แทน EBS?