使用EC2可用区的最佳做法是什么?

时间:2011-08-24 00:02:18

标签: deployment amazon-ec2 amazon

我正在重新启动EC2上的站点(每天约5mm +访问次数),并对如何在不同数据中心部署节点感到困惑。我最基本的设置是Varnish服务器后面的两个节点。

我是否应该在不同的可用区域中有两个Varnish实例,每个实例都有与共享RDS数据库通信的WWW节点?每个Varnish实例都可以通过Amazon的负载均衡器进行负载均衡。

类似的东西:

1负载均衡器与之交谈:

  • 弗吉尼亚州的Varnish,与自己的us-east-x节点对话
  • 加利福尼亚的清漆,它与自己的us-west-x节点对话

在多个数据中心部署对我来说是一个新概念,所以我们非常感谢所有人的帮助!谢谢!

1 个答案:

答案 0 :(得分:7)

我们广泛使用亚马逊EC2进行负载平衡和容错。虽然我们仍然没有广泛使用亚马逊提供的LoadBalancers,但我们有自己的负载均衡器(在亚马逊以外的地方运行)。亚马逊承诺LoadBalancers永远不会失败,它们内部容错,但我还没有对它进行过足够的测试。

通常,我们为每个可用区域托管两个实例。一个充当真实服务器的镜像服务器。如果其中一台服务器出现故障,我们会将客户发送给另一台服务器。但最近亚马逊已经展示了一个单一可用区经常出现故障的模式。

因此,我认为明智的技术是在您提到的可用区域之间设置服务器。我们使用postgres,因此,我们可以跨实例复制数据库中的内容。使用9.0时,二进制复制非常适合双向复制。这样,两台服务器都可以在启动时承担负载,但是当可用区域确实关闭时,所有用户都会被发送到一台服务器。由于公共数据库可用,因此用户去哪里并不重要。只是如果他们去错了服务器,他们会经历一个轻微的缓慢。

通过这种方法,您可以对网站进行串联更新。更新一个确保它运行正常,然后更新下一个。因此,即使服务器升级失败,整个网站也始终处于运行状态。