使用自动修复来更换失败的实例 - AWS OpsWorks

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

使用自动修复来更换失败的实例

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

每个实例都有一个 AWS OpsWorks 堆叠定期与服务通信的代理。 AWS OpsWorks Stacks 使用这种通信方式来监控实例的运行状况。如果代理与服务部门通信的时间不超过大约五分钟, AWS OpsWorks Stacks 认为该实例已失败。

自动修复是在层级别设置的;您可以通过编辑层设置来更改自动修复设置,如以下屏幕截图所示。

Layer settings interface showing Auto healing enabled option set to Yes.
注意

实例可能属于多个层中的某个层。如果其中任何一个图层禁用了自动修复, AWS OpsWorks 如果实例失败,堆栈不会对其进行治疗。

如果图层启用了自动修复(默认设置)AWS OpsWorks 堆栈会自动替换图层的失败实例,如下所示:

实例存储支持的实例
  1. 停止 Amazon EC2 实例,并验证其是否已关闭。

  2. 删除根卷上的数据。

  3. 使用相同的主机名、配置和层成员资格创建新 Amazon EC2 实例。

  4. 重新连接所有 Amazon EBS 卷,包括在旧实例最初启动后连接的卷。

  5. 分配新的公有和私有 IP 地址。

  6. 如果原有实例与弹性 IP 地址关联,则会将新的实例与相同的 IP 地址关联。

由亚马逊EBS支持的实例
  1. 停止 Amazon EC2 实例,并验证其是否已停止。

  2. 启动实EC2例。

在自动修复的实例恢复在线状态后, AWS OpsWorks 堆栈会在堆栈的所有实例上触发配置生命周期事件。关联的堆栈配置和部署属性包括实例的公有和私有 IP 地址。自定义配置配方可以从节点对象中获取新的 IP 地址。

如果您为层的实例指定 Amazon EBS 卷, AWS OpsWorks Stacks 会创建一个新卷,并在实例启动时将其连接到每个实例。如果您后来又想将卷与实例分离,可使用 Resources 页面。

时间 AWS OpsWorks Stacks auto 会治疗一个图层的实例,它通过以下方式处理体积:

  • 如果在实例出现故障时卷已连接到实例,则会保存该卷及其数据,并且 AWS OpsWorks Stacks 将其附加到新实例。

  • 如果实例出现故障时卷未连接到实例, AWS OpsWorks Stacks 使用层指定的配置创建一个新的空卷,并将该卷连接到新实例。

默认情况下为所有层启用了自动修复功能,但您可以编辑层的常规设置来禁用这项功能。

重要

如果您启用了自动修复功能,请务必执行以下操作:

  • 仅使用 AWS OpsWorks 堆栈控制台CLI、或API用于停止实例。

    如果您以任何其他方式停止实例,例如使用 Amazon EC2 控制台, AWS OpsWorks Stacks 会将实例视为失败,auto 会对其进行治疗。

  • 使用 Amazon EBS 卷存储实例自动修复后您不想丢失的所有数据。

    自动修复会停止旧的 Amazon EC2 实例,该实例会销毁所有未存储在 Amazon EBS 卷上的数据。Amazon EBS 卷将重新连接到新实例,新实例会保留所有存储的数据。