S3存储桶是否与特定地区相关?

93

当我们在AWS控制台中前往S3,并选择“全局”选项时,会显示:

"S3 does not require region selection."

但当我们创建新的存储桶时,它会要求选择区域!

因此,S3存储桶是否具有特定的地区性?


1
如果我没记错的话,当S3首次启动时有一个全局区域,如果您创建了一个存储桶,那么您仍然可以访问它,但现在您无法创建该区域。 - Michael Munsey
6个回答

93
用户界面显示了所有区域的存储桶。但是存储桶存在于特定的区域,您在创建存储桶时需要指定该区域。

11
你可以从任何区域访问任何存储桶,但如果你希望访问速度,你需要选择与所在区域相同的存储桶。这个考虑也适用于所有其他区域的AWS服务。关于原始的“经典”区域是全球可用而新的区域不是全球可用的评论并不正确。原始区域始终是us-east-1(弗吉尼亚州)。该区域仍然存在,并且像所有其他区域一样可以全球访问,但你应该选择距离其他服务最近的区域。 - Mark B
谢谢!我的问题是:我创建了一个预签名的POST,但它不允许我从另一个区域上传文件(出现“拒绝访问”),但在我的区域上传可以正常工作。这是S3区域的作用,还是我的某个错误?我认为这可能涵盖在这个问题中。 - Victor Sergienko
一个预签名的POST通常是从浏览器中运行的,但听起来你正在尝试在EC2实例或其他地方使用它来上传文件?你是如何在区域内运行POST的?我不确定这个问题/答案是否直接涵盖了你的问题。 - Mark B
抱歉,我在非AWS意义上使用了“region” - 一个区域。我从位于us-east-1的个人电脑向欧洲存储桶POST预签名v4签名(v4签名是特定于区域的),但没有成功。我会再次检查以确保这不是我的错误。 - Victor Sergienko

19

S3存储桶具有区域特定性,您可以检查http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region以获取基于区域的终端点列表。

从创建S3存储桶的文档中可以看出:

Amazon S3在指定的区域内创建存储桶。您可以选择任何靠近您地理位置的AWS区域来优化延迟,降低成本或满足监管要求。例如,如果您位于欧洲,您可能会发现在欧盟(爱尔兰)或欧盟(法兰克福)区域创建存储桶非常优势。有关AWS Amazon S3区域的列表,请参见AWS通用参考中的“区域和终端点”。

另外,如果您查看每个存储桶的属性,也可以从UI界面中看到原始区域。

输入图像描述


5

是的,S3桶是特定于区域的。

创建新桶时,您需要选择该桶的目标区域。

例如:s3 new bucket

希望这有所帮助。


5
现在的工作原理是,如果您希望全球快速加载内容,您需要为想要从中快速加载数据的每个区域创建一个存储桶,但使用“版本控制”自动将内容从一个存储桶复制到另一个存储桶。
单击其中一个存储桶,然后转到管理,然后进入“复制”。按照说明设置规则,将数据从一个存储桶复制到另一个存储桶。
恭喜,现在您可以从一个存储桶中获取全球快速内容。
我希望这听起来有点偏离主题,但我认为这正是我们所有人真正想要实现的。

3
你不想使用CloudFront吗? - Boris
如果我们的目标是从不同地区快速加载,我认为更好的解决方案是像@Boris上面提到的那样,在CloudFront后面拥有S3(在这种情况下,特定的边缘位置将在特定时间段内缓存已请求的文件)当您的目标是数据耐久性时(在特定地区或数据丢失的情况下,您在另一个地区的另一个S3存储桶中有一份副本),在多个S3存储桶中复制数据是有意义的。 - Eugene Rotar

2

有一个相关答案强调了一个重要的点:尽管控制台和CLI允许查看所有区域的存储桶,但由于桶名称必须是全局唯一的,因此存储桶仍然与区域绑定。

这很重要,例如在处理权限时。您可能具有基础设施即代码,其中包含为当前区域的所有存储桶授予权限的角色。尽管CLI可能会给您留下新创建的存储桶可以在所有区域中看到的印象,但实际上,如果未明确授予在一个区域运行但需要访问另一个区域中的S3存储桶的服务访问权限,则可能会出现错误。


0
虽然S3是一个全球服务,但选择区域对于以下特定原因是必需的:
1. 数据居住地和合规性: 不同的区域有特定的数据居住地和合规性要求。通过允许用户为他们的S3存储桶选择特定的AWS区域,AWS可以满足这些要求。
2. 数据延迟和性能: 虽然S3被设计用于全球访问,但数据中心(AWS区域)的物理位置可能会影响数据传输延迟。选择靠近用户或应用程序的区域可以降低延迟并提高数据访问速度。这对于低延迟访问至关重要的应用程序尤为重要。
3. 成本考虑: AWS的定价可能因区域而异,并且不同区域之间的数据传输成本可能不同。通过选择特定的区域,用户可以根据其使用模式和需求来优化成本。需要注意的是,跨区域传输数据可能会产生额外的费用。
希望这能解答您的疑问 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接