ข้ามไปเนื้อหาหลัก
จัดเก็บข้อมูล· ~14 นาที· อัปเดตล่าสุด

S3 Basics

ที่เก็บไฟล์แบบไม่จำกัดขนาดที่ครอบจักรวาล

โกดังเก็บของสารพัดนึก

EBS เหมือนฮาร์ดดิสก์ที่คุณเสียบคาไว้กับคอมพิวเตอร์ (ขนาดตายตัว) แต่ S3 คือโกดังวิเศษที่โยนของเข้าไปเท่าไหร่ก็ได้ไม่เคยเต็ม (ระบบขยายขนาดโกดังให้เองเรื่อยๆ แบบไม่มีที่สิ้นสุด) และแทนที่คุณจะบอกว่าของอยู่ไดรฟ์ C: หรือ D: คุณจะเรียกหาของชิ้นนั้นผ่าน "URL หรือชื่อเรียก" แทน

S3 (Simple Storage Service - บริการพื้นที่จัดเก็บข้อมูลอย่างง่าย) เป็นบริการจัดเก็บข้อมูลระดับออบเจกต์ (Object Storage) ที่โด่งดังและเก่าแก่ที่สุดของ AWS ข้อมูลจะถูกเก็บไว้ในพื้นที่ที่เรียกว่า Bucket (ถัง) รองรับการขยายตัวอัตโนมัติและเก็บไฟล์อะไรก็ได้ รูป, วิดีโอ, แบ็คอัป ไปจนถึงข้อมูลระดับบิ๊กดาต้า

ไดอะแกรม "s3-structure"
ข้อมูล (Object) เก็บในถัง (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 ข้อ · เฉลยทันที

อ่านจบแล้วอย่าลืมทำเครื่องหมาย