S3区域中断时跨区域复制是否100%可靠吗?


19

Amazon S3提供了跨区域复制的选项,该选项应该可以很好地容忍区域/区域中断。

这是否意味着那些对断电感到愤怒的人没有利用这一方面?

还是跨区域复制不完全是万无一失,并且不会有所帮助?



@Evgeny谢谢。在问这个问题之前,我正在阅读同一篇文章:)
Dawny33

Answers:


11

复制时的缺点来自以下注释:

如果您使用美国东部(弗吉尼亚北部)终端节点(s3.amazonaws.com),而不是特定于区域的终端节点,Amazon S3默认会将任何虚拟托管样式请求路由到美国东部(弗吉尼亚北部)区域例如s3-eu-west-1.amazonaws.com)。

使用复制时,通常让AWS通过s3.amazonaws.com将服务器中的REST请求作为目标,将别名路由到一个区域,并由重定向完成它的工作。

每当弗吉尼亚州N.维吉尼亚州(N.Virginia)发生故障时,魔术就会停止工作,并且您无法访问数据并不得不更新配置以选择特定的区域终结点。

问题不是来自DNS(对存储桶本身的请求将起作用),而是来自S3客户端,S3客户端将在访问存储桶之前连接到S3 API端点,在这种情况下,DNS解析已完成s3.amazonaws.com,这是我们-东1端点。

当您使用区域别名时,您将通过包含AWS的运行状况检查来放松区域之间的负载平衡。

如果您使用针对区域快速切换的DNS cname,则对您的DNS TTL负责,但不能保证客户端ISP的缓存服务器会兑现您的价值(客户端可能会遇到的众多缓存之一)。

最后,如果您尝试自己进行负载平衡,则可能会创建与AWS相同的SPOF,并增加了维护它的负担。

AWS正在致力于此工作,但这就是我撰写本文时所拥有的全部信息。


根据docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html,可以将“ bucketname.s3-eu-west-1.amazonaws.com”(替换您喜欢的区域)用作DNS别名。IFF有效,它可以是一种快速切换的方式(与您的预设TTL允许的速度一样快)
Michael Bravo

@MichaelBravo扩展了您的问题的答案:)
Tensibai

“即使在理论上可以使用CNAME到区域终点时,权威的答案依赖于N.Virginia服务,据我知道,我已经知道了它” 你把报价约路由到美国东部地区默认情况下没有上下文。在example-bucket存储桶存在之前,example-bucket.s3.amazonaws.com已经在DNS中指向US East。在初始存储桶创建后的几分钟内,这将永久更改为指向正确的区域端点。这里的警告是,创建存储桶后,此主机名最初可能会短暂地被错误地路由-以后不要这样做。
Michael-sqlbot

...因此,“每当弗吉尼亚北部出现故障时,魔术就会停止工作,并且您无法通过DNS别名方法访问任何区域的数据”是不正确的。其他地区的存储桶不受us-east-1中断的影响,包括使用这种主机名样式引用的存储桶。
Michael-sqlbot

1
不,你没有。他们会在s3.amazonaws.com创建存储区后的几分钟内为您的存储区中的存储区更改DNS条目,并且此更改独立于us-east-1持续存在。在其他区域创建存储桶,并在创建存储桶your-bucket-name.s3.amazonaws.com之前,之中和之后的几分钟内观察分辨率。s3-1.amazonaws.com创建存储桶后,信息会被推送到Route 53 的区域中,并一直保留在该区域中,而无需进一步依赖us-east-1。
Michael-sqlbot

10

许多大公司可能会因为不使用此功能而感到不满。它的确增加了额外成本,并且从历史上讲,即使实施了任何种类的实际灾难恢复解决方案,也都未经测试。

除了成本问题外,积极使用跨区域复制的公司还可以提供有关复制对象所需的延迟的有效考虑。S3不允许(据我所知)对复制对象的写后读取一致性,但它允许在单个区域中存储桶。

这个SE问题引起了一个问题,即对象没有正确复制,或者复制时间太长。如果跨区域复制是以最终一致性的方式完成的,则有很多问题需要解决。


8
我将进一步强调S3跨区域复制为某些操作提供最终一致性这一事实。考虑到这一点并非微不足道。根据应用程序的不同,可能完全无法接受。无论如何,它都不是万无一失的(如果有人认为这是魔术,则可能导致更大的问题)
亚历山大
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.