我正在查看 RightScale 的架构图,并发现了他们的基本 4 服务器设置(带有 EBS): http://support.rightscale.com/12-Guides/EC2_Best_Practices/EC2_Site_Architecture_Diagrams#Basic_4-Server_Setup_with_EBS
我假设前面的前 2 个 IP 是 EC2 静态 IP(您在其中为您的域发布多个 IP)。
我不太明白的两件事是
- 为什么不使用亚马逊的弹性负载平衡(ELB)?
- 为什么不使用亚马逊的关系数据库系统(RDS)?
这只是为了让产品能够更轻松地移植到另一个云产品上吗?
答案1
为什么不使用 Amazon 的 Elastic Load Balancing (ELB)?他们不使用 ELB 的原因至少有 3 个:
- 额外成本 - 您可以以低于 ELB 成本的成本运行自己的微型实例,并且它应该具有足够的能力来进行负载平衡。
- ELB 是(或至少曾经是)第 4 层负载均衡器 - 它们不支持 HAProxy 支持的第 7 层逻辑。此外,直到最近它们才支持“粘性会话”。
- 冗余 - 通常情况下,您会运行单个 ELB - 而这里您有一个备份。虽然 ELB 应该非常可靠,但没有单点故障是好事。当然,可移植性也是一个因素。
为什么不使用亚马逊的关系数据库系统(RDS)?
- 再次强调,成本是一个因素 - 如果您拥有“4 服务器”模型 - 添加 RDS 确实会增加成本。RDS 实例的价格比同等 EC2 实例高 30%。优势主要在于“他们会为您处理一切”。如果您可以设置某些东西,您可能会对它有更好的控制权。
- 控制:无法访问 my.cnf(尽管有一些 API 等效项);没有 binlog;没有读取复制;没有关机/超级权限;每周安排一次维护(您可能并不总是确定这需要什么);如果 RDS 出现问题(例如由于升级而出现的问题),您必须依靠它们来修复它;他们运行特定版本的 MySQL - 如果您碰巧需要旧版本,则无法使用它。
答案2
鉴于这是他们的图表,我想您没有考虑过向 RightScale 询问这些问题?
我想说,顶部的 IP 应该是您的应用程序 IP(虽然我不确定他们为什么认为多个 IP 是一个好的解决方案)。这些图可能是在 ELB 和 RDS 可用之前绘制的,否则我想说他们很可能试图保持可移植性。