首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在选择将实例启动到特定可用性区域的同时实现EC2高可用性

如何在选择将实例启动到特定可用性区域的同时实现EC2高可用性
EN

Stack Overflow用户
提问于 2015-08-01 01:44:46
回答 2查看 333关注 0票数 1

--我正在寻找如何在一个实例部署中指定要部署的区域,并进行自动标号,同时也可以将自动故障转移到另一个区域--是否存在实现此目标的任何选项?

更多语境

由于保留实例如何链接到单个可用性区域(AZ),我们发现它是一个很好的策略(从“易于管理”的/simplicity角度来看),当为我们的dev环境购买保留实例时,将它们全部购买到单个区域中,然后在该区域中启动所有dev实例。(在生产中,我们跨区域购买,并与指定跨所有区域部署的自动规模组一起运行)。

我在寻找如何:

  1. 指定我希望将一个实例部署到的AZ,这样我就可以利用绑定到单个(且一致) AZ的保留实例。

同时也有

  1. 如果主区域失败,可以将故障转移到备用区域(是的,在移除保留实例之前,您将支付更多的钱,但假定故障转移是临时的,例如8小时,并且一旦区域恢复联机,您就可以恢复故障)。

问题是,我可以看到你如何可以实现1或2,但不是同时1和2。

为了实现1,我将指定要部署到的单个子网(因此也是AZ),作为自动规模组配置的一部分。

为了实现2,我将在不同的AZs中指定多个子网,同时将min/max/容量设置保持在1。如果实例不确定地部署到的AZ失败,自动规模组将在另一个AZ中旋转一个实例。

不能同时执行1和2操作,以实现将最小/最大/容量为1的自动规模组部署到哪个区域,同时如果服务器所在的区域出现故障,则具有自动故障转移;它们是相互竞争的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-01 19:54:04

此解决方案使用所有AWS机制来实现所需的效果:

  1. 通过在第一个自动规模组的配置中指定该区域的子网,将实例启动到首选区域;组的min/max/设置为1/1/1。
  2. 创建第二个自动示波器组,其启动配置与第一个相同,,但另一个自动示波器组设置为min/max/期望为0/1/0;该组应配置区域中每个可用区域中的子网,但第一自尺度组中指定的子网除外。
  3. 将第二自尺度组与与第一自尺度组相关联的ELB联系起来。
  4. 为#1的自动示波器组设置一个触发不健康主机警报的CloudWatch警报;让警报将#2自动示波器组的警报更改为min/max/期望的1/1/1。(以及发送通知,以使您知道发生了这种情况)。

如果您不期望得到不健康的主机警报,除非发生实际主机故障或AZ崩溃--这在我们的情况下是正确的--这是一个可行的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2015-08-01 17:00:25

正如你已经知道的,(从2015年中期起)这是不可能的。严格地说,自动缩放没有故障转移的概念。如果您想拥有高可用性,它希望您在每个AZ和机器中提供多个AZ和足够的机器。如果你不这样做,你就不会得到它。

我能想象的唯一可能的解决办法是自己设置一个看门狗,这会在AZ变得不可用时改变自动缩放组的子网。没那么难做,但也没有那么可靠。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31757401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档