Amazon Simple Storage Service
Lưu file (object) vô hạn
Lưu trữ object (file bất kỳ kèm metadata) trong bucket, dung lượng không giới hạn, độ bền 11 số 9, truy cập qua HTTP API.
- Chi phí$ Rẻ
- Độ khó●●●●●
- Để không có tốn tiền?Ít
- Serverless
- Có trong đềCLF · SAA · DVA · SOA
Hình dungNhư kho gửi đồ vô tận: gửi món nào nhận vé (key) món đó, lấy lại bằng vé.
S3 đứng ở đâu trong hệ thống?
S3 gọi tới
Một ví dụ thật, từng bước
- Một ứng dụng học tập cho học viên tải lên bài tập dạng PDF và video.
- Ứng dụng tạo presigned URL để trình duyệt tải file thẳng lên bucket S3, không phải đi qua máy chủ của bạn.
- File mới sẽ kích hoạt Lambda để tạo ảnh xem trước; CloudFront phân phát video nhanh cho học viên ở nhiều nơi.
- Lifecycle rule chuyển file cũ hơn 90 ngày sang S3 Glacier, rẻ hơn nhiều so với lớp Standard.
- Bucket để riêng tư (Block Public Access bật sẵn); versioning giữ bản cũ nếu ai đó lỡ xoá hoặc ghi đè file.
Khi nào nên dùng
✓ Nên dùng khi
Ảnh, video, backup, file tĩnh website, data lake.
✗ Không nên dùng khi
Cần ổ đĩa để cài hệ điều hành/DB → EBS; cần thư mục chia sẻ NFS → EFS.
Ví dụ hay gặp
- Lưu ảnh, video, tài liệu người dùng
- Hosting website tĩnh (kèm CloudFront)
- Backup và lưu trữ lâu dài (lớp Glacier)
- Data lake cho Athena, Glue, EMR
S3, EBS hay EFS?
| Kiểu lưu | Đối tượng (object) qua API/HTTP | Ổ đĩa gắn vào một máy | Thư mục dùng chung qua NFS |
|---|---|---|---|
| Ai dùng được | Bất kỳ ai có quyền, từ mọi nơi | Một máy EC2 trong cùng AZ | Nhiều máy Linux cùng lúc |
| Dung lượng | Gần như không giới hạn | Chọn trước, tăng được | Tự giãn theo dữ liệu |
| Hợp nhất với | File, ảnh, backup, data lake | Hệ điều hành, database | Thư mục chung cho nhiều máy |
Tốn bao nhiêu tiền?
- Cách tính: Theo GB-tháng tuỳ lớp lưu trữ (Standard ~$0,023/GB) + số request (PUT ~$0,005/1.000, GET ~$0,0004/1.000) + truyền dữ liệu ra Internet.
- Miễn phí: 100 GB truyền dữ liệu ra Internet/tháng miễn phí (tính chung mọi dịch vụ). Tài khoản cũ: thêm 5 GB Standard trong 12 tháng.
Truyền dữ liệu ra Internet (~$0,09/GB) — nên đặt CloudFront phía trước; hàng triệu file nhỏ làm tăng phí request; versioning giữ mọi bản cũ; xoá sớm khỏi Glacier/IA vẫn bị tính thời gian lưu tối thiểu.
Đề hỏi “rẻ nhất cho dữ liệu ít truy cập” → chọn đúng storage class kèm lifecycle rule; “không cho truy cập thẳng bucket” → CloudFront với Origin Access Control; “EC2 ghi S3 không qua Internet” → gateway VPC endpoint.
Thử sức với câu hỏi thi thật
1A company is designing a website that will be hosted on Amazon S3. How should users be prevented from linking directly to the assets in the S3 bucket?
- ACreate a static website, then update the bucket policy to require users to access the resources with the static website URL.
- BCreate an Amazon CloudFront distribution with an origin access control (OAC) and update the bucket policy to grant permission to the OAC only.
- CCreate a static website, then configure an Amazon Route 53 record set with an alias pointing to the static website. Provide this URL to users.
- DCreate an Amazon CloudFront distribution with an AWS WAF web ACL that permits access to the origin server through the distribution only.
Xem đáp án
Đáp án đúng: B
Đặt CloudFront trước bucket và dùng Origin Access Control (OAC); bucket policy chỉ cho OAC đọc. Người dùng không thể vào thẳng bucket mà phải đi qua CloudFront.
2A company is planning to use Amazon S3 to store images uploaded by its users. The images must be encrypted at rest in Amazon S3. The company does not want to spend time managing and rotating the keys, but it does want to control who can access those keys. What should a solutions architect use to accomplish this?
- AServer-Side Encryption with encryption keys stored in an S3 bucket
- BServer-Side Encryption with Customer-Provided Keys (SSE-C)
- CServer-Side Encryption with encryption keys stored in AWS Systems Manager Parameter Store
- DServer-Side Encryption with AWS KMS-Managed Keys (SSE-KMS)
Xem đáp án
Đáp án đúng: D
SSE-KMS dùng khoá trong KMS: AWS lo lưu và xoay khoá, còn bạn kiểm soát ai được dùng khoá bằng key policy và IAM. SSE-C bắt bạn tự quản lý khoá; không cất khoá trong bucket hay Parameter Store.
Câu hỏi thường gặp
Nên chọn storage class S3 nào?
Standard cho dữ liệu dùng thường xuyên; Intelligent-Tiering khi không đoán được tần suất truy cập; Standard-IA và One Zone-IA cho dữ liệu ít dùng; các lớp Glacier cho lưu trữ dài hạn, càng rẻ thì lấy lại càng chậm và có phí lấy dữ liệu.
Bucket S3 có công khai ra Internet không?
Mặc định không. Block Public Access được bật sẵn và bucket mới chỉ chủ sở hữu truy cập được. Muốn chia sẻ an toàn nên dùng presigned URL hoặc đặt CloudFront phía trước thay vì mở bucket công khai.
Đề thi AWS hay hỏi gì về S3?
Storage class và lifecycle rule, versioning, mã hoá (SSE-S3, SSE-KMS), bucket policy và Block Public Access, replication giữa region, presigned URL, S3 Transfer Acceleration và cách tải file lớn bằng multipart upload.