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

恐怕有没有办法做到这一点,因为我们没有负载平衡,但我想知道是否有任何方法来升级EC2 EBS支持的实例到一个更大的大小没有停机时间。

首先,我们有一个实例的一切:我们的应用程序和我们的数据库(mongodb)。

这就是我所想的:我知道你可以创buildEBS的快照和实例的AMI。 我们已经有一个AMI,我们创build每小时快照。 如果我启动一个更大的单独的新实例,然后实现(不知道什么是正确的术语)快照,以便我们的数据库是最新的,那么我可以从旧的IP切换我们的域的Alogging地址到新的。 但是,在复制快照中的数据之后,只要更改Alogging并使该更改传播,恐怕数据可能会过时。 有没有办法来防止这种情况,有没有更好的方法来做到这一点比我所build议的要好?

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

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

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