# 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)、跨區快取、就近存取

# 運作方式

  1. 啟用 版本控制 (Versioning)
    • 原始與目標 Bucket 都必須開啟。
  2. 設定 Replication Rule
    • 指定要複製的前綴(Prefix)或標籤(Tag)。
  3. 指定 目標 Bucket
    • 可以是同帳號或跨帳號的 bucket。
  4. 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。

使用方式也幾乎跟前面的方案相同