通过全局端点和事件复制使应用程序具备区域容错能力 - 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. 访问 https://console.aws.amazon.com/events/,打开 Amazon EventBridge 控制台。

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

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

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

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

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

    注意

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

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

    注意

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

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

    1. 选择事件复制已启用

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

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

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

  9. 选择 Create(创建)。

使用 API 创建全局端点

要使用 EventBridge API 创建全局端点,请参阅《Amazon Eventbridge API 参考》中的 CreateEndpoint

使用 Amazon CloudFormation 创建全局端点

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

使用 Amazon 开发工具包处理全局端点

注意

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

用 Amazon 开发工具包处理全局端点时,请牢记以下几点:

  • 您需要针对特定开发工具包安装 Amazon 通用运行时 (CRT) 库。如果没有安装 CRT,会收到一条异常消息,指示需要安装的内容。有关更多信息,请参阅下列内容:

  • 创建全局端点后,您需要将 endpointIdEventBusName 添加到您使用的任何 PutEvents 调用中。

  • 全局端点支持签名版本 4A。此版本的 SigV4 允许对多个 Amazon Web Services 区域签署请求。这对于可能导致从多个区域之一访问数据的 API 操作非常有用。使用 Amazon 开发工具包时,您可以提供凭证,对全局端点的请求将使用签名版本 4A,无需进行其他配置。有关 SigV4A 的更多信息,请参阅 Amazon 一般参考中的签署 Amazon API 请求

可用区

以下区域支持全局端点。

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

  • 美国东部(俄亥俄州)

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

  • 美国西部(俄勒冈州)

  • 加拿大(中部)

  • 欧洲地区(法兰克福)

  • 欧洲地区(爱尔兰)

  • 欧洲地区(伦敦)

  • 欧洲地区(米兰)

  • 欧洲地区(巴黎)

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

  • 亚太地区(孟买)

  • 亚太地区(大阪)

  • 亚太地区(首尔)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太地区(东京)

  • 南美洲(圣保罗)