如何在不停机的情况下升级单个实例的大小

如何在不停机的情况下升级单个实例的大小

由于我们没有进行负载平衡,恐怕没有办法做到这一点,但我想知道是否有任何方法可以将 EC2 EBS 支持的实例升级到更大的尺寸而不会停机。

首先,我们将所有内容放在一个实例上:我们的应用程序和我们的数据库(mongodb)。

我的想法是这样的:我知道您可以创建 EBS 的快照和实例的 AMI。我们已经有一个 AMI,并且每小时创建一次快照。如果我启动一个更大的新独立实例,然后实施(不确定这里的正确术语是什么)快照以使我们的数据库保持最新,那么我就可以将域的 A 记录从旧 IP 地址切换到新 IP 地址。但是,我担心从快照复制数据后,在更改 A 记录并传播该更改所需的时间里,数据可能会过时。有没有办法防止这种情况发生,有没有比我建议的更好的方法?

答案1

  1. 给自己一个维护窗口并通知用户可能的停机时间。
  2. 在维护期前几天,更新 DNS 条目,使其具有非常小的生存时间值 (TTL)。例如,5 分钟。
  3. 停止您的实例。
  4. 将实例的类型更改为更大的类型。
  5. 重新启动您的实例。
  6. 如果您还没有,请借此机会分配一个弹性 IP。
  7. 更新您的 DNS。

如果一切顺利的话,您的实例只会停机几分钟。

根据 DNS 条目的生存时间值,DNS 更改可能需要一些时间才能传播。在此期间,即使您的实例已启动并运行,您的客户也无法访问您的实例。因此,请为自己提供一个弹性 IP 地址,以便将来避免此问题。

相关内容