Advanced Amazon S3
เจาะลึก Lifecycle Rules, Event Notifications, Performance, Tags & Metadata สำหรับ DVA-C02
01ภาพรวม Advanced S3 และสิ่งที่ออกสอบ
หัวข้อ Advanced Amazon S3 ใน DVA-C02 ไม่ได้เน้นพื้นฐานการสร้าง bucket แต่เน้นการ optimize cost, performance และ event-driven architecture ข้อสอบมักเป็น scenario ให้เลือกเครื่องมือที่ถูกต้อง และถาม ตัวเลข limit ที่ต้องจำให้แม่น
- S3 Lifecycle Rules + Storage Class Analysis เพื่อ optimize cost ตามอายุและ access pattern
- S3 Event Notifications เพื่อ trigger SNS/SQS/Lambda หรือส่งเข้า EventBridge
- S3 Performance เช่น baseline throughput, multipart upload, Transfer Acceleration, byte-range fetches
- Object Tags & Metadata สำหรับ filter, access control และเก็บข้อมูลเสริม
02S3 Lifecycle Rules
S3 Lifecycle Rules ใช้จัดการ object อัตโนมัติตามอายุ เพื่อประหยัดค่าใช้จ่าย แบ่งเป็น 2 ประเภท action หลัก
- ใช้กับ noncurrent (previous) versions ได้แยกจาก current version (ต้องเปิด Versioning)
- ลบ incomplete multipart uploads ที่ค้างเกินจำนวนวันที่กำหนด เพื่อลด cost ที่มองไม่เห็น
- กำหนด scope ได้ด้วย prefix (เช่น logs/) และ/หรือ object tags หรือทั้ง bucket
- หนึ่ง bucket มีได้หลาย rule และแต่ละ rule มีได้ทั้ง transition และ expiration
03S3 Storage Class Analysis
S3 Storage Class Analysis ช่วยวิเคราะห์ access pattern เพื่อแนะนำว่าเมื่อใดควรย้าย object จาก Standard ไป Standard-IA โดยให้รายงานเป็น CSV รายวัน ใช้ประกอบการตั้ง Lifecycle Rules
- แนะนำเฉพาะการ transition ระหว่าง Standard และ Standard-IA เท่านั้น
- ไม่ครอบคลุม One-Zone-IA และ Glacier classes
- เป็นแค่ คำแนะนำ (recommendation) ไม่ได้ย้าย object ให้เอง ต้องใช้ Lifecycle Rules ทำจริง
- อัปเดตรายงานรายวัน ปกติเห็นผลหลังเปิดใช้ราว 24-48 ชั่วโมง
04S3 Event Notifications
S3 Event Notifications ส่งเหตุการณ์เมื่อเกิด event บน object เช่น object ถูกสร้าง ลบ หรือ restore เพื่อ trigger งานต่อ รองรับ destination ได้แก่ SNS, SQS, Lambda และส่งเข้า EventBridge
- event types ที่พบบ่อย: s3:ObjectCreated:* (Put/Post/Copy/CompleteMultipartUpload), s3:ObjectRemoved:*, s3:ObjectRestore:*, s3:Replication:*
- ต้องตั้ง resource (resource-based) policy ให้ S3 service principal เรียก destination ได้ เช่น SQS access policy, SNS topic policy, Lambda resource policy
- กรอง event ด้วย prefix/suffix ได้ (เช่น เฉพาะ .jpg ในโฟลเดอร์ images/)
- ใช้ SNS fan-out ส่ง event เดียวไปหลาย SQS queue ได้
05S3 Events เข้า Amazon EventBridge
การส่ง S3 events เข้า Amazon EventBridge ให้ความสามารถขั้นสูงเหนือกว่าการส่งตรงไป SNS/SQS/Lambda เหมาะเมื่อต้องการ advanced filtering และหลาย destination
- Advanced filtering ด้วย JSON rules (กรองตาม metadata, object size ฯลฯ)
- ส่งไปได้มากกว่า 18 AWS service destinations
- รองรับ Archive และ Replay ของ event
- มี capabilities เช่น reliable delivery, multiple destinations จาก event เดียว
| ประเด็น | Direct (SNS/SQS/Lambda) | EventBridge |
|---|---|---|
| Destinations | SNS, SQS, Lambda เท่านั้น | 18+ AWS services |
| Filtering | prefix/suffix พื้นฐาน | Advanced JSON filtering |
| Archive / Replay | ไม่มี | มี |
| Fan-out หลายปลายทาง | ต้องผ่าน SNS | รองรับในตัว |
06S3 Performance (Baseline & Throughput)
S3 scale อัตโนมัติและให้ throughput สูงมาก แต่ต้องจำ baseline ต่อ prefix ให้แม่น เพราะออกสอบบ่อย
- รองรับอย่างน้อย 3,500 requests/s สำหรับ PUT/COPY/POST/DELETE ต่อ prefix
- รองรับอย่างน้อย 5,500 requests/s สำหรับ GET/HEAD ต่อ prefix
- ไม่มี limit ของจำนวน prefix ใน bucket การกระจาย object ข้ามหลาย prefix เพิ่ม throughput แบบ horizontal
- prefix คือ path ระหว่างชื่อ bucket กับชื่อไฟล์ เช่น object key folder1/sub1/file => prefix คือ /folder1/sub1/
07Multipart Upload, Transfer Acceleration & Byte-Range Fetches
3 เทคนิคหลักในการ optimize การรับส่งข้อมูล ซึ่งทำงานคนละบทบาทและออกสอบให้แยกแยะ
| สถานการณ์ | เทคนิคที่ใช้ |
|---|---|
| upload ไฟล์ใหญ่ (>100MB, จำเป็น >5GB) | Multipart Upload |
| เร่ง upload/download ข้ามทวีป ผู้ใช้ทั่วโลก | S3 Transfer Acceleration |
| download ไฟล์ใหญ่แบบขนาน หรือดึงบางส่วน | Byte-Range Fetches |
คำถามทบทวน
ทดสอบความเข้าใจหัวข้อ Advanced Amazon S3
18 ข้อ · เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย
1.ทีมต้องการย้ายไฟล์อัตโนมัติไปยัง S3 Glacier Flexible Retrieval หลังจากผ่านไป 90 วัน และลบทิ้งหลังจาก 365 วัน ควรใช้อะไร?
2.S3 baseline performance รองรับได้กี่ request ต่อ prefix ต่อวินาที?
3.องค์กรไม่แน่ใจว่าควรตั้งค่า Lifecycle transition เมื่อใด ต้องการคำแนะนำจากการวิเคราะห์ access pattern ระหว่าง Standard และ Standard-IA ควรใช้อะไร?
4.ต้องการ upload ไฟล์ขนาด 8GB เข้า S3 ข้อใดถูกต้อง?
5.ต้องการ trigger Lambda function ทุกครั้งที่มี object ใหม่ถูกสร้างใน S3 bucket ต้องตั้งค่าอะไรเพิ่มเพื่อให้ทำงาน?
6.ต้องการ filter S3 event และส่งไปยังหลาย destination พร้อมความสามารถ archive/replay ควรใช้อะไร?
7.ต้องการเร่งความเร็วการ upload ไฟล์จากผู้ใช้ทั่วโลกไปยัง S3 bucket ในภูมิภาคเดียว ควรใช้อะไร?
8.S3 object tags ใช้ทำอะไรได้บ้าง และจำกัดจำนวนเท่าใด?
9.user-defined metadata ใน S3 ต้องขึ้นต้นด้วย prefix ใด?
10.ต้องการดาวน์โหลดไฟล์ขนาดใหญ่ให้เร็วขึ้นโดยดึงข้อมูลแบบขนาน ควรใช้เทคนิคใด?
11.Lifecycle Rule ข้อใดเกี่ยวกับ S3 Versioning ที่ถูกต้อง?
12.ต้องการให้ S3 ทำความสะอาด multipart upload ที่ค้างไม่สมบูรณ์เพื่อลดค่าใช้จ่ายอัตโนมัติ ควรใช้อะไร?
13.องค์กรพบ latency สูงและบางครั้ง S3 event notification ส่งซ้ำ ข้อใดอธิบาย delivery ของ S3 Event Notifications ได้ถูกต้อง?
14.ต้องการให้ Lifecycle Rule มีผลเฉพาะ object ที่อยู่ใน path 'logs/' และมี tag 'archive=true' เท่านั้น ทำได้อย่างไร?
15.event type ใดใน S3 ที่ใช้ตรวจจับการสร้าง object ทุกรูปแบบ (PUT, POST, COPY, multipart complete)?
16.แอปต้องการ upload ไฟล์ 150MB ให้เสถียรและเร็วขึ้น คำแนะนำที่ถูกต้องที่สุดคือ?
17.ต้องการ fan-out ส่ง S3 event เดียวกันไปยังหลาย SQS queue ควรออกแบบอย่างไร?
18.ข้อใดเกี่ยวกับ S3 Storage Class Analysis ที่ถูกต้อง?