S3复制
利用AWS托管的S3 Replication功能,自动将对象从源账户的S3存储桶复制到目标账户的存储桶。
- 自动化程度高: 配置后无需人工干预
- 近实时同步: 通常在15分钟内完成复制
- 增量复制: 仅复制新增和修改的对象
- 元数据保留: 保留对象标签、ACL、元数据
- 支持筛选: 可按前缀或标签筛选复制对象
- 成本低: 仅按复制请求和跨区域传输计费
- 不复制存量数据: 仅复制启用后的新对象
- 需版本控制: 源桶必须启用版本控制
- 无进度可视化: 无法查看复制任务完成百分比
- 删除不同步: 默认不复制删除操作(可配置)
- 单向复制: 仅支持单向数据流
必须满足:
- 源存储桶已启用或可启用版本控制
- 需要持续的数据同步
- 可接受存量数据通过其他方式迁移
推荐满足:
- 源和目标在同一分区(AWS Standard/China/GovCloud)
- 业务可容忍15分钟内的复制延迟
- 对象大小 ≤5TB
技术限制:
- 单个对象最大5TB
- 源桶必须启用版本控制
- 不支持复制S3 Glacier存储类对象
配置限制:
- 每个存储桶最多1000个复制规则
- 复制规则不可循环(A→B→C→A)
- SSE-C加密对象不支持复制
源账户准备:
- 启用源存储桶版本控制
- 创建IAM角色并附加复制策略
- 配置复制规则指向目标存储桶
目标账户准备:
- 创建目标存储桶
- 配置存储桶策略允许源账户写入
- 可选:启用版本控制接收删除标记
网络要求:
- 无特殊要求(AWS内部网络)
同区域复制:
- PUT/COPY请求: $0.005/1000请求
- 存储费用: 按目标存储类计费
跨区域复制:
- PUT/COPY请求: $0.005/1000请求
- 数据传输: $0.02/GB(区域间)
- 存储费用: 按目标存储类计费
示例: 100GB数据,1百万对象,跨区域复制
- 请求费用: 1000 × $0.005 = $5
- 传输费用: 100 × $0.02 = $2
- 总计: ~$7
配置步骤概要
Section titled “配置步骤概要”
- 可选复制全部或者部分复制
- 在源存储桶启用版本控制
- 创建IAM角色(使用AWS托管策略或自定义)
- 配置复制规则:
- 选择目标存储桶(跨账户格式:
arn:aws:s3:::bucket-name) - 配置IAM角色
- 可选:配置筛选器、存储类、加密
- 选择目标存储桶(跨账户格式:
- 在目标账户生成存储桶策略


规划阶段:
- 对存量数据使用S3 Batch Operations配合复制规则
- 评估跨区域传输成本是否可接受
- 确认目标账户配额充足
配置阶段:
- 使用IAM角色而非访问密钥
- 启用CloudWatch指标监控复制失败
- 配置S3 Event通知监控复制延迟
运维阶段:
- 定期检查复制规则状态
- 监控
ReplicationLatency指标 - 使用S3 Inventory验证数据一致性
安全建议:
- 目标桶启用默认加密
- 使用最小权限原则配置IAM角色
- 启用S3访问日志审计跨账户操作
复制失败常见原因:
- 目标桶策略配置错误 → 检查Principal ARN
- IAM角色权限不足 → 验证角色信任关系
- 对象加密不兼容 → 确认KMS密钥权限
- 目标桶不存在 → 验证桶名称和区域
监控指标:
ReplicationLatency: 复制延迟时间BytesPendingReplication: 待复制字节数OperationsPendingReplication: 待复制操作数