# AWS - S3 Object Replicating
# S3 Replication
S3 Replication 讓你能 自動的、持續的 把 新增與更新的物件 從一個 S3 Bucket 複製到另一個 Bucket
可以在 相同區域 (Same-Region) 或 跨區域 (Cross-Region) 之間進行
# 兩種 S3 Replication Types
| 類型 | 全名 | 說明 | 常見用途 |
|---|---|---|---|
| SRR | Same-Region Replication | 在 同一個 AWS 區域 內的複製 | 合規、跨帳號備份、版本控管 |
| CRR | Cross-Region Replication | 跨 不同 AWS 區域 (Region) 複製 | 災難復原 (DR)、跨區快取、就近存取 |
# 運作方式
- 啟用 版本控制 (Versioning)
- 原始與目標 Bucket 都必須開啟。
- 設定 Replication Rule
- 指定要複製的前綴(Prefix)或標籤(Tag)。
- 指定 目標 Bucket
- 可以是同帳號或跨帳號的 bucket。
- AWS S3 會自動在背景執行複製流程。
- 複製後的物件是獨立存在的,刪除原始檔不會刪掉目標檔。
# S3 Replication 支援的物件屬性
| 屬性 | 是否複製 | 備註 |
|---|---|---|
| 新上傳物件 | ✅ | 自動複製 |
| 既有物件 | ❌(可手動啟用 Batch Replication) | 須額外設定 |
| Object ACL / Metadata | ✅ | 一併複製 |
| Object Lock | ✅(需開啟 S3 Object Lock 支援) | 適合合規環境 |
| SSE-S3 加密 | ✅ | 自動複製 |
| SSE-KMS 加密 | ✅(需授權 KMS key policy) | 需設定 Key policy |
| Delete Marker | ✅(可選) | 適用版本控制情境 |
| Lifecycle 設定 | ❌ | 不會複製設定檔本身 |
# 進階功能
| 功能 | 說明 |
|---|---|
| Replication Time Control (RTC) | 保證 99.99% 的物件在 15 分鐘內 完成複製(需付費) |
| Replication Metrics | 在 CloudWatch 監控延遲與複製進度 |
| Batch Replication | 可針對「過去已存在」的物件做一次性補複製 |
| Replication of delete markers | 可選擇是否同步刪除標記 |
| Replica Modification Sync | 允許目標 bucket 的物件被修改後,同步回原 bucket(雙向同步的一種變體) |
# S3 Batch Replications
剛剛講得 SRR/SRR Replications 都是針對 新增 / 更新的物件 進行複製,那麼針對過去的資料,必須使用 Batch Replcations 來進行複製
S3 Batch Replication 是一種「針對既有物件進行一次性補複製」的機制,
可以讓已經存在於來源 Bucket 中的舊物件(在設定 Replication 之前上傳的)
也能被複製到目標 Bucket。
使用方式也幾乎跟前面的方案相同