Chương 06: S3 & Storage Solutions
Tổng Quan
Amazon S3 (Simple Storage Service) là dịch vụ object storage vô hạn của AWS. Bạn đã quen thuộc S3 — chương này bổ sung những chi tiết nâng cao mà SAA đòi hỏi: storage classes, lifecycle, encryption, replication, và performance.
1. S3 Cơ Bản
1.1 Khái niệm
- Buckets: Container lưu trữ objects. Tên bucket unique toàn cầu.
- Objects: File + metadata. Key = đường dẫn đầy đủ (VD:
s3://my-bucket/folder/file.jpg). - Max object size: 5TB. Upload từ 5GB+ phải dùng Multi-Part Upload.
- S3 là dịch vụ global nhưng buckets thuộc 1 Region cụ thể.
1.2 Versioning
- Bật ở bucket level.
- Mọi thay đổi tạo version mới, version cũ vẫn tồn tại.
- Xóa file = thêm Delete Marker (không xóa thật, có thể khôi phục).
- Best practice: Luôn bật versioning cho bucket quan trọng.
2. S3 Storage Classes
| Storage Class | Đặc điểm | Min Duration | Use case |
|---|---|---|---|
| S3 Standard | 99.99% availability, 11 9's durability | Không | Truy cập thường xuyên |
| S3 Standard-IA | Rẻ hơn Standard, tính phí retrieval | 30 ngày | Truy cập không thường xuyên (backup) |
| S3 One Zone-IA | Chỉ 1 AZ, rẻ nhất cho IA | 30 ngày | Data có thể tạo lại (thumbnails) |
| S3 Intelligent-Tiering | Tự động chuyển tier theo access pattern | Không | Không biết trước access pattern |
| S3 Glacier Instant | Rẻ, retrieval milliseconds | 90 ngày | Archive cần truy cập nhanh |
| S3 Glacier Flexible | Rẻ hơn, retrieval 1-12 giờ | 90 ngày | Archive backup |
| S3 Glacier Deep Archive | Rẻ nhất | 180 ngày | Long-term archive (compliance 7-10 năm) |
Tất cả classes đều có 11 9's durability (99.999999999%). Khác biệt chính là availability và retrieval time/cost.
Glacier Retrieval Options:
| Glacier Flexible | Glacier Deep Archive | |
|---|---|---|
| Expedited | 1-5 phút | N/A |
| Standard | 3-5 giờ | 12 giờ |
| Bulk | 5-12 giờ | 48 giờ |
3. S3 Lifecycle Rules
Tự động chuyển objects giữa các storage classes hoặc xóa theo thời gian.
| Loại Action | Mô tả | Ví dụ |
|---|---|---|
| Transition | Chuyển sang storage class khác | Sau 30 ngày → Standard-IA, sau 90 ngày → Glacier |
| Expiration | Xóa objects | Xóa logs sau 365 ngày |
S3 Standard ──(30 ngày)──▶ Standard-IA ──(90 ngày)──▶ Glacier ──(365 ngày)──▶ Delete
4. S3 Replication
| CRR (Cross-Region) | SRR (Same-Region) | |
|---|---|---|
| Mục đích | Disaster Recovery, giảm latency | Log aggregation, live replication |
| Yêu cầu | Versioning phải BẬT ở cả 2 buckets | Versioning phải BẬT |
| Scope | Toàn bucket hoặc prefix cụ thể | Toàn bucket hoặc prefix |
Lưu ý: Replication chỉ áp dụng cho objects mới sau khi bật. Objects cũ cần dùng S3 Batch Replication.
5. S3 Encryption
5.1 Server-Side Encryption (SSE)
| Loại | Key quản lý bởi | Đặc điểm |
|---|---|---|
| SSE-S3 | AWS (S3 managed keys) | Mặc định, AES-256, đơn giản nhất |
| SSE-KMS | AWS KMS | Audit trail (CloudTrail), kiểm soát key rotation |
| SSE-C | Customer (bạn tự quản lý key) | Gửi key cùng mỗi request, HTTPS bắt buộc |
5.2 Client-Side Encryption
- Bạn mã hóa data trước khi upload lên S3.
- AWS không biết encryption key của bạn.
💡 Exam Tip: Nếu đề bài yêu cầu "audit who accessed the encryption key" → SSE-KMS (vì tích hợp CloudTrail).
5.3 Encryption In-Transit
- Dùng HTTPS (SSL/TLS).
- Có thể enforce bằng Bucket Policy: Deny nếu
aws:SecureTransport = false.
6. S3 Access Control
6.1 Bucket Policy (Phổ biến nhất)
- JSON policy gắn ở bucket level.
- Dùng để: cho phép public access, cross-account access, enforce encryption.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}]
}
6.2 S3 Access Points
- Tạo endpoint riêng cho từng ứng dụng/team với policy riêng.
- Đơn giản hóa quản lý policy khi bucket có nhiều access patterns.
6.3 Block Public Access
- Cài đặt ở account level hoặc bucket level.
- Mặc định: BẬT (chặn public access).
- Override tất cả bucket policies và ACLs.
7. S3 Performance
7.1 Baseline Performance
- 3,500 PUT/COPY/POST/DELETE per second per prefix.
- 5,500 GET/HEAD per second per prefix.
- Không giới hạn số prefixes.
7.2 Tối ưu Performance
| Kỹ thuật | Mô tả |
|---|---|
| Multi-Part Upload | Upload song song nhiều phần. Bắt buộc cho file >5GB, khuyến khích >100MB. |
| S3 Transfer Acceleration | Upload qua CloudFront Edge Location → AWS backbone network. Có phí thêm. |
| S3 Byte-Range Fetches | Download song song từng phần file. Tăng tốc download / chỉ lấy 1 phần file. |
| S3 Select | Dùng SQL để lọc data trước khi download. Giảm data transfer. |
8. S3 Event Notifications
- Trigger khi có sự kiện:
s3:ObjectCreated:*,s3:ObjectRemoved:*... - Gửi đến: SQS, SNS, Lambda, EventBridge.
- Use case: Upload ảnh → trigger Lambda → resize → lưu vào bucket khác.
9. Các Dịch Vụ Storage Khác
9.1 EFS (Elastic File System)
- Network file system (NFS) có thể mount nhiều EC2 cùng lúc.
- Hoạt động cross-AZ (khác EBS chỉ 1 AZ).
- Tự động scale (không cần provision capacity).
- Đắt hơn EBS nhưng linh hoạt hơn.
- Chỉ hoạt động với Linux (không hỗ trợ Windows).
9.2 So sánh EBS vs EFS vs S3
| EBS | EFS | S3 | |
|---|---|---|---|
| Loại | Block storage | File storage | Object storage |
| Gắn vào | 1 EC2 (hoặc multi-attach io1/io2) | Nhiều EC2 | Truy cập qua API/SDK |
| AZ | 1 AZ | Cross-AZ | Cross-Region |
| Scale | Provision trước | Tự động | Vô hạn |
| Use case | Boot volume, database | Shared file system, CMS | Static assets, backup, archive |
9.3 AWS Storage Gateway
- Kết nối on-premises với cloud storage (hybrid).
- 3 loại:
- S3 File Gateway: On-prem access S3 qua NFS/SMB.
- FSx File Gateway: On-prem access FSx.
- Volume Gateway: iSCSI block volumes backup lên S3.
- Tape Gateway: Thay thế physical tape backup.
9.4 AWS Snow Family
- Di chuyển huge data (terabytes → petabytes) khi network quá chậm.
| Device | Capacity | Use case |
|---|---|---|
| Snowcone | 8-14 TB | Edge computing, nhỏ gọn |
| Snowball Edge | 80 TB (Storage) / 42 TB (Compute) | Data migration, edge computing |
| Snowmobile | 100 PB | Di chuyển data center (xe tải!) |
Exam Tips 💡
- S3 Standard-IA vs One Zone-IA: Data quan trọng → Standard-IA (multi-AZ). Data tạo lại được → One Zone-IA.
- Glacier Deep Archive = Rẻ nhất cho archive dài hạn (compliance).
- Lifecycle Rule: Tự động chuyển tier → tiết kiệm chi phí (câu hỏi Cost Optimization).
- SSE-KMS khi cần audit. SSE-S3 khi cần đơn giản.
- Cross-Region Replication cho DR. Same-Region Replication cho compliance/log aggregation.
- EBS = 1 AZ, 1 EC2. EFS = Multi-AZ, nhiều EC2. S3 = Object, vô hạn.
- Transfer Acceleration cho upload nhanh từ xa. Multi-Part Upload cho file lớn.
Câu Hỏi Ôn Tập 📝
Câu 1: Công ty cần lưu trữ compliance data trong 7 năm, truy cập rất hiếm (1-2 lần/năm). Storage class nào rẻ nhất?
Xem đáp án
S3 Glacier Deep Archive. Rẻ nhất, phù hợp archive dài hạn. Retrieval mất 12-48 giờ nhưng phù hợp vì truy cập rất hiếm.
Câu 2: Nhiều EC2 instances ở các AZ khác nhau cần truy cập cùng 1 tập file. Dùng gì?
Xem đáp án
Amazon EFS. Network file system hỗ trợ mount từ nhiều EC2 instances cross-AZ. EBS chỉ gắn được 1 instance trong 1 AZ.
Câu 3: Cần di chuyển 50TB data vào S3 nhưng bandwidth chỉ 100 Mbps. Cách nhanh nhất?
Xem đáp án
AWS Snowball Edge. Upload 50TB qua 100 Mbps network mất ~46 ngày. Snowball Edge gửi qua bưu điện nhanh hơn rất nhiều.