我正在运行需要很长时间才能完成的机器学习脚本。我希望在更快的处理器上在AWS上运行它们,并在完成时停止实例。
可以在正在运行的脚本中使用boto来停止自己的实例吗?有更简单的方法吗?
答案 0 :(得分:2)
如果您的EC2实例正在运行Linux,您只需发出halt
或shutdown
命令即可停止EC2实例。这允许您在不需要IAM权限的情况下关闭EC2实例。
答案 1 :(得分:1)
有关如何创建连接的信息,请参阅Creating a Connection。从来没有试过这个,所以要小心。还要确保实例是EBS支持的。否则,当您停止实例时,实例将被终止。
import boto.ec2
import boto.utils
conn = boto.ec2.connect_to_region("us-east-1") # or your region
# Get the current instance's id
my_id = boto.utils.get_instance_metadata()['instance-id']
conn.stop_instances(instance_ids=[my_id])