【问题标题】:Load balancer for building a hybrid cloud with AWS使用 AWS 构建混合云的负载均衡器
【发布时间】:2014-08-23 22:07:43
【问题描述】:
我在 AWS 云 (ElasticBeansTalk) 中部署了多个 Tomcat 实例。 EC2 中有负载均衡器,但仅用于平衡 AWS Tomcat 之间的负载。现在我想集成一些托管在私人服务器上的 tomcat。我的想法是使用亚马逊的 Route53,但显然我不能将 2 个不同的 cname 添加到同一个(子)域。有没有办法整合这些tomcat?
【问题讨论】:
标签:
tomcat
amazon-web-services
amazon-ec2
cloud
amazon-route53
【解决方案1】:
CNAME 是指向主机“规范”(真实)名称的指针,因此,根据定义,任何主机名只能有一个这样的值。
Route 53 引入了 Alias 概念来解决此问题,因此您可能需要做的是创建加权资源记录集,使用别名 A 记录来引用您的 ELB,而不是 cname。
http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/WeightedResourceRecordSets.html
根据云和私有机器的位置、机器容量、可用性、您想要混合事物的动机、连接成本与正常运行时间价值以及可能的许多其他因素,使用 DNS 进行负载平衡可能过于原始,因此您可以考虑使用 EC2 托管的 http 反向代理(独立或位于 ELB 本身之后)来做出更复杂的平衡决策。
我通过在 EC2 上运行的一组 HAProxy 实例路由我的大部分 Web 请求,即使目标计算机不是云托管的,因为我在该方法中看到了灵活性和可用性优势,这(对我而言)超过EC2 实例和带宽的成本。到目前为止,我从未遇到过由堆栈的那一部分引起的中断事件。