我们目前的设置:
两个独立的Web应用程序,在一个EC2 m3.medium实例上运行(两个应用程序共享一个ec2实例)
我们使用VirtualHosts(1个IP和2个域,在httpd.conf中使用VirtualHost进行路由)
我们想要的设置:
我们的两个应用程序分别在两个m1.small实例上运行(总共4个m1.small)
它被另一个stackoverflow用户推荐给我们,因为它将
a)提高可靠性(如果一个实例崩溃,服务不会中断)
b)根据每个应用程序的负载开启添加更多实例的可能性(如果app A的增长速度比B快得多,我们可以在不影响B的情况下扩展A)
现在我们正在制定一个如何做到这一点的计划。我的想法是进行以下更改(按此顺序):
1)在一个m1.small上设置每个应用两次,总共消耗4个实例
AppA1, AppA2, AppB1, AppB2
2)为m1.small的每个组合设置两个带有两个新弹性IP的负载平衡器
loadbalancerA->AppA1, AppA2
loadbalancerB->AppB1, AppB2
3)将相应的app-domain的A-record更改为新创建的负载均衡器的新ip
这是要走的路,还是我们错过了什么?
另外,我们的策略是一般的(将两个应用分开,再加上通过添加多个实例来增加冗余)是一个好方法吗?
我将永远感激您的宝贵意见,并期待您的意见!
答案 0 :(得分:1)
我们在公司使用类似的方法。所以是的,这是全球正确的。您甚至可以在其上添加自动缩放。 对于第2点:如果要使用Load Balancer,则必须使用CNAME而不是A记录。他们没有IP而是dns名称。
但我认为看看AWS Beanstalk会很有趣。
A)提高可靠性=>自动用新的实例(自动缩放组)替换不健康的实例
B)使用beanstalk自动创建自动缩放组,设置cpu%或网络输出等,它将自动自动缩放。无需人为干预。您为应用程序设置了最小和最大的服务器。
C /易于设置。我不是一个系统管理员,能够做到这一点。
我们有7个网站在豆茎上运行,在正常时间运行6立方米,在高峰时段运行最多30立方米。并且一切都是自动化的。有时,部署期间实例崩溃(通常是因为某些超时),负载均衡器发现它不健康,然后自动终止它,并在几分钟内被新的替换。
否则,如果您已经在使用木偶,请查看操作。