常见的AWS故障 - 处理AZ故障转移

时间:2017-08-25 15:09:45

标签: amazon-web-services amazon-ec2 amazon-rds high-availability aws-vpc

具体来说,我有一个问题是什么是在AWS环境中组织AZ故障转移的推荐方法。此外,为了组织应用程序HA(高可用性),最好了解典型的AWS故障。 因此,应用程序架构(AWS服务使用)如下: 它在AWS中的典型Web应用程序架构

  1. 有一条路线53解决了一些ELB的ip。
  2. 存在具有ELB的公有子网,它将流量路由到Web服务器到私有VPC;
  3. 在私有子网中流量转到:Web服务器 - > ELB->应用程序服务器;
  4. Application Servers将数据写入多可用区RDS。
  5. 此类部署的主要缺点是服务在一个AZ中处于活动状态,因为在多可用区部署中,Amazon RDS会自动在不同的可用区中配置和维护同步备用副本。因此,master只在一个AZ中,另一个AZ中的服务不允许写入RDS,因为它处于待机状态。

    两个问题:

    1. 为此类部署实施HA的更好方法是什么?
    2. 常见的AWS失败是什么(如果一个AZ不可用,它是否经常仅在某些服务中发生(例如VPC / EC2 / EBS其他问题?),或者通常它的整个AZ特定服务是不可用)?
    3. 关于此类方法的HA的考虑因素:

      1. RDS。来自AWS文档:"如果您的数据库实例计划内或计划外中断,如果您启用了多可用区,则Amazon RDS会自动切换到另一个可用区中的备用副本。需要的时间....."。因此,AWS Automatically将更改RDS Master。
      2. 有效/无效AZ。可以将不同的运行状况检查添加到Route53,并基本上将Active设置为另一个AWS AZ。但是如何使它与RDS同步(只有在RDS成为另一个AZ的主设备后才能激活此AZ)?
      3. 更新 维持一个活动AZ和一个被动AZ的另一个原因是我们的应用服务器应该支持设备IP地址的粘性(例如,它基于用户或设备的IP保持会话)。我们在每个AZ中都有1个EC2 Web服务器实例来维护它(我们不允许向不同的AZ发送请求)。

1 个答案:

答案 0 :(得分:3)

我认为您误解了可用区域的工作原理。一个AZ中的服务可以连接到不同AZ中的RDS主服务器。您应该至少在2个AZ中运行所有服务。

对于RDS,当主设备发生故障或主设备处于关闭状态的AZ时,RDS服务将升级备用设备以主设备并更新RDS端点的DNS,以便端点指向新主设备。

为了处理RDS故障转移,您需要做的所有代码都是通过重试来优雅地处理突然的数据库断开连接。