我们有一个托管在 m.large ec2服务器上的java应用程序,以后需要进行大量的计算。准确地说,它预计每天有1000万次计算,每个单元计算需要大约100ms,计算是java代码中的多处理类型,然后转储到db,而不是像Write Once,Read Many。哪种是平衡负载的最佳方法?我们一直在考虑的选项是在负载增加时通过脚本实例化 ec2 服务器,但在实施之前,我们希望得到专家的可靠建议。请提供任何建议。
答案 0 :(得分:2)
这可能不适合您,但肯定值得考虑。您应该为应用程序定义度量标准和阈值。
随着负载的增加,通过脚本实例化ec2服务器
在上述声明中,您需要定义“加载”的含义?为了说明负载“增加”
,负载应该交叉的阈值是多少一旦掌握了这些信息,请检查您是否可以使用AWS Cloudwatch监控这些指标和阈值。如果是,那么您可以创建一个自动调用组,一旦云台警报告知“负载增加”,自动调用就会启动一个新实例。
如果您发现cloudwatch不支持您的指标,请编写您自己的自定义指标并让cloudwatch监控它。点击here以获取自定义云观察指标文档。
获得自定义指标后,再次集成autoscalling和cloudwatch警报,以便在负载增加时管理新EC2实例的创建。
简而言之,探索AWS云监控警报和AWS自动调节。
整个过程假设您确实拥有一种全自动的方式来创建EC2实例以及您的软件堆栈。您可以使用应用程序堆栈创建预先烘焙的AMI,也可以使用Opscode Chef等工具即时安装应用程序堆栈。
答案 1 :(得分:1)
使用平台即服务(PaaS),而不是手动创建计算机并进行扩展。这对于长期使用来说更灵活,并且需要更少的脚本。这里有一些PaaS建议:Looking for PaaS providers recommendations
免责声明:我为Gigaspaces工作,这是Cloudify开源PaaS堆栈的开发者