亚马逊AWS官方博客

新功能 — Amazon S3 多区域接入点的失效转移控制



我们推出了 Amazon S3 多区域接入点,为您提供跨越多个 AWS 区域的 S3 存储桶的全球端点。借助 S3 多区域接入点,您可以利用单个区域中的相同简单架构构建多区域应用程序。这项炫酷而强大的功能使用 AWS Global Accelerator 来监控网络拥塞和连接,并将流量路由到最接近的数据副本。如果客户端与特定区域中的存储桶之间的连接丢失,则多区域接入点会自动将所有流量路由到另一个区域中最近的存储桶(通过 S3 复制同步)。

除了我刚才描述的使用案例外,客户还告诉我们,他们想要构建高度可用的多区域应用程序,并且需要明确控制失效转移和失效自动恢复。

新的失效转移控制
今天,我们将为多区域接入点添加失效转移控制。这些控制允许您在几分钟内将通过 Amazon S3 多区域接入点路由的 S3 数据访问请求流量转移到备用 AWS 区域,以测试和构建高可用性应用程序,从而实现业务连续性。

现有的多区域接入点模型将所有区域视为活动区域,并可以向其中任何一个区域发送流量。我们今天推出的模型允许您将区域指定为主动或被动。主动区域中的存储桶从多区域接入点接收流量(GET、PUT 和其他请求),被动区域中的存储桶不接收流量。无论某个区域相对于特定的多区域接入点处于主动还是被动状态,Amazon S3 跨区域复制都会运行。

首先,我创建了一个新的多区域接入点,该接入点引用了不同 AWS 区域中的两个或更多 S3 存储桶。我为我的多区域接入点 (jbarr-mrap-1) 输入一个名称,然后选择存储桶:

我保留 Amazon S3 阻止公有访问设置不变,然后单击创建多区域接入点

然后我等到我的多区域接入点准备就绪(通常只需几分钟):

默认情况下,我的新多区域接入点会将流量路由到所有存储桶,其行为与我们推出此新功能之前一样。但是,我现在可以控制路由和失效转移。我单击多区域接入点,然后单击复制和失效转移选项卡(以前只是复制选项卡)。现在,地图允许我查看我的复制规则和失效转移状态:

我可以向下滚动查看、创建和修改我的复制规则:

如您所见,我为本演示创建的复制规则保留了存储类别。S3 Intellignet-Tiering 通常是更好的选择,因为在失效转移后,我可以在不增加数据检索成本的情况下自动节省成本。我可以使用 S3 复制指标来确保我的复制规则按预期执行。此外,S3 Replication Time Control 提供了可预测的复制时间(由 SLA 支持),也应予以考虑。

该选项卡还包括失效转移配置

要更改我的失效转移配置,我选择感兴趣的存储桶,然后单击编辑失效转移配置。我的应用程序在亚太地区(东京) 区域运行并在那里使用存储桶,所以我将东京区域保留为活动状态,将其他区域设置为被动状态:

一切都很好,直到有一天哥斯拉醒来吃掉了东京及其周边地区的所有海底电缆。我快速启动控制台,返回失效转移配置,选择主动东京区域和被动大阪区域,然后单击失效转移

我确认了我的意图,再次单击失效转移,失效转移在两分钟内完成:

后来,在哥斯拉被制服并且电缆修复好之后,我可以恢复到东京地区原来的存储桶:

注意事项
在开始使用这项重要的新 AWS 功能时,需要记住以下几点:

主动/被动 — 必须始终至少有一个活动区域。

CLI 和 API 访问 — 您可以通过调用 SubmitMultiRegionAccessPointRoutes 以编程方式启动失效转移。您可以通过调用 GetMultiRegionAccessPointRoutes 来检索当前的路由集。这些 API 的端点在美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(悉尼、东京)和欧洲地区(爱尔兰)区域可用。

定价 — 除了使用新 API 之外,此功能无需额外付费,新的 API 按标准的 S3 GET 和 PUT 请求计费。有关 S3 多区域接入点的使用价格,请参阅 Amazon S3 定价页面的数据传输选项卡。

区域 — 此功能适用于目前提供多区域接入点的所有 AWS 区域。

Jeff