配置用于多区域访问点的存储桶复制
向多区域访问点终端节点发出请求时,Amazon S3 会自动将请求路由到以最低延迟响应请求的存储桶。在作出这一决定时不考虑请求的内容。如果向 GET
对象发出请求时,您的请求可能会被路由到没有此对象副本的存储桶。如果发生这种情况,您会收到 404 错误。如果您希望多区域访问点能够恢复对象,而无论哪个存储桶接收请求,您必须配置 Amazon S3 跨区域复制。
考虑具有三个存储桶的多区域访问点:
-
区域
my-bucket-usw2
中包含对象us-west-2
且名为my-image.jpg
的存储桶 -
区域
my-bucket-aps1
中包含对象ap-south-1
且名为my-image.jpg
的存储桶 -
区域
eu-central-1
中不包含对象my-image.jpg
且名为my-bucket-euc1
的存储桶
在这种情况下,如果您向 GetObject
对象发出请求 my-image.jpg
,则该请求的成功取决于接收您请求的存储桶。由于 Amazon S3 不考虑请求的内容,因此可能会将 GetObject
请求添加到 my-bucket-euc1
存储桶(如果该存储桶以最低的延迟响应)。即使您的对象位于多区域访问点中的存储桶中,因为收到您请求的单个存储桶没有该对象,您仍会收到 404 错误。
启用复制有助于减轻此结果。使用适当的复制规则,my-image.jpg
图像被复制到 my-bucket-euc1
存储桶,这意味着如果 Amazon S3 将您的请求路由到该存储桶,则您将检索对象。
对于分配给多区域访问点的存储桶,复制工作正常。Amazon S3 不会对位于多区域访问点中的存储桶执行任何特殊处理。Amazon S3 提供了1:N 和 N:N 复制选项,用于在存储桶之间进行灵活的同步。有关在存储桶中配置复制的更多信息,请参阅 设置复制。
如果您希望在使用多区域访问点时获得最佳的复制性能,我们会为您提供一些建议。首先,建议配置 S3 复制时间控制 (S3 RTC),但请注意,这会带来额外的成本。有关 S3 复制时间控制的更多信息,请参阅 使用 S3 Replication Time Control(S3 RTC)满足合规性要求。我们还建议启用双向复制,支持在通过多区域访问点更新存储桶时保持存储桶同步。最后,您应该启用 Amazon CloudWatch 指标来监控复制事件。
如果您使用 Amazon Web Services Management Console 从多区域访问点控制台创建复制规则,则指定存储桶上预先存在的任何复制配置都将被替换。如果要添加或修改现有复制配置而不是替换它们,则可以使用控制台中的每个存储桶的复制配置页面或使用 Amazon CLI、开发工具包或 REST API。有关修改复制配置的更多信息,请参阅复制配置。