S3 同步与跨区域复制

S3 Sync vs. Cross-region Replication

我在 S3 us-west-1 中有大约 1.5PB 的数据。我想将其复制到 us-east-2 区域。我应该使用跨区域复制还是 S3 同步?并且,使用这两个选项的优缺点是什么?

我研究了几个 AWS 线程,发现它们对每个线程都进行了非常详细的描述(例如 https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-transfer-between-buckets/ and https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-migrate-region/),但没有解释两者之间的区别。

请注意,我们的安全策略不允许 Snowball Edge。

有人可以帮我吗?

复制会将新的 PUT 对象复制到目标存储桶中。

Sync 会将现有对象复制到目标存储桶。

通常您会启用复制,然后运行同步一次以复制现有对象。

当您将复制添加到您的存储桶时,之前存在的对象将不会被复制到另一个存储桶。如果使用 customer-provided (SSE-C) 加密密钥通过 server-side 加密创建的对象,复制也不会让您复制。有关详细信息,您应该阅读 this.

所以在这种情况下,您可以使用 AWS S3 Sync 或 AWCCLi 的 cp 命令(会更慢)或使用 Snowball Edge(您不能按照描述执行)

aws s3 cp --recursive s3://<bucket>>
aws s3 sync s3://<bucket> s3://<bucket>>

AWS Sync 适用于小尺寸 objects/buckets 但正如您提到的,您有 peta 字节的数据,那么我将为您提供两种解决方案:

  1. S3 batch Operations:您可以使用 Amazon S3 批处理操作来 使用单个请求复制多个对象。
  2. S3DistCp: The S3DistCp operation on Amazon EMR can perform parallel copying of large volumes of objects across Amazon S3 buckets. More Read

将数据复制到另一个 S3 存储桶后,您可以启用将复制所有新对象的复制。

注意:这些解决方案可能很昂贵,所以如果使用这些操作,请务必阅读成本。