StorageSection 069 min read7 questions

S3

Simple Storage Service

Amazon S3 คือ Object Storage ระดับ infinitely scalable เก็บไฟล์ได้ไม่จำกัด มี durability 99.999999999% (11 nines) ใช้สำหรับ backup, DR, archive, hybrid cloud, hosting, media, data lakes, software delivery และ static website นอกจากนี้ AWS ยังมี Snow Family สำหรับ migrate ข้อมูลขนาดใหญ่เข้าสู่ S3

ในหน้านี้12 sections
  1. 01S3 Overview
  2. 02S3 Security
  3. 03S3 Static Website Hosting
  4. 04S3 Versioning
  5. 05S3 Access Logs
  6. 06S3 Replication (CRR & SRR)
  7. 07S3 Storage Classes
  8. 08S3 Object Lock & Glacier Vault Lock
  9. 09Shared Responsibility for S3
  10. 10AWS Snow Family
  11. 11AWS OpsHub
  12. 12Summary
01

S3 Overview

Amazon S3 เป็นหนึ่งในบริการหลักของ AWS โฆษณาว่าเป็น infinitely scaling storage เก็บข้อมูลในรูปแบบ objects ภายใน buckets ใช้กันอย่างแพร่หลายทั่วโลก

  • Buckets — container ระดับบนสุด ชื่อต้อง globally unique ทั่ว AWS (ทุก account, ทุก region)
  • Objects — ไฟล์ที่เก็บใน bucket ขนาดสูงสุด 5TB ต่อ object
  • Object Key = full path ของ object เช่น s3://my-bucket/folder1/folder2/file.txt
  • ไม่มีแนวคิดเรื่อง directory จริงๆ — มีแค่ keys ที่มี prefix ดูเหมือน folder
  • เป็น Regional service — bucket สร้างใน region ที่เลือก แต่ชื่อต้อง unique ทั่วโลก
  • ไฟล์ใหญ่กว่า 5GB ต้องใช้ Multi-Part Upload (แนะนำเริ่มที่ 100MB)

Backup & Storage

เก็บไฟล์ backup ทั่วไป — ทดแทน on-prem storage ได้ทันที

Disaster Recovery

Replicate ข้อมูลข้าม region (CRR) เพื่อรองรับเหตุการณ์ภัยพิบัติ

Archive

เก็บข้อมูลระยะยาวใน Glacier / Deep Archive ราคาถูกมาก

Hybrid Cloud Storage

ใช้คู่กับ on-prem ผ่าน Storage Gateway

Application Hosting

เก็บ static assets ของแอป (JS, CSS, รูป)

Media Hosting

เก็บไฟล์ vdo / รูป ขนาดใหญ่ — scalable มาก

Data Lakes & Big Data Analytics

เก็บ raw data จำนวนมหาศาลให้ Athena / Redshift / EMR ดึงไปใช้

Software Delivery

เผยแพร่ installer / update ให้ผู้ใช้ดาวน์โหลด

Static Website Hosting

Host website ที่ไม่มี backend (HTML, CSS, JS) โดยตรงจาก S3

02

S3 Security

S3 Security แบ่งเป็น User-Based (ใครเข้าได้) และ Resource-Based (resource อนุญาตใคร) — สามารถใช้ร่วมกันได้

User-Based: IAM Policies

กำหนดในระดับ IAM user/role/group ว่า API call ใดบ้างที่อนุญาตสำหรับ user คนนั้นกับ S3

Resource-Based: Bucket Policies

JSON policy ติดที่ bucket — ใช้บ่อยที่สุด อนุญาต cross-account access ได้และ make bucket public ได้

Resource-Based: Object ACL

Access Control List ระดับ object — fine grained (เปิด/ปิดได้ในการตั้งค่า bucket)

Resource-Based: Bucket ACL

ACL ระดับ bucket — พบไม่บ่อยแล้ว (legacy, AWS แนะนำใช้ bucket policy แทน)

กฎ: IAM principal เข้าถึง S3 object ได้เมื่อ (IAM permission อนุญาต OR resource policy อนุญาต) AND ไม่มี explicit DENY

