S3 design
S3 là object storage, nhưng kiến trúc S3 gồm access control, encryption, versioning, lifecycle, replication và delivery path. Hãy bắt đầu từ object size, access frequency, retention, residency và recovery objective.
Bài tập
Thiết kế bucket cho ảnh upload private, file download public qua CDN và archive compliance. Ghi bucket policy/Block Public Access, lifecycle, versioning, KMS và cách cấp URL tạm thời. Sau đó nêu một failure mode mà versioning không giải quyết được.
Bài giảng chuyên sâu
S3 design bắt đầu từ access pattern và recovery
Với upload private, CDN delivery và compliance archive, hãy tách: bucket/object ownership, Block Public Access, policy/IAM, encryption, versioning, lifecycle, replication và delivery path. CloudFront có thể cache object gần user nhưng không biến bucket thành public. Presigned URL giới hạn quyền/thời gian cho upload/download; authorization vẫn phải được thiết kế.
Versioning giúp khôi phục phiên bản hoặc xóa nhầm nhưng không tự giải quyết retention, chi phí và delete marker. Lifecycle phải dựa trên tuổi/access/retention; archive tier cần chấp nhận retrieval latency và cost. Multipart upload, prefix và replication là quyết định về throughput/region/recovery, không phải mặc định bật tất cả.
Failure drill: nhầm bucket policy public, xóa nhầm current version, object archive cần đọc ngay và replication trễ. Với mỗi case ghi expected evidence (public-access block, object versions, lifecycle rule, replication status), recovery và cleanup.