Amazon S3 คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS

นี่เป็นบทความแปล ที่มีเนื้อหามาจากบทความภาษาญี่ปุ่นของ Classmethod, Inc. ในหัวข้อ「AWS再入門ブログリレー Amazon S3編」 หากผู้อ่านสนใจอ่านเนื้อหาต้นฉบับสามารถอ่านได้ที่ลิ้งค์ "บทความต้นฉบับ" ด้านล่าง เนื้อหาในบทความนี้การอธิบายบางอย่างจะถูกปรับให้เข้าใจง่ายขึ้นทำให้แตกต่างจากต้นฉบับในบางจุด
2022.06.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีค่ะทุกคน อิม จากฝ่ายที่ปรึกษาสำนักงานใหญ่ธุรกิจ AWS ค่ะ(เจ้าของบทความเป็นผู้หญิง แต่คนแปลเป็นผู้ชายครับ)

รายการนี้จะเขียนเกี่ยวกับ AWS ปี 2022 ฉบับเบื้องต้น โดยฝ่าย Consulting ของบริษัทเราเอง นี่เป็นบทความที่จะมาเล่าเกี่ยวกับเนื้อหา AWS Service มาเล่าใหม่อีกครั้งว่ามีอะไรถูกอัพเดทอะไรบ้างแล้ว
แบบละเอียด/เจาะลึกตั้งแต่เบสิกพร้อมคำอธิบาย โดยเหล่าสมาชิกที่เคยเขียนบทความเหล่านี้มาแล้ว

เหมาะสำหรับผู้ที่ต้องการเริ่มเรียนเกี่ยวกับ AWS หรือผู้ที่ใช้งาน AWS อยู่แล้ว แต่ต้องการหาความรู้ใหม่ว่าปี 2022 มีการอัพเดทอะไรบ้าง หากคุณใช่บุคคลเหล่านี้
ทางผู้เขียนก็หวังว่าบทความนี้จะเป็นประโยชน์สำหรับคุณค่ะ

งั้นก็ไปเริ่มกันเลยค่ะ Theme ในวันนี้คือ "AWS Amazon S3" ค่ะ

S3 คืออะไร


Amazon Simple Storage Service(Amazon S3) คือ Object Storage Service ที่มีความสามารถในการปรับขนาด, การเตรียมความพร้อมใช้งานของข้อมูล, และ ความปลอดภัย ครับ

Bucket・Object

  • Bucket คือ ที่ๆนึงสำหรับอัพโหลดข้อมูล(รูปภาพ, วิดีโอ, Textต่างๆ)
  • Object คือ ข้อมูล(รูปภาพ, วิดีโอ, Textต่างๆ)ที่ถูกอัพลงใน Bucket

ประเภทคลาสพื้นที่จัดเก็บ Amazon S3

Amazon S3 มาตรฐาน(S3 Standard)

  • Object Storage ที่มีความสามารถในการปรับขนาด, การเตรียมความพร้อมใช้งานของข้อมูล, และ ความปลอดภัยสำหรับ "ข้อมูลที่เข้าใช้บ่อย"
  • มี Latency ที่ต่ำ และ สามารถทำงานได้ในปริมาณที่สูง
  • Usecase: ทั่วไป
    • Cloud Application
    • Dynamic website
    • สำหรับแจกจ่ายไฟล์
    • Moblie หรือ Game Application
    • Big data analysis
    • อื่นๆ

Amazon S3 การจัดการแบบอัจริยะ(S3 Intelligent-Tiering)

  • Cloud Storage ที่ลดต้นทุนการจัดเก็บโดยอัตโนมัติในระดับ Subdivided object ที่จะเคลื่อนย้าย Data ไปยัง Access Tier ที่ค่าใช้จ่ายเหมาะสมที่สุดตามความถี่ของ Access ที่เกิดขึ้น โดยไม่กระทบต่อความสามารถของ Storage และค่าธรรมเนียมการค้นหาและภาระการจัดการ
  • ให้บริการข้อมูลที่มียอด Access ที่ไม่แน่นอน( Access บ่อย, ไม่บ่อย, แทบจะไม่มี) ที่มี Latency ที่ต่ำ และ สามารถทำงานได้ในปริมาณที่สูง
  • Usecase: Access ที่ไม่ทราบยอด หรือ ไม่แน่นอน
    • Data lake
    • Data analysis
    • Application ใหม่ๆ หรือ Basic Class ที่จัดเก็บพื้นฐานสำหรับเนื้อหาที่ผู้ใช้สร้างขึ้น

