2

我必须为 Web 应用程序设置服务器环境。我必须使用 aws,到目前为止,它看起来很适合这个目的。

我需要:

  • 一个可扩展的 Tomcat 7 webapp 服务器
  • 会话复制!
  • 一个 mongodb 数据库集群(?)

据我认为它可以与:

  • 可扩展的 Tomcat 7 我可以使用弹性 beantalk 轻松完成。
  • 会话复制可以与 elasticache 一起使用
  • 似乎我必须“手动”执行 mongodb 集群,所以我创建了一些 ec2 实例来执行此操作。

我有一些问题。

  1. 成本会相当高。最低设置是 2 个 ec2 实例和一个用于弹性疼痛的实例
  2. 唯一能自动缩放的是弹性豆茎,这意味着我也必须处理好它。(好吧,对于 mongodb 实例,我也可以使用平衡器)
  3. 如果是 mongodb ec2 实例,我需要自己设置每个实例

你知道如何:

  • 降低成本(特别是一开始,会有点多,不是吗?)?
  • 让管理更轻松?
4

3 回答 3

2

如果您安装 mongo,请查看:AWS_NoSQL_MongoDB.pdf。副本集的一个成员在您使用的可用区之外,甚至在同一区域之外是非常习惯的做法,这样您就可以在发生故障时进行热备份。

关于价格 - 实验(负载测试)并找到适合您的较小实例类型。另外,请记住关闭未使用的实例

关于管理 - 有 AWS 控制台和许多第 3 方产品。此外,Netflix还发布了一些不错的管理工具

于 2013-01-03T10:42:50.413 回答
1

使用 Elastic Beanstalk 可以轻松完成 Web 服务器的自动缩放,但您可以独立使用它。在此处查看有关自动缩放的文档:http: //aws.amazon.com/autoscaling/

它有几个功能可以帮助您节省大部分计算成本;

  • 一个是通过根据负载自动更改您正在使用的 Web 服务器的数量来扩展(最重要的是)的能力。您可以定义最小数量(例如 1)和最大数量。系统可以观察一组指标(请求数、CPU 负载......)并决定何时添加或减少实例。
  • 第二个是能够根据您的使用情况更改扩展策略并增加或减少机器的大小。如果您发现它更具成本效益,您可以使用中型实例并切换到大型或超大型实例。我们鼓励您尝试不同的尺码,看看哪种尺码最适合您。

使用 Elastic Cache,既可以帮助您进行会话复制,又可以降低您的 DB 机器上的负载。您可以在那里缓存您的频繁查询输出(首页、主类别页面...),并获得更好的性能,并使用更少的数据库实例。它支持 Memecached 客户端,这使得使用几乎任何编程语言进行开发都非常容易。

您应该检查 Couchbase 而不是 MongoDB(参见比较)。它在规模上更健壮、更可靠。

于 2013-01-03T13:13:41.373 回答
0

Elastic BeanStalk 是减少 Web/App 服务器管理开销的最佳选择。但是,如果还没有进行过多的开发,我建议将 DynamoDB 用于管理地役权方面。

但是也要检查成本。性能和管理在 DynamoDB 中非常棒

于 2013-01-03T10:47:45.780 回答