

# 在区域内和跨区域复制对象
<a name="replication"></a>

您可以使用复制来启用跨 Amazon S3 存储桶自动以异步方式复制对象。为对象复制配置的存储桶可由相同 AWS 账户 或不同账户拥有。您可以将对象复制到单个目标存储桶或多个目标存储桶。目标存储桶可以位于不同的 AWS 区域，也可以与源存储桶位于同一区域内。

复制有两种类型：*实时复制* 和*按需复制*。
+ **实时复制**：想要在向源存储桶写入新的和更新的对象的同时，**自动复制这些对象**，请使用实时复制。实时复制不会复制在设置复制之前就存在于存储桶中的任何对象。想要复制在设置复制之前就存在的对象，请使用按需复制。
+ **按需复制**：想要按需从源存储桶中**复制现有对象**到一个或多个目标存储桶，请使用 S3 批量复制。有关复制现有对象的更多信息，请参阅 [何时使用 S3 分批复制](#batch-replication-scenario)。

实时复制有两种形式：*跨区域复制（CRR）*和*同区域复制（SRR）*。
+ **跨区域复制（CRR）**：可以使用 CRR 跨不同 AWS 区域中的 S3 存储桶复制对象。有关 CRR 的更多信息，请参阅[何时使用跨区域复制](#crr-scenario)。
+ **同区域复制（SRR）**– 可以使用 SRR 跨同一 AWS 区域中的 Amazon S3 存储桶复制对象。有关 SRR 的更多信息，请参阅[何时使用同区域复制](#srr-scenario)。

**Topics**
+ [为什么使用复制？](#replication-scenario)
+ [何时使用跨区域复制](#crr-scenario)
+ [何时使用同区域复制](#srr-scenario)
+ [何时使用双向复制](#two-way-replication-scenario)
+ [何时使用 S3 分批复制](#batch-replication-scenario)
+ [工作负载要求和实时复制](#replication-workload-requirements)
+ [Amazon S3 复制什么内容？](replication-what-is-isnot-replicated.md)
+ [复制的要求和注意事项](replication-requirements.md)
+ [设置实时复制概述](replication-how-setup.md)
+ [管理或暂停实时复制](disable-replication.md)
+ [使用批量复制以复制现有对象](s3-batch-replication-batch.md)
+ [对复制进行问题排查](replication-troubleshoot.md)
+ [使用指标、事件通知和状态监控复制](replication-metrics.md)

## 为什么使用复制？
<a name="replication-scenario"></a>

复制可帮助您实现以下功能：
+ **复制对象，同时保留元数据** – 您可以使用复制来制作对象的副本，并保留所有元数据（例如原始对象创建时间和版本 ID）。如果您必须确保副本与源对象完全相同，则此功能非常重要。
+ **将对象复制到不同的存储类** – 您可以使用复制直接将对象置于目标存储桶中的 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 或其他存储类中。您还可以将数据复制到相同的存储类，并在目标存储桶上使用生命周期配置，以在对象老化时将其移动到较冷的存储类。
+ **在不同的所有权下维护对象副本** – 无论谁拥有源对象，您都可以指示 Amazon S3 将副本的所有权更改为拥有目标存储桶的 AWS 账户。这称为*拥有者覆盖* 选项。您可以使用此选项来要限制对对象副本的访问权限。
+ **将对象存储在多个 AWS 区域** – 要确保数据保存位置的地理差异，您可以在不同的 AWS 区域 中设置多个目标存储桶。此功能可能会帮助您满足某些合规性要求。
+ **在 15 分钟内复制对象** – 要在可预测的时间范围内在同一 AWS 区域 或跨不同区域复制您的数据，您可以使用 S3 Replication Time Control（S3 RTC）。S3 RTC 在 15 分钟内复制 Amazon S3 中存储的 99.99% 的新对象（由服务等级协议提供支持）。有关更多信息，请参阅 [使用 S3 Replication Time Control 满足合规性要求](replication-time-control.md)。
**注意**  
S3 RTC 不适用于分批复制。分批复制是一项按需复制任务，可以使用 S3 批量操作进行跟踪。有关更多信息，请参阅 [跟踪任务状态和完成报告](batch-ops-job-status.md)。
+ **同步存储桶、复制现有对象以及之前无法复制或已复制的对象** – 要同步存储桶和复制现有对象，请使用分批复制作为按需复制操作。有关何时使用分批复制的更多信息，请参阅 [何时使用 S3 分批复制](#batch-replication-scenario)。
+ **复制对象并失效转移到另一个 AWS 区域中的存储桶** - 要在数据复制期间使所有元数据和对象在存储桶之间保持同步，请在配置 Amazon S3 多区域接入点失效转移控制之前使用双向复制规则。双向复制规则有助于确保在将数据写入流量失效转移到的 S3 存储桶时，该数据随后被复制回源存储桶。

## 何时使用跨区域复制
<a name="crr-scenario"></a>

S3 跨区域复制（CRR）用于在不同 AWS 区域中跨 Amazon S3 存储桶复制对象。CRR 可帮助您：
+ **满足合规性要求** – 虽然 Amazon S3 默认跨多个地理位置较远的可用区存储数据，但是合规性要求所规定的数据存储距离可能更远。为满足这些要求，可以使用跨区域复制在远距离 AWS 区域 之间复制数据。
+ **最大限度减少延迟** – 如果客户处于两个地理位置，您可以在地理位置与用户较近的AWS 区域中维护对象副本，从而最大限度缩短访问对象时的延迟。
+ **提高操作效率** – 如果您在两个不同 AWS 区域 中具有分析同一组对象的计算集群，则可以选择在这些区域中维护对象副本。

## 何时使用同区域复制
<a name="srr-scenario"></a>

同区域复制（SRR）用于在同一 AWS 区域中跨 Amazon S3 存储桶复制对象。SRR 可帮助您：
+ **将日志聚合到单个存储桶** – 如果您在多个存储桶中或者跨多个账户存储日志，则可以轻松地将日志复制到区域中的单个存储桶。这样做实现了在单个位置更简单地处理日志。
+ **在生产账户和测试账户之间配置实时复制** – 如果您或您的客户有使用相同数据的生产账户和测试账户，您可以在那些账户之间复制对象，同时保留对象元数据。
+ **遵守数据主权法律** – 您可能需要将数据的多个副本存储在特定区域内的单独 AWS 账户 中。当合规性法规不允许数据离开您的国家/地区时，同区域复制可帮助您自动复制关键数据。

## 何时使用双向复制
<a name="two-way-replication-scenario"></a>
+ **跨多个 AWS 区域构建共享数据集** – 通过副本修改同步功能，您可以轻松地对于复制对象复制元数据更改，例如对象访问控制列表（ACL)、对象标签或对象锁定。如果要使所有对象和对象元数据更改保持同步，这种双向复制非常重要。在相同或不同 AWS 区域中的两个或更多存储桶之间执行双向复制时，您可以对新的或现有的复制规则[启用副本修改同步](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-for-metadata-changes.html#enabling-replication-for-metadata-changes)。
+ **在失效转移期间跨区域保持数据同步** – 您可以直接从多区域接入点通过 S3 跨区域复制（CRR）配置双向复制规则，在 AWS 区域中的存储桶之间同步数据。要就何时启动失效转移做出明智的决定，您还可以启用 S3 复制指标，以便监控 Amazon CloudWatch、S3 Replication Time Control（S3 RTC）或多区域接入点中的复制。
+ **使应用程序具有高可用性** - 即使在区域流量中断的情况下，您也可以使用双向复制规则在数据复制期间跨存储桶保持所有元数据和对象同步。

## 何时使用 S3 分批复制
<a name="batch-replication-scenario"></a>

作为按需选项，分批复制将现有对象复制到不同的存储桶。与实时复制不同，这些任务可以根据需要运行。分批复制可帮助您实现以下功能：
+ **复制现有对象** – 您可以使用分批复制来复制在配置同区域复制或跨区域复制之前添加到存储桶中的对象。
+ **复制之前无法复制的对象** – 您可以筛选分批复制任务以尝试复制状态为 **FAILED** 的对象。
+ **复制已经复制的对象** – 您可能需要将数据的多个副本存储在单独的 AWS 账户 或 AWS 区域 中。分批复制可以将现有对象复制到新添加的目标。
+ **复制根据复制规则创建的对象的副本** – 复制配置在目标存储桶中创建对象的副本。对象的副本只能通过分批复制进行复制。

## 工作负载要求和实时复制
<a name="replication-workload-requirements"></a>

根据工作负载要求，某些类型的实时复制将比其它类型的复制更适合您的应用场景。使用下表来确定针对您的场景应该使用哪种类型的复制，以及是否需要对您的工作负载使用 S3 Replication Time Control（S3 RTC）。S3 RTC 在 15 分钟内复制 Amazon S3 中存储的 99.99% 的新对象 [由服务等级协议（SLA）提供支持]。有关更多信息，请参阅 [使用 S3 Replication Time Control 满足合规性要求](replication-time-control.md)。


| 工作负载要求 | S3 RTC（15 分钟 SLA） | 跨区域复制 (CRR) | 同区域复制（SRR） | 
| --- | --- | --- | --- | 
| 在不同 AWS 账户之间复制对象 | 支持 | 是 | 是 | 
| 在 24-48 小时内，在同一 AWS 区域中复制对象（不受 SLA 支持） | 否 | 否 | 是 | 
| 在 24-48 小时内，在不同 AWS 区域之间复制对象（不受 SLA 支持） | 否 | 是 | 否 | 
| 可预测的复制时间：由 SLA 提供支持，可在 15 分钟内复制 99.9% 的对象 | 是 | 否 | 否 | 