本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用自动修复来更换失败的实例
重要
AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答 和 将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager:
每个实例都有一个定期与服务通信的 AWS OpsWorks Stacks 代理。AWS OpsWorksStacks 使用这种通信方式来监控实例的运行状况。如果代理超过五分钟左右的时间未与服务通信,AWS OpsWorks Stacks 将认为该实例已失败。
自动修复是在层级别设置的;您可以通过编辑层设置来更改自动修复设置,如以下屏幕截图所示。
注意
实例可能属于多个层中的某个层。如果这些层中的任何层禁用了自动修复,则 AWS OpsWorks Stacks 在实例失败后不会修复该实例。
如果层启用了自动修复 (默认设置),则 AWS OpsWorks Stacks 会自动更换层的失败的实例,如下所示:
- 实例存储支持的实例
-
-
停止 Amazon EC2 实例,并验证其是否已关闭。
-
删除根卷上的数据。
-
创建具有相同的主机名、配置和层成员关系的新 Amazon EC2 实例。
-
重新连接任何 Amazon EBS 卷 (包括最初启动原有实例后连接的卷)。
-
分配新的公有和私有 IP 地址。
-
如果原有实例与弹性 IP 地址关联,则会将新的实例与相同的 IP 地址关联。
-
- 由 Amazon EBS 提供支持的实例
-
-
停止 Amazon EC2 实例,并验证其是否已停止。
-
启动 EC2 实例。
-
当自动修复的实例恢复为联机状态后,AWS OpsWorks Stacks 会在堆栈的所有实例上触发 Configure 生命周期事件。关联的堆栈配置和部署属性包括实例的公有和私有 IP 地址。自定义配置配方可以从节点对象中获取新的 IP 地址。
如果您为层的实例指定 Amazon EBS 卷,AWS OpsWorks Stacks 会创建一个新卷并在实例启动时将该卷连接到每个实例。如果您后来又想将卷与实例分离,可使用 Resources 页面。
当 AWS OpsWorks Stacks 自动修复层的某个实例时,它将按以下方式处理卷:
-
如果卷在实例失败时已经连接到实例了,则系统将保存该卷及其数据,然后 AWS OpsWorks Stacks 会将其连接到新的实例。
-
如果卷在实例失败时没有连接到实例,则 AWS OpsWorks Stacks 将创建一个新的空卷 (具有层指定的配置),并将该卷连接到新的实例。
默认情况下为所有层启用了自动修复功能,但您可以编辑层的常规设置来禁用这项功能。
重要
如果您启用了自动修复功能,请务必执行以下操作:
-
仅使用 AWS OpsWorks Stacks 控制台、CLI 或 API 来停止实例。
如果您通过其他方式停止实例(例如,使用 Amazon EC2 控制台),则 AWS OpsWorks Stacks 会认为该实例已失败,并自动修复该实例。
-
使用 Amazon EBS 卷存储您不想在自动修复实例后丢失的任何数据。
自动修复功能会停止原有的 Amazon EC2 实例,这会销毁没有存储到 Amazon EBS 卷上的任何数据。Amazon EBS 卷将重新连接到新的实例上,这将保留存储的所有数据。