Amazon S3 มาตรฐาน - เข้าถึงไม่บ่อย(S3 Standard-IA)

  • เหมาะสำหรับข้อมูลที่ไม่ค่อยเข้าใช้ แต่เมื่อเข้าใช้อยากให้โหลดเร็วๆ
  • ให้บริการ Cloud Storage ที่มีความทนทานที่เหนือกว่าของ S3 Standard มี Latency ที่ต่ำ และ สามารถทำงานได้ในปริมาณที่สูง ด้วยพื้นที่จัดเก็บ GB ที่ถูก และเสียค่าธรรมเนียมที่ต่ำเมื่อเข้าไปค้นหาไฟล์
  • Usecase: ไม่ค่อยมี Access แต่อยากเข้าเร็วๆ
    • Long-term storage
    • Data store สำหรับ backup และ disaster recovery files

Amazon S3 มาตรฐาน - เข้าถึงไม่บ่อย One Zone(S3 One Zone-IA)

  • เหมาะสำหรับข้อมูลที่ไม่ค่อยเข้าใช้ แต่เมื่อเข้าใช้อยากให้โหลดเร็วๆ
  • จัดเก็บอยู่ใน Availability zone เดียว(ปกติอันอื่นจะจัดเก็บอยู่ใน 3 Availability zone) ทำให้มีราคาถูกกว่า S3 Standard-IA 20%
  • ให้บริการความทนทานที่เหนือกว่าของ S3 Standard มี Latency ที่ต่ำ และ สามารถทำงานได้ในปริมาณที่สูง ด้วยพื้นที่จัดเก็บ GB ที่ถูก และเสียค่าธรรมเนียมที่ต่ำเมื่อเข้าไปค้นหาไฟล์
  • Usecase:
    • สำหรับข้อมูลที่ไม่ค่อยได้เข้าใช้ แต่พอเข้าแต่อยากเข้าเร็วๆ และไม่ต้องการการเตรียมความพร้อมใช้งานของข้อมูล และ ความสามารถในการ Backup เหมือน S3 Standard หรือ S3 Standard-IA
    • สำหรับกรณีเป็นข้อมูลที่สร้างขึ้นมาได้ง่าย หรือ เป็นข้อมูลเก็บไว้ใน On-premise อยู่แล้ว แล้วต้องการสร้าง Backup ไว้บน Cloud

Amazon S3 Glacier Instant Retrieval

  • เป็น Archive storage class ที่ให้บริการจัดเก็บไฟล์ระยะยาวมีค่าใช้จ่ายที่ถูกที่สุดสำหรับการเก็บไฟล์ที่ไม่ค่อยได้เข้าไปค้นหา หรือ เปิดดูไฟล์(โดยถ้าจะไปเปิดดูก็ใช้เวลาระดับมิลลิวินาทีเท่านั้น)
  • มีความสามารถซัพพอร์ตการเหมาะสำหรับการทำงานได้ในปริมาณที่สูงและใช้เวลาในการเปิดดูไฟล์ในระดับมิลลิวินาทีเหมือนกับ S3 Standard หรือ S3 Standard-IA โดยเจ้าตัวนี้เป็น Archive storage ที่เชื่อมต่อได้เร็วที่สุด
  • Usecase:
    • เหมาะอย่างยิ่งสำหรับข้อมูลที่เก็บถาวรที่ต้องการการเข้าถึงทันที เช่น รูปภาพทางการแพทย์ เนื้อหาสื่อข่าว หรือ Archive ของเนื้อหาที่ผู้ใช้สร้างขึ้น

