【问题标题】:AWS multi-zone distaster recovery and load balancing - best approach?AWS 多区灾难恢复和负载平衡 - 最佳方法?
【发布时间】:2014-06-17 00:43:32
【问题描述】:

我正在使用 Amazon Web Services,并尝试建立一个适度的系统来进行负载平衡和灾难恢复。该应用程序基于 PHP,前端使用 Zend Framework 2 (ZF2),本地 memcached 服务器和 MySQL 通过 RDS。所有服务器都运行 Amazon Linux。

我正在尝试将弹性负载均衡器配置为在两个不同的 AWS“可用区”中使用两台服务器。为了无缝地允许一个服务器关闭和另一个接管,我们需要共享 PHP 会话。所以我用 ZF2 设置了 PHP 数据库会话。

一般来说,我假设 AWS 区域中断的可能性大大低于单个服务器或应用程序本身出现致命问题的可能性。所以我正在考虑一种不同的方法:

  1. 同一可用区中的所有服务器
  2. 独立的 AWS ElastiCache 服务器(本质上是 memcached,不能跨区域使用)
  3. 存储在缓存中的 PHP 会话(内置对 memcached 的支持)
  4. 不同区域中的一个紧急服务器 - 在区域中断的极少数情况下,我们会更改 DNS 记录以使用不同的服务器

这是 DR 和负载平衡的良好标准方法吗?在区域中断的情况下,我不喜欢 DR 解决方案,但我没有看到区域下降太多,如果它简化设计,我们可能可以处理这种级别的风险。如果负载均衡器的权重可以是服务器,我会将所有权重放在一个区域上,而备份服务器的权重要低得多。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elasticache


    【解决方案1】:

    将所有 PHP 服务器保留在同一个 AZ 中与将它们分布在多个 AZ 之间有什么好处?除了非常小的(3-5ms)延迟改进之外,我想不出任何办法。既然没有什么坏处,为什么不将服务器分散到多个 AZ 中呢?

    您的 Elasticache memcached 仍然存在单点故障。如果运行 Elasticache 实例的可用区出现问题,您将丢失会话。您也可以切换到使用带 Redis 的 Elasticache(支持主/从)来实现缓存层的多可用区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 2017-05-23
      • 2017-11-03
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      相关资源
      最近更新 更多