我有一个长期运行的aws作业,正在使用spot实例(每个作业一个实例)来节省资金。python代码可以处理停止和重新启动,但当我完成分析工作时,我希望终止spot实例,不再启动(对于该批),这样我就不必手动照看东西(我使用的是昂贵的GPU实例,所以我希望尽快停止)。我的代码都是用python编写的-是否存在一个aws python sdk或cli调用,它将终止spot实例和并停止启动更多的spot实例,所有这些都是从spot实例本身开始的?结果是,一旦我的工作完成,我不想为GPU时间付费
几年前的一个相关问题是here,但它没有完全回答我的问题
谢谢大家!
在最后一个spot实例上执行以下操作:
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
aws ec2 modify-instance-attribute instance-initiated-shutdown-behavior terminate
sudo shutdown -h now
。也可以通过以下方式安排关机:echo "sudo halt" | at now + 5 minutes
李>如果你正在寻找一种更具Python风格的方法。您可以使用boto3。它是一个SDK,用于管理AWS实例和AWS下的许多服务。您可以使用Udhav的方法从
http://169.254.169.254/latest/meta-data/instance-id
获取实例id,并将此实例id传递给boto3
function以终止它请确保在使用sdk或cli时,您必须使用secret\u access\u key和secret\u access\u id创建IAM角色以验证此请求。 以下文本来自官方AWS documentation
程序访问
必须提供AWS访问密钥才能对AWS进行编程调用或使用 用于PowerShell的AWS命令行界面或AWS工具
创建访问密钥时,将访问密钥ID(例如,AKIAIOSFODNN7EXAMPLE)和机密访问密钥(例如,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)作为一个集合创建。只有在创建密钥时,才能下载该密钥。如果您没有下载您的秘密访问密钥,或者您丢失了它,您必须创建一个新的密钥
相关问题 更多 >
编程相关推荐