Amazon S3 Glacier Flexible Retrieva

  • เป็น Archive storage class ที่ถูกกว่า S3 Glacier Instant Retrieval 10% เหมาะสำหรับใช้เก็บไฟล์มีโอกาสได้ใช้ปีละ 1 -2 ครั้ง
  • คลาสพื้นที่จัดเก็บในอุดมคติสำหรับเก็บ Archive storage ที่ไม่ต้องการการเข้าถึงในทันที แต่ต้องการความยืดหยุ่นในเข้าใช้งานเพื่อดูไฟล์ชุดข้อมูลขนาดใหญ่ได้ฟรี กรณีการใช้งานเช่น การ Backup ไฟล์ หรือ Restore ไฟล์ในกรณีไฟล์จริงเกิดอุบัติเหตุ
  • มีความยืดหยุ่นในการเรียกดูข้อมูลชุดใหญ่โดยไม่มีค่าใช้จ่าย และ ในการเปิดไฟล์แต่ละครั้งจำเป็นจะต้องใช้เวลาตั้งแต่หลักนาทีจนถึงชั่วโมง
  • Usecase:
    • ต้องการตรวจหาไฟล์ข้อมูลในหลักนาที(ถึงจะเจอ) และไม่ต้องการกังวลเกี่ยวกับเรื่องค่าใช้จ่าย
    • การ Backup ไฟล์ หรือ Restore ไฟล์ในกรณีไฟล์จริงเกิดอุบัติเหตุ

Amazon S3 Glacier Deep Archive

  • เป็น Archive storage class ที่ถูกที่สุด เหมาะสำหรับใช้เก็บไฟล์ที่ต้องการเก็บในระยะยาวมีโอกาสได้ใช้ปีละ 1 -2 ครั้ง หรือไม่ได้ใช้เลย
  • ในข้อกำหนดจำเป็นต้องเก็บรักษาในระยะ 7-10 ปี จึงจะสามารถใช้งานได้ (โดยเฉพาะบริการทางการเงิน การดูแลสุขภาพ และภาครัฐที่มีลูกค้าในอุตสาหกรรมที่มีการควบคุมอย่างเข้มงวด)
  • หรือใช้เป็น storage เสริมให้ Amazon S3 Glacier อันอื่น มีเวลาค้นหาข้อมูลที่ตายตัวเป็นประจำ(ใช้เวลานานถึงจะเปิดไฟล์ได้) (ข้อมูลบางส่วนสามารถใช้ได้ภายในไม่กี่นาที)
  • ใช้สำหรับการ Backup ไฟล์ หรือ Restore ไฟล์ในกรณีไฟล์จริงเกิดอุบัติเหตุได้

Amazon S3 on Outposts

  • ใช้จัดเตรียมพื้นที่จัดเก็บข้อมูลสำหรับสภาพแวดล้อม AWS Outposts ของ On-premiese
  • ถ้าใช้ S3 API ที่อยู่ในแต่ละ AWS Region กับฟังก์ชั่นต่างๆ ก็จะสามารถจัดเก็บ, ค้นหาข้อมูล, รักษาความปลอดภัยข้อมูล, การควบคุมการเข้าถึง, แท็ก, และ รวมไปถึงการเขียนรายงาน ใน Outpost ได้อย่างง่ายดายด้วย S3 on Outpost
  • Usecase:
    • Workloads ที่จำเป็นต้องมี local data residency
    • สามารถจัดเก็บข้อมูลไว้ใกล้ On-premises application เพื่อตอบสนองความต้องการด้านประสิทธิภาพที่เข้มงวด

สรุปเกี่ยวกับ storage class

