Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 常见AWS故障-处理AZ故障转移_Amazon Web Services_Amazon Ec2_Amazon Rds_High Availability_Aws Vpc - Fatal编程技术网

Amazon web services 常见AWS故障-处理AZ故障转移

Amazon web services 常见AWS故障-处理AZ故障转移,amazon-web-services,amazon-ec2,amazon-rds,high-availability,aws-vpc,Amazon Web Services,Amazon Ec2,Amazon Rds,High Availability,Aws Vpc,具体地说,我有一个问题,在AWS环境中组织AZ故障切换的推荐方法是什么。此外,为了组织应用程序HA(高可用性),了解典型的AWS故障也很好。 因此,应用程序体系结构(AWS服务使用)如下所示: 这是AWS中比较典型的Web应用程序体系结构 有一条路由53解析某些ELB的ip 有一个具有ELB的公共子网,它将流量路由到Web服务器到私有VPC 在私有子网中,流量是:Web服务器->ELB->应用服务器 应用服务器将数据写入多个AZ RDS 这种部署的主要缺点是服务在一个AZ中处于活动状态,因为在多

具体地说,我有一个问题,在AWS环境中组织AZ故障切换的推荐方法是什么。此外,为了组织应用程序HA(高可用性),了解典型的AWS故障也很好。 因此,应用程序体系结构(AWS服务使用)如下所示: 这是AWS中比较典型的Web应用程序体系结构

  • 有一条路由53解析某些ELB的ip
  • 有一个具有ELB的公共子网,它将流量路由到Web服务器到私有VPC
  • 在私有子网中,流量是:Web服务器->ELB->应用服务器
  • 应用服务器将数据写入多个AZ RDS
  • 这种部署的主要缺点是服务在一个AZ中处于活动状态,因为在多AZ部署中,Amazon RDS会自动在不同的可用性区域中提供并维护同步备用副本。所以,master只在一个AZ中,而另一个AZ中的服务不允许写入RDS,因为它是备用的

    两个问题:

  • 对于这种部署,实现HA的更好方法是什么
  • AWS的常见故障是什么(如果一个AZ不可用,是否经常只发生在某些服务上(例如VPC/EC2/EBS其他问题?),或者通常整个AZ特定服务不可用)
  • 有关医管局采用上述方法的考虑:

  • RDS。来自AWS文档:“在数据库实例发生计划内或计划外停机的情况下,如果启用了Multi-AZ,Amazon RDS会自动切换到另一个可用性区域中的备用副本。所需时间…”。因此,AWS将自动更改RDS主机
  • 活动/非活动AZ。不同的健康检查可以添加到Route53中,基本上可以激活另一个AWS AZ。但如何使其与RDS同步(只有在RDS成为另一个AZ中的主控之后,才能使此AZ处于活动状态)
  • 更新
    维护一个主动和一个被动AZ的另一个原因是,我们的应用服务器应该支持设备IP地址的粘性(例如,它根据用户或设备的IP保持会话)。我们在每个维护它的AZ中都有一个EC2Web服务器实例(我们不能允许将请求转到不同的AZ)

    我认为您误解了可用性区域的工作方式。一个AZ中的服务可以连接到另一个AZ中的RDS主机。您应该在至少2个AZ中运行所有服务

    对于RDS,当then master出现故障或主设备所在的AZ出现故障时,RDS服务会将备用设备升级为主设备,并更新RDS端点的DNS,以便端点随后指向新的主设备


    为了处理RDS故障切换,您的代码需要做的就是通过重试优雅地处理突然断开的DB连接。

    您所说的“基于IP的”粘性到底是什么意思?来自特定客户端IP(不基于cookie)的请求将进入同一个应用程序服务器实例。如何使用ELB实现IP粘性?你要绕过厄尔巴鄂河吗?每个ELB只有一个EC2实例吗?为什么还要关心IP粘性?是否要确保共享internet连接的所有用户始终使用相同的应用程序服务器?为什么饼干粘性不是一个选项?我认为,如果您想在云中实现适当的故障转移支持,您需要重新考虑会话处理。也许您应该跨服务器复制会话,而不是使用粘性会话?