【发布时间】:2017-08-26 04:24:45
【问题描述】:
具体来说,我有一个问题,在 AWS 环境中组织 AZ 故障转移的推荐方法是什么。此外,最好了解典型的 AWS 故障以组织应用程序 HA(高可用性)。 因此,应用程序架构(AWS 服务使用)如下: 它或多或少是 AWS 中典型的 Web 应用程序架构
- 有路由 53 可以解析一些 ELB 的 ip。
- 有一个公共子网有 ELB,它将流量路由到 Web 服务器到私有 VPC;
- 在私有子网中,流量流向:Web 服务器 -> ELB-> 应用服务器;
- 应用服务器将数据写入多可用区 RDS。
这种部署的主要缺点是服务在一个可用区中处于活动状态,因为在多可用区部署中,Amazon RDS 会自动在不同的可用区中预置和维护一个同步备用副本。所以,master 只在一个 AZ 里,另外一个 AZ 里的服务因为是standby,所以不允许写RDS。
两个问题:
- 为此类部署实施 HA 的更好方法是什么?
- 常见的 AWS 故障是什么(如果一个 AZ 不可用,是否经常只发生在某些服务上(例如 VPC/EC2/EBS 其他问题?)或者通常是整个 AZ 特定的服务不可用)?
关于这种方法的 HA 的注意事项:
- RDS。来自 AWS 文档:“如果您的数据库实例发生计划内或计划外中断,如果您启用了多可用区,Amazon RDS 会自动切换到另一个可用区中的备用副本。所花费的时间......”。因此,AWS 会自动更改 RDS Master。
- 活动/非活动 AZ。可以将不同的健康检查添加到 Route53 并基本上使 Active 成为另一个 AWS AZ。但是如何让它与RDS同步(只有当RDS成为另一个AZ的master后才能激活这个AZ)?
更新 维护一个主动和一个被动 AZ 的另一个原因是我们的应用程序服务器应该支持设备 IP 地址的粘性(例如,它根据用户或设备的 IP 保持会话)。我们在每个 AZ 中都有 1 个 EC2 Web 服务器实例来维护它(我们不能允许将请求发送到不同的 AZ)。
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-rds high-availability aws-vpc