【问题标题】:Amazon aws hints亚马逊AWS提示
【发布时间】:2013-01-03 21:13:41
【问题描述】:
我必须为 Web 应用程序设置服务器环境。我必须使用 aws,到目前为止,它看起来很适合这个目的。
我需要:
- 可扩展的 Tomcat 7 webapp 服务器
- 会话复制!
- 一个 mongodb 数据库集群(?)
据我认为它可以使用:
- 我可以使用弹性 beantalk 轻松实现可扩展的 Tomcat 7。
- 会话复制可以与 elasticache 一起使用
- 看来我必须“手动”执行 mongodb 集群,所以我创建了一些 ec2 实例来执行此操作。
我有一些问题。
- 成本会相当高。最低设置是 2 个 ec2 实例和一个用于 elasticache
- 唯一会自动缩放的是弹性豆茎,这意味着我也必须注意这一点。 (嗯,对于 mongodb 实例,我也可以使用平衡器)
- 如果是 mongodb ec2 实例,我需要自己设置每个实例
你知道如何:
- 降低成本(尤其是一开始,会有点多,不是吗?)?
- 让管理更轻松?
【问题讨论】:
标签:
mongodb
amazon-web-services
tomcat7
amazon-elastic-beanstalk
amazon-elasticache
【解决方案2】:
使用 Elastic Beanstalk 可以轻松实现 Web 服务器的自动缩放,但您可以独立使用它。在此处查看有关自动缩放的文档:http://aws.amazon.com/autoscaling/
它有几个功能可以帮助您节省大部分计算成本;
- 一个是横向扩展(最重要的是横向扩展)的能力,方法是根据您的负载自动更改您正在使用的网络服务器的数量。您可以定义最小数量(例如 1)和最大数量。系统可以观察一组指标(请求数、CPU 负载......)并决定何时添加或减少实例。
- 第二个是能够根据您的使用情况更改缩放策略并增加或减少机器的大小。如果您发现它更具成本效益,您可以使用中型实例并切换到大型或超大型实例。我们鼓励您尝试不同的尺码,看看哪种尺码最适合您。
使用 Elastic Cache,既可以帮助您进行会话复制,又可以降低您的 DB 机器上的负载。您可以在那里缓存您的频繁查询输出(首页、主类别页面...),并获得更好的性能,并使用更少的数据库实例。它支持 Memecached 客户端,这使得几乎可以使用任何编程语言进行开发。
您应该检查 Couchbase 而不是 MongoDB(请参阅 comparison)。它在规模上更健壮、更可靠。
【解决方案3】:
Elastic BeanStalk 是减少 Web/应用程序服务器管理开销的最佳选择。但是,如果还没有进行过多的开发,我建议将 DynamoDB 用于管理地役权方面。
但也要检查成本。性能和管理在 DynamoDB 中非常棒
【讨论】:
-
我真的没有使用 DynamoDB 的选项,因为我们正在使用 mongodb 的一些功能。 (即地理空间索引)这里有一个 comparisation 给感兴趣的人。