通过全局端点和事件复制使应用程序具备区域容错能力 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过全局端点和事件复制使应用程序具备区域容错能力

您可以使用 Amazon EventBridge 全球终端节点提高应用程序的可用性。全局端点使您的应用程序具有区域容错能力,且无需支付额外费用。首先,您需要向端点分配 Amazon Route 53 运行状况检查。启动失效转移后,运行状况检查会报告“运行不正常”状态。在失效转移启动后的几分钟内,所有自定义事件都将路由到辅助区域中的事件总线,并由该事件总线进行处理。一旦运行状况检查报告“正常”状态,事件将由主区域中的事件总线处理。

使用全局端点时,可以启用事件复制。事件复制使用托管规则将所有自定义事件发送到主区域和辅助区域中的事件总线。

注意

如果您使用的是自定义总线,则需要在每个区域的相同账户中,使用名称相同的自定义总线,这样失效转移才能正常运行。

恢复时间和恢复点目标

恢复时间目标 (RTO) 是在故障后辅助区域开始接收事件所花费的时间。对于 RTO,该时间包括触发 CloudWatch 警报和更新 Route 53 运行状况检查状态的时间段。恢复点目标 (RPO) 可衡量故障期间未处理的数据。对于 RPO,该时间包括未复制到辅助区域,且在服务或区域恢复之前停留在主区域的事件。使用全局端点,如果您遵循我们的警报配置规范性指南,则可以预计 RTO 和 RPO 为 360 秒,最长为 420 秒。

事件复制

辅助区域中的事件以异步方式处理。这意味着不能保证两个区域中的事件会同时处理。触发失效转移后,事件由辅助区域处理,并在主区域可用时由主区域处理。启用事件复制会增加您的月度费用。有关更多信息,请参阅 Amazon EventBridge 定价

我们建议在设置全局端点时启用事件复制,原因如下:

  • 事件复制可帮助您验证全局端点配置是否正确。这有助于确保在失效转移时为您提供保障。

  • 要自动从失效转移事件中恢复,需要事件复制。如果您未启用事件复制,则必须手动将 Route 53 运行状况检查重置为“正常”,然后事件才会返回主区域。

复制的事件负载

以下是复制的事件负载示例:

注意

对于 region,列出了复制事件的源区域。

{ "version": "0", "id": "a908baa3-65e5-ab77-367e-527c0e71bbc2", "detail-type": "Test", "source": "test.service.com", "account": "0123456789", "time": "1900-01-01T00:00:00Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:0123456789:endpoint/MyEndpoint" ], "detail": { "a": "b" } }

创建全局端点

完成以下步骤,设置全局端点:

  1. 确保在主区域和辅助区域中有匹配的事件总线和规则。

  2. 创建 Route 53 运行状况检查,监控您的事件总线。要在创建运行状况检查时获得帮助,请在创建全局端点时选择新建运行状况检查

  3. 创建您的全局端点。

设置 Route 53 运行状况检查后,即可创建全局端点。

使用控制台创建全局端点

  1. 打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/

  2. 在导航窗格中,选择全局端点

  3. 选择 Create Endpoint(创建端点)。

  4. 输入端点的名称和说明。

  5. 对于主区域中的事件总线,请选择要与端点关联的事件总线。

  6. 对于辅助区域,请选择失效转移时要将事件转到的区域。

    注意

    辅助区域中的事件总线会自动填充且不可编辑。

  7. 对于触发失效转移和恢复的 Route 53 运行状况检查,请选择端点将监控的运行状况检查。如果您还没有运行状况检查,请选择 New Health ch eck 打开 Amazon CloudFormation 控制台并使用 CloudFormation 模板创建运行状况检查。

    注意

    缺少数据将导致运行状况检查失败。如果您只需要间歇性地发送事件,可以考虑使用更长的时间 MinimumEvaluationPeriod,或者将丢失的数据视为 “丢失” 而不是 “漏洞”。

  8. (可选)对于事件复制,请执行以下操作:

    1. 选择事件复制已启用

    2. 对于执行角色,选择创建新的 Amazon Identity and Access Management 角色或使用现有角色。执行以下操作:

      • 选择 Create a new role for this specific resource。您也可以更新角色名称,创建新角色。

      • 选择使用现有角色。然后,执行角色选择要使用的所需角色。

  9. 选择创建

使用 API 创建全局端点

要使用 EventBridge API 创建全局终端节点,请参阅 Amazon EventBridge API 参考CreateEndpoint中的。

使用 Amazon CloudFormation创建全局端点

要使用 Amazon CloudFormation API 创建全局终端节点,请参阅 Amazon CloudFormation 用户指南AWS::Events::Endpoints中的。

使用 Amazon SDK 使用全局端点

注意

即将推出对 C++ 的支持。

使用 S Amazon DK 处理全局端点时,请记住以下几点:

可用区

以下区域支持全局端点。

  • 美国东部(弗吉尼亚州北部)

  • 美国东部(俄亥俄州)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • 加拿大(中部)

  • 欧洲地区(法兰克福)

  • 欧洲地区(爱尔兰)

  • 欧洲地区(伦敦)

  • 欧洲地区(米兰)

  • 欧洲地区(巴黎)

  • 欧洲地区(斯德哥尔摩)

  • 亚太地区(孟买)

  • 亚太地区(大阪)

  • 亚太地区(首尔)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太地区(东京)

  • 南美洲(圣保罗)