S3 跨区域复制 CRR
把对象自动复制到另一个区域的桶,形成独立于源区域的异地副本。它要求源桶与目标桶都开启版本控制,复制动作由存储服务异步执行,可按前缀或标签过滤范围。相比自建同步脚本,CRR 不需要额外计算资源,但它是异步的,延迟通常在数分钟内,因此区域故障时的 RPO 由复制速度决定。
基本信息
| 适用平台 | AWS S3;同区域复制(SRR)与跨区域复制(CRR)配置结构相同 |
|---|---|
| 前提条件 | 源桶与目标桶均开启版本控制,复制角色具备读写权限 |
| 时效特性 | 异步复制,多数对象数分钟内到达;如需时效承诺需启用 Replication Time Control |
| 可选范围 | 前缀或标签过滤;删除标记的复制行为需显式配置 |
典型使用场景
- 备份桶的异地副本:源区域整体不可用时目标桶仍可读
- 合规要求:数据副本存放在指定地理区域
- 低延迟访问:让异地用户就近读取同区域副本
- 跨账号归集:把多个业务账号的备份统一复制到归档账号
- 从旧区域迁出:先复制历史数据,再切写入方向
配置与核对
配置与核对
# 两个桶都先开启版本控制
aws s3api put-bucket-versioning --bucket src-bucket \
--versioning-configuration Status=Enabled
aws s3api put-bucket-versioning --bucket dst-bucket \
--versioning-configuration Status=Enabled
# 应用复制配置(Role + Rules:Filter、Destination、StorageClass 等)
aws s3api put-bucket-replication --bucket src-bucket \
--replication-configuration file://replication.json
# 核对配置与复制状态
aws s3api get-bucket-replication --bucket src-bucket
aws s3api head-object --bucket dst-bucket --key archive/db.dump配置项读法
| 配置项 | 含义 | 风险 |
|---|---|---|
| Filter | 前缀或标签范围 | 范围写错会导致部分对象永远不被复制 |
| DeleteMarkerReplication | 删除标记是否复制 | 不配置时删除行为在目标桶表现可能不同 |
| StorageClass | 目标对象存储类 | 目标层若不是即时可取,恢复时需先取回 |
| 历史对象 | 已有对象不会自动复制 | 需单独用批量复制补齐 |
跨区域复制按跨区流量与请求计费,带宽成本要纳入设计;加密对象需要在目标区域具备对应 KMS 密钥权限,否则复制会持续失败。