S3 Standard S3 Intelligent-Tiering S3 Standard-IA S3 One Zone-IA S3 Glacier Instant Retrieval S3 Glacier Flexible Retrieval S3 Glacier Deep Archive
ออกแบบมาเพื่อความพร้อมใช้งาน 99.99% 99.9% 99.9% 99.5% 99.9% 99.99% 99.99%
Availability zone ≥3 ≥3 ≥3 1 ≥3 ≥3 ≥3
ค่าบริการเรียกดูข้อมูล ไม่มี ไม่มี ต่อ GB ที่ดึงข้อมูล ต่อ GB ที่ดึงข้อมูล ต่อ GB ที่ดึงข้อมูล ต่อ GB ที่ดึงข้อมูล ต่อ GB ที่ดึงข้อมูล
ค่าใช้จ่ายตามความจุขั้นต่ำต่ออ็อบเจ็กต์ ไม่มี ไม่มี 128 KB 128 KB 128 KB 40 KB 40 KB
ค่าใช้จ่ายตามระยะเวลาการจัดเก็บขั้นต่ำ ไม่มี ไม่มี 30 วัน 30 วัน 90 วัน 90 วัน 180 วัน
Latency ของไบต์แรก มิลลิวินาที มิลลิวินาที มิลลิวินาที มิลลิวินาที มิลลิวินาที นาทีหรือชั่วโมง ชั่วโมง

โดยทาง AWS Offical เองก็มีบทความที่เขียนเกี่ยวกับ S3 เหมือนกันโดยสามารถเข้าไปดูได้ที่ลิ้งค์ด้านล่างนี้

Life Cycle

  • Life Cycle คือฟังก์ชันที่จะควบคุมวงจรชีวิตของ Object ที่ถูกอัพลงใน Bucket
  • พอเวลาผ่านไป เราสามารถเลือกได้ว่าจะให้ลบไฟล์ที่ไม่ได้ใช้ หรือเปลี่ยนไป Backup โดยวิธีอื่น เพื่อประหยัดพื้นที่ของ S3 และค่าใช้จ่ายต่างๆ
  • เวลาที่เราควรใช้ฟังก์ชั่นนี้ได้แก่
    • หากต้องการอัปโหลด Logs ไปยัง Bucket เป็นระยะ
    • จัดการเอกสารที่เข้าถึงบ่อยในช่วงเวลาที่กำหนด
    • กำหนดจุดประสงค์ในการเก็บข้อมูล

โดยสามารถดูตัวอย่าง ของ Lifecycle ได้ที่

Versioning

Versioning หมายถึงการบันทึกสิ่งที่เปลี่ยนแปลงไปของ Object ที่บันทึกลงใน S3
ยกตัวอย่างเช่น เราเผลอลบหรือเปลี่ยนแปลง Object A ไป แต่เราใช้ Versioning ที่บันทึกการกระทำของเราก่อนๆของเรา ทำให้สามารถย้อนกลับได้ ทำให้ป้องกันการทำผิดได้ในระดับนึง

หากต้องการเรียนรู้เพิ่มเติมสามารถดูได้ที่นี่

ฟังก์ชัน CORS

  • วิธีการสำหรับเว็บแอปพลิเคชันไคลเอนต์ที่โหลดใน Domain หนึ่งและโต้ตอบกับทรัพยากรใน Domain อื่น
  • สร้างแอปพลิเคชันเว็บฝั่งไคลเอ็นต์ด้วยฟังก์ชันที่หลากหลายบน Amazon S3 ผ่านการรองรับ CORS และอนุญาตให้เข้าถึงทรัพยากร Amazon S3 แบบ Cross-Origin

ดูวิธีใช้ฟังก์ชัน CORS ได้ที่บทความด้านล่าง

Replication

Replication คือ ฟังก์ชันการคัดลอกอ็อบเจ็กต์แบบ asynchronous ระหว่าง Amazon S3 Bucket โดยอัตโนมัติ

  • Same-Region Replication
    • ฟังก์ชัน S3 ที่จำลองข้อมูลโดยอัตโนมัติระหว่าง Bucket ใน Region AWS เดียวกัน
    • Usecase:
      • compliance
      • Latency performance
      • Region efficiency
  • Cross-Region Replication
    • ฟังก์ชัน S3 ที่จำลองข้อมูลโดยอัตโนมัติระหว่าง Bucket ใน Region AWS ที่ต่างกัน
    • Usecase:
      • การรวม Logs ไว้ใน Bucket เดียว
      • Replication ระหว่าง developer และ test accounts
      • compliance กฎหมายอธิปไตยข้อมูล

