1

我们有一个托管在m.large ec2 服务器上的 java 应用程序,将来需要进行大量计算,准确地说,预计每天有 1000 万次计算,每个单元计算需要大约 100 毫秒,计算类型为在 java 代码处进行多次处理,然后转储到 db,而不是像 Write Once,Read Many。平衡负载的最佳方法是什么?我们一直在经历的选项是在负载增加时通过脚本实例化ec2服务器,但在我们实施它之前,我们希望得到专家的可靠建议。请提供任何建议。

4

2 回答 2

2

这可能不是您的正确答案,但肯定值得考虑。您应该为您的应用程序定义指标和阈值。

随着负载的增加,通过脚本实例化 ec2 服务器

在上面的语句中,您需要定义“负载”是什么意思?为了说负载已经“增加” ,负载应该跨越的阈值是多少?

一旦您掌握了这些信息,请检查您是否可以使用 AWS cloudwatch 监控这些指标和阈值。如果是,那么您可以创建一个 autscaling 组,其中 autscaling 将在 cloudwatch 警报告知“负载已增加”时立即启动一个新实例。

如果您发现 cloudwatch 不支持您的指标,则编写您自己的自定义指标并让 cloudwatch 监控它。单击此处获取自定义 cloudwatch 指标文档。

获得自定义指标后,再次集成自动扩展和 cloudwatch 警报,以在负载增加时管理新 EC2 实例的创建。

简而言之,探索 AWS cloudwatch 警报和 AWS 自动缩放。

整个过程假设您确实有一种完全自动化的方式来创建 EC2 实例以及您的软件堆栈。您可以使用应用程序堆栈创建预烘焙的 AMI,也可以使用 Opscode Chef 等工具即时安装应用程序堆栈。

于 2013-10-17T11:52:55.390 回答
1

使用平台即服务 (PaaS),而不是手动创建机器并扩展它们。这对于长期使用更灵活,并且需要更少的脚本。这里有一些 PaaS 建议:寻找 PaaS 提供商建议

免责声明:我为Cloudify开源 PaaS 堆栈的开发人员 Gigaspaces 工作

于 2013-10-20T11:42:38.167 回答