清漆服务器:如何在顶部负载均衡器和下面的EC2 Web服务器之间?

我仍然有点新手,但现在我在AWS / EC2红帽机器。 我有:

  • 1x负载均衡器(上图)
  • 2x EC2 Apache Web服务器(下)

就像是:

LB | ------- | | Web Web 

那么现在如果我打算把2x Web Servers1x Varnish面前:

  • 展示位置是什么?

请build议,并将它是这样的:

  LB | [V] ------- | | Web Web 

是吗?
所以在这里我的问题是:

  • 如果是的话,原来的LB已经不是很有用了(我想)。 请问Varnish会再次成为负载平衡器吗?
  • 那么,这是不是意味着,我不需要默认的EC2负载均衡器了?

请指导我正确的安置和分享逻辑。
谢谢你这么。

ELB仍然可以达到以下目的:

  1. 可以configuration为通过configurationAutoScaling组自动replaceVarnish服务器。
  2. 允许您通过添加一个新服务器,然后删除旧服务器来将服务器退出服务。 这意味着不会中断服务于客户。
  3. 如果你的负载足够高,需要它可以让你轻易地添加多个清漆服务器。
  4. 可以充当通往虚拟私有云(VPC)中的后端清漆服务器的网关,

所有这些都可以在没有ELB的情况下进行configuration,但是对于我来说,确实是在负载平衡器上处理SSL。 Varnish 将不会为您处理SSL,因此您可以让Load Balancer处理它,并将http与您的Varnish服务器通话。

有许多可用的configuration。 每种configuration都有一些你需要评估的优点和缺点(如性能,维护,设置的简便性,可扩展性等)。

对于Load Balancer,您可以使用Amazon的ELB和/或您自己的Nginx / HAProxy解决scheme。 您可以使用一个(或多个)Varnish服务器,这些服务器可以在自己的机器上,也可以在Web Tier的同一台服务器上安装和运行Varnish。

在Web服务器上清漆

一个简单的设置将是清漆安装在Web服务器上。

  LB | --------------- | | Web&Varnish Web&Varnish 

虽然这有一个缺点,就是不能让你的网页独立于清漆,所以安装和理解的速度更快。 它也简化了你的架构。 这种方法可能适合你。 我想你会在某个时候超过这个,因为它有一些非常明显的可伸缩性问题。

正如ianjs所说,ELB在您的设置中仍然可以发挥作用……这一切都取决于您的需求(自动缩放,SSL端点,冗余等)。 看看别人如何面对类似的问题[1] [2]

同时,如果要利用Varnish作为caching,则需要将其放置在负载平衡器(如果有)和后端(如果涉及多个Varnish实例时使用一致散列[3]), ,但是当你想要水平缩放时,架构会变得相当复杂(HAProxy [4]有一个很好的例子)。

所以,如果你打算使用1个Varnish实例和2个后端(没有自动缩放,ssl而且没有Amazon的高级function),你可以保持简单,摆脱ELB:

  Varnish | --------- | | Web1 Web2 

但是你必须:

  • select一个合适的导演[5]
  • 处理后端健康检查[6]

所以,您应该select最适合您需求的架构。

[1] https://stackoverflow.com/questions/14167561/using-an-aws-elb-behind-varnish-is-it-possible

[2] http://cloudreach.blogspot.com.au/2013/01/varnish-and-autoscaling-love-story.html

[3] http://en.wikipedia.org/wiki/Consistent_hashing

[4] http://blog.exceliance.fr/2012/08/25/haproxy-varnish-and-the-single-hostname-website/

[5] https://www.varnish-cache.org/docs/3.0/reference/vcl.html#directors

[6] https://www.varnish-cache.org/docs/3.0/reference/vcl.html#backend-probes