S3 Basics
ที่เก็บไฟล์แบบไม่จำกัดขนาดที่ครอบจักรวาล
EBS เหมือนฮาร์ดดิสก์ที่คุณเสียบคาไว้กับคอมพิวเตอร์ (ขนาดตายตัว) แต่ S3 คือโกดังวิเศษที่โยนของเข้าไปเท่าไหร่ก็ได้ไม่เคยเต็ม (ระบบขยายขนาดโกดังให้เองเรื่อยๆ แบบไม่มีที่สิ้นสุด) และแทนที่คุณจะบอกว่าของอยู่ไดรฟ์ C: หรือ D: คุณจะเรียกหาของชิ้นนั้นผ่าน "URL หรือชื่อเรียก" แทน
S3 (Simple Storage Service - บริการพื้นที่จัดเก็บข้อมูลอย่างง่าย) เป็นบริการจัดเก็บข้อมูลระดับออบเจกต์ (Object Storage) ที่โด่งดังและเก่าแก่ที่สุดของ AWS ข้อมูลจะถูกเก็บไว้ในพื้นที่ที่เรียกว่า Bucket (ถัง) รองรับการขยายตัวอัตโนมัติและเก็บไฟล์อะไรก็ได้ รูป, วิดีโอ, แบ็คอัป ไปจนถึงข้อมูลระดับบิ๊กดาต้า
- Bucket Name ต้องไม่ซ้ำใครในโลก! (Global uniqueness) เพราะชื่อของ Bucket จะกลายเป็นส่วนหนึ่งของ URL (เช่น
https://my-awesome-bucket.s3.amazonaws.com) - อัปโหลดไฟล์ (Object) ขนาดใหญ่สุดได้ถึง 5 TB ต่อ 1 ไฟล์ (โดยทยอยส่งขึ้นเป็นชิ้นส่วนย่อยๆ Multipart upload)
- สถาปัตยกรรมระดับภูมิภาค (Regional service): ถึงแม้ว่ามุมมองตอนเราใช้งานจะเห็น S3 โผล่รวมกันอยู่ (Global View) แต่เวลาเราสร้าง Bucket เราต้องเจาะจงเลือกว่าให้ Bucket นี้อยู่ Region ไหน ข้อมูลจะถูกกระจายเก็บไว้ในหลาย AZ ในภูมิภาคนั้นเพื่อความทนทาน (11 9s durability)
สรุป Key Takeaways
- S3 เป็น Object Storage ขยายขนาดไร้ขีดจำกัด
- ชื่อ bucket ต้องไม่ซ้ำใครในโลก เพราะต้องถูกสร้างเป็น URL
- ข้อมูลกระจายเก็บในหลาย AZ อัตโนมัติ (ทนทานมาก)
คำถามที่พบบ่อย
S3 ต่างจาก EBS และ EFS ยังไง
S3 เป็น object storage — เก็บไฟล์ทั้งก้อน เรียกผ่าน API/URL ไม่ต้องมีเครื่องมา mount ส่วน EBS เป็น block storage เหมือนฮาร์ดดิสก์ที่เสียบกับ EC2 ทีละเครื่อง และ EFS เป็น file system ที่หลายเครื่อง mount แชร์กันได้ ข้อสอบชอบให้เลือกจากลักษณะการใช้งานนี้
S3 ทนทานแค่ไหน ข้อมูลหายได้ไหม
S3 Standard ออกแบบมาให้ความทนทาน (durability) ระดับ 99.999999999% หรือที่เรียกว่า 11 นาย (11 9s) โดยกระจายสำเนาข้อมูลไว้อย่างน้อย 3 AZ ให้อัตโนมัติ — ความเสี่ยงหลักในทางปฏิบัติจึงไม่ใช่ AWS ทำข้อมูลหาย แต่เป็นคนในทีมเผลอลบเอง (แก้ด้วย Versioning)
เก็บไฟล์ใหญ่กว่า 5 TB ได้ไหม แล้วอัปโหลดไฟล์ใหญ่ยังไงให้เร็ว
1 object ใหญ่ได้สูงสุด 5 TB ถ้าไฟล์ใหญ่กว่านั้นต้องแตกเป็นหลาย object สำหรับไฟล์ที่ใหญ่เกิน 100 MB ขึ้นไป AWS แนะนำ Multipart Upload — แบ่งไฟล์เป็นชิ้นส่งขึ้นขนานกันหลายเส้น ทั้งเร็วขึ้นและถ้าชิ้นไหนพลาดก็ส่งซ้ำเฉพาะชิ้นนั้น
Bucket อยู่ region เดียว แล้วให้คนทั่วโลกโหลดเร็วๆ ทำยังไง
สองตัวช่วยหลักคือ CloudFront (เอา CDN มาแคชหน้า bucket — วิธีมาตรฐาน) และ S3 Transfer Acceleration (เร่งการอัปโหลดจากที่ไกลๆ เข้า bucket ผ่าน edge network ของ AWS) — โจทย์อัปโหลดช้าจากทั่วโลกให้นึกถึง Transfer Acceleration
ลองทำ Quiz ท้ายบท
คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

