在java

时间:2016-10-12 21:02:08

标签: java amazon-web-services autoscaling

我想在特定时间调出一个EC2实例,运行一个java批处理作业,并在完成后使用Java关闭实例。我想出了如何调出实例并运行我的工作。需要知道如何在工作完成后将其关闭。发现可以通过将自动缩放组值的“setDesiredCapacity”更改为0.此方法将自动缩放组名称作为输入。但由于ASG名称是动态创建的,因此不确定如何将其添加到我的Java作业中。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您的要求似乎是:

  • 定期启动将运行批处理作业的Amazon EC2实例
  • 在作业结束时,终止EC2实例

我建议不要使用Auto Scaling(根据需求动态扩展容量),我建议:

  • 使用计划启动新的EC2实例。计划可以是某个机器上的cron作业(在EC2或Internet上的任何位置),或者您可以使用Amazon CloudWatch Events运行Lambda函数,从而启动实例。
  • 批处理作业完成后,终止实例,这可以通过以下两种方法完成:

或者,你可能很好,很现代,不使用Amazon EC2实例!

由于您的批处理作业是Java,您可以将Lambda function 与CloudWatch Events计划一起使用。该计划将触发Lambda函数,该函数可以运行您的Java代码。完成后,Lambda将自动终止。您只需每100毫秒使用一次。

请注意,Lambda函数最多可以执行 5分钟,因此如果您的操作时间超过此时间,则Lambda不是合适的解决方案。