ตัวอย่าง S3 Bucket Policy — อนุญาต public read ทุก object
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
  • Resources — ระบุ bucket / object ที่ policy มีผล (ARN)
  • Effect — Allow หรือ Deny
  • Actions — API call เช่น s3:GetObject, s3:PutObject
  • Principal — ใคร (account / user / role) ที่ policy นี้มีผลกับ — ใช้ * หมายถึงใครก็ได้ (public)
  • Networking: รองรับ VPC Endpoint เข้าจาก VPC โดยไม่ต้องผ่าน internet
  • Logging & Audit: CloudTrail log API call, S3 Access Logs log การเข้าถึง object
  • User Security: MFA Delete ต้องมี MFA ก่อนลบ object (ใช้ได้เมื่อเปิด Versioning)
03

S3 Static Website Hosting

S3 สามารถ host static website (HTML, CSS, JS, รูป) ได้โดยตรงโดยไม่ต้องมี server — เปิดผ่าน internet ได้ทันที

  • เปิด Static Website Hosting ใน bucket settings
  • กำหนด index document (เช่น index.html) และ error document (เช่น error.html)
  • URL format: http://bucket-name.s3-website-aws-region.amazonaws.com หรือ http://bucket-name.s3-website.aws-region.amazonaws.com
  • Bucket ต้องเป็น public — ต้องปิด Block Public Access และตั้ง bucket policy ให้ allow public read (s3:GetObject)
  • ถ้าไม่ตั้ง bucket policy ที่อนุญาต public read จะได้ 403 Forbidden
04

S3 Versioning

S3 Versioning เก็บ version เก่าของ object ไว้ทุกครั้งที่มีการ overwrite หรือ delete — เปิดได้ที่ ระดับ bucket

  • ทุกครั้งที่ upload ไฟล์ซ้ำชื่อเดิม จะได้ version ID ใหม่ (version เก่ายังอยู่)
  • การ delete จะใส่ delete marker แทนการลบจริง — กู้คืนได้โดยการลบ delete marker ออก
  • ป้องกันการลบโดยไม่ตั้งใจ (unintended deletes) และทำ rollback ได้ง่าย
  • ไฟล์ที่มีอยู่ก่อนเปิด versioning จะมี version ID = null
  • Suspending versioning ไม่ได้ลบ version เก่า — แค่หยุดสร้าง version ใหม่
05

S3 Access Logs

S3 Access Logs ใช้สำหรับ audit purpose — บันทึกทุก request ที่เข้ามาที่ S3 bucket (ทั้ง authorized และ unauthorized)

  • Log จะถูกเขียนไปยัง S3 bucket อื่น (logging bucket) — ไม่ใช่ bucket ตัวเอง
  • บันทึก: ใครเข้า, request type, time, status code, error code, etc.
  • Logging bucket ต้องอยู่ใน region เดียวกัน กับ bucket ที่ถูก log
  • ใช้วิเคราะห์ผ่าน Athena ได้
06

S3 Replication (CRR & SRR)

S3 Replication คือการ copy objects อัตโนมัติ จาก source bucket ไปยัง destination bucket — ต้องเปิด Versioning ทั้งสองฝั่ง

CRR — Cross-Region Replication

Replicate ข้าม region — ใช้สำหรับ compliance, lower latency access จาก region อื่น, replication ข้าม account

SRR — Same-Region Replication

Replicate ภายใน region เดียวกัน — ใช้สำหรับ log aggregation, live replication ระหว่าง production และ test accounts

  • ต้องเปิด Versioning ทั้ง source และ destination
  • Buckets อยู่คนละ AWS account ได้
  • Replication เป็น asynchronous (ไม่ทันที)
  • ต้องให้ IAM permission ที่เหมาะสมกับ S3 (S3 ทำหน้าที่ replicate ในนามคุณ)
  • Object ที่มีอยู่ก่อนเปิด replication จะ ไม่ ถูก replicate อัตโนมัติ — ต้องใช้ S3 Batch Replication
  • Delete operations: replicate delete marker ได้ (optional), แต่ permanent delete พร้อม version ID จะไม่ replicate (กันการ malicious delete)
07

S3 Storage Classes

