在此博文中,我们将为您提供用于在 AWS Outposts 服务器上实现 Amazon EC2实例高可用性的代码示例和注意事项。此部分重点关注需在重启时保持状态的状态应用程序,涉及如何利用 AWS 工具自动化 EC2实例的重新启动,确保应用程序在故障情况下能保持高可用性。
本博文是两部分系列“在 AWS Outposts 服务器上实现 Amazon EC2 实例高可用性”的第二部分。本文提供了代码示例以及实现自定义逻辑以自动化 Amazon Elastic Compute Cloud (Amazon EC2) 在
上的重启的考虑因素。文章主要关注那些在重启时需要维护 状态的状态类应用程序。
提供计算和网络服务,非常适合低延迟、本地数据处理需求,如零售店、分支机构、医疗服务提供位置或空间受限的环境。Outposts 服务器利用 EC2实例存储提供非持久的块存储,许多应用程序使用实例存储来保存必须在灾难恢复(DR)事件中保留的状态信息。本文将教您如何实现自定义逻辑,以使用两个或更多服务器提供应用程序在 Outposts 服务器上运行时的高可用性(HA),从而实现 N+1容错。提供的代码旨在帮助您开始创建自定义重启逻辑,您可以根据自己的工作负载需求进一步修改。
此解决方案适用于设置为强韧配对的两个 Outposts 服务器。若在同一数据中心运行三个或更多服务器,每个服务器需要映射到一个备用服务器以确保
HA。如果源和目标 Outposts 服务器同时不可用或发生故障,则需额外用户操作进行解决。在这种情况下,将向您在执行 init.py
脚本时提供的通知邮箱参数所指定的地址发送通知邮件,告知您 EC2 实例重启的尝试失败。
 一致的 AMI 创建频率。
要为 AMI 创建 Systems Manager 参数,首先导航到您的 Systems Manager 控制台。在 应用程序管理 中选择
参数存储 和 创建参数 。您可以根据需要选择标准或高级层次。后文中 AMI ID 为
ami-038c878d31d9d0bfb
,以下是用于此次操作的参数详细信息示例:
删除)
现在您可以修改在第1部分创建的应用程序启动模板,并指定刚刚创建的 Systems Manager 参数。为此,导航到您的 Amazon EC2 控制台,在 实例 中选择 启动模板 选项。创建该启动模板的新版本,选择 浏览更多 AMIs 选项,并选择搜索框右侧的箭头按钮。选择 指定自定义值/Systems Manager 参数 。

。
自定义的 Amazon EC2 重启逻辑通过 实现,因此唯一需要清理的就是删除您 AWS账户中的 CloudFormation 堆栈。这样将删除通过 CloudFormation 堆栈部署的所有资源。要删除 Systems Manager自动化,从主机管理中取消注册您的 EC2 实例并删除该区域中的 Amazon EBS 支持的 AMI。
通过 AWS 工具(如 CloudFormation、、SystemsManager 和 )使用自定义逻辑可以帮助您面向 Outposts服务器上的状态工作负载架构实现高可用性。实现本文中介绍的自定义逻辑,您可以自动将运行在源 Outposts 服务器上的 EC2 实例重启到备用 Outposts服务器,同时保持应用程序的状态数据。这减少了硬件或服务链接故障导致您的应用程序停机的时间。本文中提供的代码也可以进一步扩展以满足您的具体工作负载需求。
请注意,虽然使用 基础设施即代码 (IaC) 可以提高应用程序的可用性并在多个 Outposts 服务器间标准化部署,但定期进行故障演练至关重要,以测试现有的自定义逻辑,确保您了解应用程序在故障重启时的预期行为。有关 Outposts服务器的更多信息,请访问 。
Leave a Reply