本地开发PC上的弹性负载均衡器

4
我正在开始一个新项目,其中将使用一个弹性负载均衡器,位于两个tomcat之前。至少这是候选解决方案。在该项目中,每个开发者的pc上都将托管一个开发环境。每个开发人员需要拥有与最终生产拓扑结构完全相同的副本。对于EC2实例,这将通过使用Oracle虚拟框(Ubuntu VM)来实现。
问题/问题是:如何在本地环境中复制ELB以获得相同的行为。我认为在本地环境中使用HAProxy或Apache的mod_proxy进行负载平衡很危险,因为前面的软件产品与ELB不同(例如它们传输HTTP标头的方式)。
所以最终的问题是: 是否有建议的解决方案? 有没有任何经验丰富的人为这种情况提出任何建议/解决方案?
谢谢
1个回答

3

很好的问题。这是我会做的:

  1. 创建一个专门用于开发测试的ELB和EC2实例,并将该实例添加到ELB中。
  2. 为每个开发人员的工作站在ELB上创建一个侦听器(例如,http/3001 --> http/3001,http/3002 --> http/3002等)。请注意,您只能在ELB上创建一个健康检查--为了避免这种情况,您可以在测试实例上安装apache或nginx,并让ELB检查80/tcp以确保实例始终处于服务状态)。
  3. 从每个开发人员的工作站,建立到测试实例的ssh隧道(即ssh -fN -i ~/.ssh/ec2_keypair.pem ec2-user@ec2-instance-fqdn -R 3001:localhost:3001)。

在这种配置下,每个开发人员的本地环境都可在http://elb-fqdn:developer_port上使用。您可能希望锁定分配给测试ELB的安全组,以便仅允许来自某些IP的连接。


1
谢谢你的回答。这有点复杂 :) 我会尝试测试一下,看看这是否是可接受的解决方案。嗯,既然没有其他候选者,那肯定是可以的。我给你点赞。 - nonouco
1
是的,这有点复杂,但除了让开发人员在测试之前直接将他们的代码部署到 EC2 实例上的开发环境中,这是实现您所要求的唯一方法。感谢您的赞同。 :) - cmptr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接