S3 Object Lambda

  • เมื่อเราเก็บข้อมูลไว้ใน S3 ก็สามารถเชื่อมต่อกับหลายๆ Application ได้ง่ายๆ แต่ว่าแต่ละ Application ก็มีความต้องการที่แตกต่างกัน และก็มีบางครั้งที่ส่งค้นหาข้อมูลด้วยวิธีอื่น
    • เมื่อประมวลผลเพื่อการวิเคราะห์ชุดข้อมูลที่สร้างโดย Electronic commerce application: ควรแก้ไขข้อมูลประจำตัวส่วนบุคคล (PII)
    • หากใช้ชุดข้อมูลเดียวกันสำหรับ Marketing Campaign: ควรเสริมข้อมูลด้วยรายละเอียดเพิ่มเติม เช่น Customer loyalty database
  • ฟังก์ชันในการเพิ่มและประมวลผล Unique code ก่อนส่งคืนข้อมูลที่ดึงมาไปยังแอปพลิเคชัน
  • S3 Object Lambda จะทำงานร่วมกับแอปพลิเคชันที่มีอยู่ แล้วประมวลผลและแปลงข้อมูลที่ดึงมาใน S3 โดยอัตโนมัติโดยใช้ฟังก์ชัน AWS Lambda

โดยสามารถดูรายละเอียดเพิ่มเติมได้ที่บทความด้านล่างนี้

Security

Amazon S3 สามารถให้สิทธิ์การเข้าถึงแก่ผู้ใช้รายอื่นได้ โดยใช้ฟังก์ชันการจัดการการเข้าถึงที่มีอยู่ด้านล่างนี้

  • AWS Identity and Access Management (IAM)
    • สร้างผู้ใช้และจัดการการเข้าถึงของผู้ใช้
  • Access control list (ACL)
    • ทำให้แต่ละอ็อบเจ็กต์สามารถเข้าถึงได้โดยผู้ใช้ที่ได้รับอนุญาต
  • S3 Access Points
    • ฟังก์ชันในการสร้างจุดเชื่อมต่อที่มีชื่อกับ permission เฉพาะสำหรับแต่ละแอปพลิเคชันหรือชุดของแอปพลิเคชัน ทำให้การจัดการการเข้าถึงข้อมูลง่ายขึ้นสำหรับข้อมูลที่แชร์
  • Bucket Policy
    • กำหนดค่า permission สำหรับอ็อบเจ็กต์ทั้งหมดในหนึ่ง S3 Bucket
  • Query string authentication
    • ให้สิทธิ์การเข้าถึงแบบจำกัดเวลาแก่ผู้ใช้รายอื่นโดยใช้ URL

นอกจากนั้นยังมี

  • Logging options
    • ดูรายการคำขอ S3 Resource เพื่อดูว่าใครเข้าถึงข้อมูลใดบ้าง
  • Encryption
    • S3 ซัพพอร์ทการเข้ารหัสทั้งฝั่งเซิร์ฟเวอร์ (SSE-KMS, SSE-C, SSE-S3) และการเข้ารหัสฝั่งไคลเอ็นต์เมื่ออัปโหลดข้อมูล

สำหรับข้อมูลเพิ่มเติมสามารถดูได้ที่

สรุป

เป็นยังไงกันบ้างครับ กับ Amazon S3 โดยส่วนตัวผู้แปลแล้วตอนที่รู้จักกับ S3 แรกๆ รู้สึกว่ามันเหมือน Google Drive เลยครับ
เป็น Cloud Storage มีหน้าที่เก็บไฟล์ต่างๆ แต่พอเรียนรู้ไปเรื่อยๆทำให้ทราบว่า S3 สามารถปรับแต่งอะไรได้หลายอย่าง
เช่น ประเภทของตัวมันเอง การเขียน Policy หรือ Block IP เพื่อเพิ่มความสามารถด้านความปลอดภัย
และยังมีความสามารถในการเชื่อมกับ AWS service อื่นอีก ถือว่าเป็น 1 Service ที่มีความเข้าใจง่าย และ ลึกซึ้งในตัวมันเองสำหรับผมเลยครับ

บทความที่เกี่ยวข้อง

บทความต้นฉบับ