如何使 EBS 卷在零停机时间可用并在 ebs 卷崩溃时附加到 EC2 实例?

How to make EBS volume to be available with zero downtime and attach to EC2 instance when ebs volume crashes?

我有一个 r5.xlarge windows ec2 实例,它附加到 6TB EBS 卷上,EBS 的备份每周进行一次。 现在我想要一个更好的零停机解决方案。

  1. 如果 ec2 实例失败,我想创建新的 ec2 实例,它应该自动附加到 EBS 卷。
  2. 如果 EBS 卷崩溃,我希望备份快照可用并附加到 ec2 实例,零停机时间和卷内容立即可用。

有没有办法解决这个问题?如何解决?

您应该尝试使用 Elastic BeanStalk,它将自行处理自动缩放。您只需在创建时配置设置。 这应该是您需要的最接近的解决方案,正如上面 Marcin 所解释的那样,2 个单点故障的停机时间不会为零。所以 Elastic BeanStalk 似乎是最适合您的解决方案。

已更新:

因此,在这种情况下,您可以做的是添加负载平衡并添加自动缩放,以便您的问题的第一点得到注意,如果 ec2 实例通过自动缩放出现故障,将创建一个新实例并在 shell 脚本中,您可以添加命令以映射到 EBS。 对于 EBS,您无能为力,您可以定期备份,如果 EBS 出现故障,则将其替换为最新的备份或快照,另请检查以下内容 link: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html

如果想提高大盘的可用性,我推荐FSx。这不是那么简单 - 您需要设置 Active Directory,并且您的 EC2 需要加入 AD - 但是一旦您拥有所有这些组件(并且还有额外的成本) - FSx 提供比 EBS 更高的可用性,假设您正在使用多可用区设置。 更多信息 here

请注意,负载均衡器标签与您的问题无关 - 尽管要解决您的第一种情况,您可能需要负载均衡器来平衡两个 EC2 实例