S3 มี Storage Classes 6 แบบหลัก (Glacier มี 3 sub-tiers) — เลือกตาม ความถี่ในการเข้าถึง และ ค่าใช้จ่าย ที่ยอมรับได้ — ทุก class มี durability 99.999999999% (11 nines) เหมือนกัน

S3 Standard — General Purpose

เข้าถึงบ่อย — availability 99.99%, low latency, high throughput, ใช้กับ big data, mobile/gaming apps, content distribution

S3 Standard-IA (Infrequent Access)

เข้าถึงไม่บ่อยแต่ต้องการเร็วเมื่อเข้าถึง — availability 99.9%, ค่าเก็บถูกกว่า Standard แต่มี retrieval fee ต่อ GB · ใช้กับ DR, backup

S3 One Zone-IA

Infrequent Access แต่เก็บใน AZ เดียวavailability 99.5%, ถูกกว่า Standard-IA ~20% ข้อมูลหายถ้า AZ พัง · เหมาะกับข้อมูลที่สร้างใหม่ได้, secondary backup

S3 Intelligent-Tiering

ย้าย object ระหว่าง tiers อัตโนมัติ ตามการใช้งาน — มี monitoring fee เล็กน้อยแต่ ไม่มี retrieval fee ไม่ต้องคิด lifecycle เอง · เหมาะเมื่อไม่รู้ pattern การเข้าถึง

S3 Glacier — Archive

ราคาถูกสำหรับ archive · retrieval มี 3 ระดับ: Expedited 1-5 นาที, Standard 3-5 ชม., Bulk 5-12 ชม. · ขั้นต่ำ 90 วัน

S3 Glacier Deep Archive

ถูกที่สุด — สำหรับข้อมูลที่แทบไม่เข้าถึง (long-term archive) · retrieval: Standard 12 ชม., Bulk 48 ชม. · ขั้นต่ำ 180 วัน

  • Durability: ทุก class = 99.999999999% (11 nines) — เก็บ 10 ล้าน objects โดยเฉลี่ยจะหาย 1 object ทุกๆ 10,000 ปี
  • Availability: ต่างกันตาม class · Standard 99.99% > Standard-IA 99.9% > One Zone-IA 99.5%
  • ย้าย class ได้ด้วยตนเอง หรือใช้ S3 Lifecycle Rules ย้ายอัตโนมัติตามอายุ object
08

S3 Object Lock & Glacier Vault Lock

S3 Object Lock และ Glacier Vault Lock ใช้รูปแบบ WORM (Write Once Read Many) — เขียนแล้วลบ/แก้ไม่ได้ในช่วงเวลาที่กำหนด เหมาะกับ compliance

S3 Object Lock

Block delete / overwrite object version เป็นเวลาที่กำหนด หรือ indefinitely · ใช้กับ compliance เช่น financial records, healthcare data — ต้องเปิด Versioning

S3 Glacier Vault Lock

ใช้ WORM กับ Glacier Vault — สร้าง Vault Lock Policy แล้ว lock ห้ามแก้ไขหรือลบนโยบายนี้ตลอดไป · เหมาะ regulatory compliance, data retention

09

Shared Responsibility for S3

S3 ก็ใช้ Shared Responsibility Model เหมือนบริการอื่น — AWS ดูแล infrastructure ส่วนผู้ใช้รับผิดชอบเรื่อง config และ data

AWS รับผิดชอบ

Infrastructure (global security, durability, availability, sustainability) · Configuration และ vulnerability analysis · ความพร้อมของ service-side encryption · Compliance validation · Separation ระหว่าง customer (multi-tenant)

ผู้ใช้รับผิดชอบ

S3 Versioning · Bucket Policies / IAM Policies · Replication setup · Logging and monitoring · Storage Classes selection · Encryption settings (เลือกใช้ SSE-S3 / SSE-KMS / SSE-C / Client-side)

10

AWS Snow Family

AWS Snow Family คือชุดอุปกรณ์ physical portable ที่ highly secure ใช้สำหรับ collect และ process data นอก AWS — ใช้ทั้งงาน data migration เข้าสู่ AWS และ edge computing ในพื้นที่ที่เน็ตไม่ดี

