AWS S3–101
AWS Simple Storage Service (S3) เป็นที่เราไว้เก็บ object หรืออะไรก็ได้ เป็น Object-based โดยขนาดของ Files ที่ Upload ขึ้นไปสามารถมีขนาดตั้งแต่ 0 Bytes จนถึง 5 TB โดยที่ความจุของ S3 นั้นมีไม่จํากัด
Files ที่ upload ขึ้นไปถูกเก็บในสิ่งที่เรียกว่า Buckets (ให้มองว่าเป็น Folder ในเครื่องคอมเรา) โดยชื่อของไฟล์จําเป็นต้อง unique เพราะว่ามัน globally ทั้ง AWS มันมีสิทธิ์ที่ชื่อจะซํ้ากันได้นั้นเอง
Data Consistency Model ใน S3
เนื่องจากการ upload data ขึ้น S3 มันสามารถทําได้พร้อมๆๆกันจากๆหลายที่ Data Consistency เลยสําคัญ โดยหลักของ S3 มีแค่ 2 อย่างคือ
- Read After Write Consistency
สําหรับ New Object ที่ถูก upload ขึ้นไป เราจะเป็นโหมด Read After Write แปลว่าทันที่ Upload file เสร็จ เราสามารถอ่านได้ทันทีเลย (PUTS HTTP method)
- Overwrite จะเป็น Eventual Consistency
สําหรับ Update/Modification/Delete Files จะต้องใช้เวลา update file นั้นเอง (PUTS & DELETE HTTP method)
S3 เป็นการเก็บข้อมูลแบบ Key-value
เพราะฉะนั้น Object ที่จะถูก Upload ขึ้นไป มันก็จะมีส่วนประกอบของ Key หลักๆๆๆคือ
- Key
เป็นชื่อของ Object
- Value
bytes ของ Object ที่เรา upload ขึ้นไป
- Version ID
ทํา Versioning ของ Files ถ้าโดน Update/Modification
- Meta Data
ข้อมูลเสริมของ object ที่เราใส่ขึ้นไป เช่นสมมุติเรา Upload รูปเราขึ้นไป เราอาจจะอยากใส่ metadata ว่า เป็นสถานที่เที่ยวที่ไหน
- Subresources
อันนี้จะเป็น Key เรื่องของ specific configuration ของ Bucket ที่เราเก็บ เช่น Bucket Policies, Access Control Lists หรือ Cross-Origin Resource Sharing (CORS) ซึ่งจะพูดถึงเรื่องพวกนี้ใน S3 Security อีกที
S3 Storage Tiers/Classes
ประเภทของการเก็บข้อมูลแบบต่างๆใน S3
- S3 Standard
Type นี้เป็น Type ปกติที่คนส่วนใหญ่ไม่ได้ปรับอะไรมากใช้คือ Standard ของ S3 เลย โดยจะมี Availability 99.99% และ Durability 99.999999999 % ซึ่งออกแบบให้มันปลอดด้วยการเก็บในหลายๆ Availability zone ด้วย
- S3 — IA (Infrequently Accessed)
เป็นการเก็บข้อมูลแบบไม่ได้เข้าถึง data บ่อยๆๆ แต่ต้องการจะเข้าถึงได้ทันทีเมื่อต้องการ ซึ่งราคาจะถูกกว่าแบบ Standard แต่จะโดนเก็บค่าดึงข้อมูล ส่วน Availability 99.9%
- S3 — One Zone IA (Infrequently Accessed)
มีคุณลักษณะเหมือน IA เลย เพียงแต่ว่ามันมีแค่ Single Availability Zone เท่านั้น แต่ Durability ของข้อมูลนี้ยังสูงมากคือ 99.999999999 % เพียงแต่ availability เหลือเพียง 99.5% เท่านั้น แต่ก็แลกกับราคาที่ถูกลงคือ 20% จาก S3 — IA นั้นเอง
- S3 — Reduced Redundancy Storage
99.99% สําหรับ Durability และ Availability เป็นข้อมูลที่หายได้และง่ายต่อการสร้างใหม่นั้นเอง เพราะ % ค่อนข้างตํ่า แต่ตอนนี้ Amazon ปรับราคาให้ Standard พอๆกับ RRS แล้ว
- S3 — Glacier
จุดเด่นคือราคาตํ่ามากๆๆ นิยมใช้กับการ Archival file เท่านั้น เพราะว่า Glacier จะใช้เวลาในการเข้าถึงข้อมูล 3–5 ชั่วโมง ไม่ได้เข้าไ้ดทันทีเหมือน S3 type อื่นๆนั้นเอง
- S3 — Intelligent Tiering
ตัวนี้พึ่ง Announce ใน AWS:reInvent 2018 เรื่องของ S3 Type ที่เราไม่สามารถ define pattern การเก็บข้อมูลได้
โดยมันจะทําการย้ายข้อมูลของเราไปในจุดที่ most cost-effective tier มากที่สุด ดูโดยจากเข้าถึง object ที่เราเก็บไว้ เช่น เข้าบ่อยอยู่ S3 Standard หรือ เข้านานๆๆทีอาจจะย้ายไป S3 — IA
S3 เก็บเงินเราจากอะไรบ้าง?
- Storage ที่เราใช้ไป per GB
- Requests ต่างๆที่เราเข้าถึงข้อมูล
- Storage Management พวก Analytics หรือ Object Tags
- Data Management Pricing (ถ้าเรา download file จาก S3 เราจะโดนเก็บเงิน)
- Transfer Acceleration (CloudFront ทําหน้าที่ cache ใน Edge location)