跨区域 S3 存储桶策略

跨区域 S3 存储桶策略

我想允许位于 us-east-1 的 EC2 服务器读取位于 us-west-2 的存储桶中的内容。

每次我尝试时,都会收到一条消息“您尝试访问的存储桶必须使用指定的端点进行寻址。请将所有未来的请求发送到此端点”

实际上是否真的可以允许这样的事情,或者 S3 存储桶是否被锁定在一个区域?

答案1

所有存储桶都可以通过 s3.amazonaws.com 端点访问。当您使用此端点时,如果存储桶位于非标准美国地区,那么您将被重定向到正确的端点。这是此技巧唯一有效的地区/端点。

如果存储桶位于标准美国区域,则必须使用 s3.amazonaws.com 端点。其他区域端点均不起作用。

如果您对存储桶使用了正确的端点,那么您可以从任何区域访问该存储桶。

请参见http://docs.amazonwebservices.com/general/latest/gr/rande.html#s3_region了解完整的 S3 区域说明。

答案2

关于 VPC,请注意以下几点:

如果您想要从区域 A 中的 VPC 连接到区域 B 中的存储桶,则将 S3 终端节点连接到您的 VPC 是不够的,因为您只能通过此终端节点访问区域 A 中的存储桶。相反,您需要通过公共互联网从区域 A 中的 VPC 连接到区域 B 中的存储桶。

也可以看看 https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html

其中指出:

端点当前不支持跨区域请求 - 请确保您在与存储桶相同的区域中创建端点。

https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-limitations

其中指出:

仅支持同一区域内的终端节点。您无法在 VPC 和不同区域的服务之间创建终端节点。

相关内容