Use cases สองด้าน:

1. Data Migration

ขนข้อมูลจำนวนมากเข้า AWS โดยส่งอุปกรณ์ทางไปรษณีย์ — Snowcone, Snowball Edge, Snowmobile

2. Edge Computing

Process data ในที่ที่ไม่มี internet หรือเน็ตช้า เช่น เรือ เหมือง สถานที่ห่างไกล — รัน EC2 Instances + Lambda functions ผ่าน AWS IoT Greengrass

อุปกรณ์ในตระกูล Snow:

Snowcone (& Snowcone SSD)

เล็กที่สุด — น้ำหนัก 4.5 lbs (2.1 kg) · พื้นที่ 8 TB HDD (Snowcone) หรือ 14 TB SSD · ใช้ในที่จำกัดพื้นที่ (drone, IoT, vehicle) · ทนทาน secure rugged

Snowball Edge — Storage Optimized

80 TB HDD capacity · เหมาะกับงาน data migration ขนาดใหญ่ · มี clustering ได้

Snowball Edge — Compute Optimized

42 TB HDD + GPU optional · เหมาะกับงาน edge computing, machine learning, video analytics, local computing

Snowmobile

ตู้คอนเทนเนอร์ 45 ฟุต ลากด้วยรถบรรทุก! · ความจุ up to 100 PB ต่อคัน · เหมาะเมื่อต้อง migrate มากกว่า 10 PB · มี GPS tracking, 24/7 video surveillance, security personnel

ขั้นตอนการใช้งาน Snow Family (Data Migration):

  • 1. Request Snow device จาก AWS Console
  • 2. AWS ส่งอุปกรณ์มาทางไปรษณีย์
  • 3. ติดตั้ง AWS OpsHub software บนเครื่อง client เพื่อจัดการอุปกรณ์
  • 4. Connect Snow device เข้า network และ copy ไฟล์ เข้าอุปกรณ์
  • 5. Ship อุปกรณ์กลับ AWS
  • 6. AWS โหลดข้อมูลขึ้น S3 bucket ที่ระบุ
  • 7. AWS wipe อุปกรณ์ตามมาตรฐาน NIST
11

AWS OpsHub

AWS OpsHub คือ software application ที่ AWS แจกฟรี — ใช้จัดการ Snow Family devices ผ่าน GUI แทน CLI เดิม (เมื่อก่อนต้องใช้ command line ยุ่งยาก)

  • ติดตั้งบน laptop / desktop ของผู้ใช้ (Windows, macOS, Linux)
  • Unlock และ configure Snow device แต่ละเครื่อง
  • Drag-and-drop ไฟล์เข้า device
  • Launch และจัดการ EC2 Instances บน Snowball Edge / Snowcone
  • Monitor device metrics (capacity, network, storage)
  • Manage AWS services ที่รันบน device — IoT Greengrass, EC2, S3 compatible storage
12

Summary

  • S3 Buckets vs Objects — global unique name, tied to a region
  • S3 Security — IAM policy, S3 Bucket Policy (public access), S3 Encryption
  • S3 Websites — host static website on Amazon S3
  • S3 Versioning — multiple versions for files, prevent accidental deletes
  • S3 Access Logs — log requests made within your S3 bucket
  • S3 Replication — same-region or cross-region, must enable versioning
  • S3 Storage Classes — Standard, IA, 1Z-IA, Intelligent, Glacier, Glacier Deep Archive
  • S3 Object Lock — WORM model, prevent deletes for a defined time
  • Snow Family — physical devices to transfer data into AWS or run edge computing
  • OpsHub — desktop application to manage Snow Family devices
  • Shared Responsibility — AWS handles infra; you handle config, policy, encryption
ทดสอบ

คำถามทบทวน

7 ข้อ — เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย

ข้อ 1 / 7คะแนน 0

บริษัทต้องการเก็บข้อมูล archive ที่แทบไม่เคยเข้าถึง โดยยอมรับ retrieval time ได้ถึง 12 ชั่วโมง ต้องการต้นทุนที่ ถูกที่สุด ควรใช้ Storage Class ใด?