AWS运行实例以获得完整的完整计费周期

时间:2017-02-08 20:38:27

标签: amazon-web-services amazon-ec2

我尝试优化项目的费用,原因是我们在非常昂贵的情况下运行它。

据我所知,亚马逊按小时收费。例如,如果我运行我的EC2实例1小时4分钟,我将被收取2小时的费用。

关闭最接近下一个结算周期的实例的最佳方法是什么,但不会超过当前的结算周期?

我试图根据正常运行时间进行此操作,但是aws结算和正常运行时间值之间存在一些差异。

我希望在实例本身上使用看门狗。因此,我可以在提供期间传递参数,并且在完成两个完整的计费周期后会自行关闭。

2 个答案:

答案 0 :(得分:1)

您可以从EC2实例获取亚马逊开始计费的时间(假设您已安装了jq)

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document/ | jq .pendingTime

你可以每分钟运行一次shell脚本,然后关闭58分钟。

但这是一种痛苦。如果您的处理能够处理正在运行的实例的中断,那么您应该考虑使用spot instancesfixed duration。这使您可以在一段已知的时间内以较低的价格运行,而不会因为跑步而产生任何额外费用。

答案 1 :(得分:0)

如果您的工作量在整个小时之前完成,请在工作完成后立即停止/终止您的实例。无需在一小时的剩余时间内保持实例空闲。

这可能效率不高的唯一一次是,如果您可能在整个小时之前有更多工作,然后您希望保持运行以处理该新工作。但只有工作是零星的,情况才会如此。如果它是零星的,那么保持它运行可能会更好。