Amazon S3
S3 là gì?
S3 (Simple Storage Service) là dịch vụ lưu trữ object của AWS. Bạn lưu file (object) vào bucket (tương tự thư mục gốc).
Điểm quan trọng:
- S3 trông có vẻ là global, nhưng bucket thực ra được tạo ở một region cụ thể
- Tên bucket phải unique toàn cầu (across all accounts, all regions)
- Không có khái niệm “thư mục con” thực sự – chỉ là key có dấu
/trong tên
Object & Key
- Key = đường dẫn đầy đủ, ví dụ:
s3://my-bucket/folder/file.txt - Key = prefix + object name
- Object size tối đa: 5 TB, nếu upload > 5 GB phải dùng multi-part upload
- Object có thể đính kèm: Metadata, Tags (tối đa 10), Version ID
S3 Security
| Loại | Mô tả |
|---|---|
| IAM Policy | Gắn vào user/role, kiểm soát quyền gọi API |
| Bucket Policy | JSON policy gắn vào bucket, dùng cho public access hoặc cross-account |
| ACL (Object/Bucket) | Kiểm soát chi tiết hơn, ít dùng hơn |
Nguyên tắc truy cập: IAM cho phép HOẶC Bucket Policy cho phép → được truy cập, TRỪ KHI có explicit DENY.
Block Public Access: Bật mặc định để ngăn data leak. Nên để ON nếu bucket không cần public.
S3 Bucket Policy – cấu trúc JSON
{
"Effect": "Allow" | "Deny",
"Principal": "*" | "arn:aws:iam::...",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::bucket-name/*"]
}Dùng khi: cấp public access, force encrypt khi upload, grant cross-account access.
S3 Versioning
- Bật ở bucket level
- Cùng một key upload lại → tạo version mới (1, 2, 3…)
- File tồn tại trước khi bật versioning → version = null
- Suspend versioning không xóa version cũ
- Lợi ích: khôi phục file bị xóa nhầm, rollback
S3 Replication
Phải bật versioning ở cả source lẫn destination.
| Loại | Mô tả | Use case |
|---|---|---|
| CRR (Cross-Region) | Replication sang region khác | Compliance, giảm latency |
| SRR (Same-Region) | Replication trong cùng region | Log aggregation, dev/prod sync |
Copying là asynchronous, cần cấp IAM permission phù hợp.
S3 Storage Classes
| Storage Class | Availability | Đặc điểm | Use case |
|---|---|---|---|
| Standard | 99.99% | Latency thấp, throughput cao | Big data, gaming, CDN |
| Standard-IA | 99.9% | Truy cập không thường xuyên, cheaper | Backup, DR |
| One Zone-IA | 99.5% | Chỉ 1 AZ, mất data nếu AZ die | Backup thứ cấp, data có thể tái tạo |
| Glacier Instant | - | Retrieve millisecond, min 90 ngày | Data truy cập ~1 lần/quý |
| Glacier Flexible | - | Expedited 1-5 phút / Standard 3-5h / Bulk 5-12h | Archive |
| Glacier Deep Archive | - | Standard 12h / Bulk 48h, min 180 ngày | Long-term archive |
| Intelligent-Tiering | - | Tự động chuyển tier, không mất phí retrieve | Data có pattern truy cập thay đổi |
Durability: Tất cả class đều là 99.999999999% (11 nines) – dùng chung cho tất cả.
S3 Object Lock & Glacier Vault Lock
- WORM model = Write Once Read Many → không ai sửa/xóa được trong thời gian quy định
- Object Lock: khóa version cụ thể trong một khoảng thời gian
- Glacier Vault Lock: khóa policy, không thể thay đổi policy sau khi lock → dùng cho compliance
S3 Websites
Host static website trên S3. URL dạng: bucket-name.s3-website-[region].amazonaws.com
Nếu gặp lỗi 403 Forbidden → kiểm tra bucket policy có cho phép public read chưa.
S3 Access Logs
- Log toàn bộ request đến S3 (kể cả denied) → ghi vào một S3 bucket khác
- Dùng để audit, debug, phát hiện pattern bất thường
AWS Snow Family
Dùng khi transfer qua network mất hơn 1 tuần → dùng thiết bị vật lý.
| Thiết bị | Storage | Use case |
|---|---|---|
| Snowcone | 8 TB | Môi trường chật hẹp, khắc nghiệt |
| Snowball Edge Storage Optimized | 80 TB | Migration lớn |
| Snowball Edge Compute Optimized | 42 TB + GPU | ML/video processing tại edge |
| Snowmobile | 100 PB/xe | > 10 PB, exabyte-scale migration |
Edge Computing với Snow: chạy được EC2, Lambda (qua AWS IoT Greengrass) – dùng ở nơi không có internet ổn định.
OpsHub: GUI desktop app để quản lý Snow devices (thay vì CLI).
AWS Storage Gateway
Cầu nối giữa on-premises và S3 trên cloud → giải pháp hybrid cloud storage.
3 loại: File Gateway, Volume Gateway, Tape Gateway (không cần nhớ chi tiết cho CLF-02).
Shared Responsibility Model – S3
| AWS chịu trách nhiệm | Bạn chịu trách nhiệm |
|---|---|
| Infrastructure, durability, availability | Versioning, Bucket Policy, Replication setup |
| Config & vulnerability analysis | Logging, Monitoring, Storage Class |
| Compliance validation | Encryption at rest & in transit |
Những điểm hay ra đề CLF-02
- Bucket name phải globally unique
- Max object size 5 TB, upload > 5 GB dùng multi-part
- Durability 11 nines – giống nhau cho tất cả storage class
- Glacier Deep Archive = rẻ nhất, retrieve chậm nhất (12–48h)
- Intelligent-Tiering = không mất phí retrieve, tự động chuyển tier
- Cần bật versioning trước khi dùng Replication
- Block Public Access = tính năng bảo vệ cấp account
- Snow Family dùng khi data migration > 1 tuần qua mạng
- Snowmobile khi data > 10 PB