我在 aws 上使用 t2.micro 实例,足以满足日常运行网站和 mongodb 的使用。
但有时我想使用远程解释器来训练神经网络,为此我会使用一台快速的机器运行大约 1 小时。
有没有一种通过脚本快速更改实例类型的方法?它需要做的就是关闭服务器,更改实例类型并重新启动它。然后最后恢复到小实例大小。
通过脚本处理此问题的最佳方法是什么? 理想情况下是通过 Python。
答案1
@John Rotenstein 在 Stack Overflow 上的回答提供了一个 Python 脚本来更改实例类型。
但是,考虑到您只需在 EC2 实例运行时支付费用,并在关闭时支付存储费用,我会为您的其他工作创建一个正确类型的新实例。然后您可以根据需要启动和停止该实例。这样对您的网站或 MongoDB 就不会有任何风险。
import boto3
client = boto3.client('ec2')
# Insert your Instance ID here
my_instance = 'i-xxxxxxxx'
# Stop the instance
client.stop_instances(InstanceIds=[my_instance])
waiter=client.get_waiter('instance_stopped')
waiter.wait(InstanceIds=[my_instance])
# Change the instance type
client.modify_instance_attribute(InstanceId=my_instance, Attribute='instanceType', Value='m3.xlarge')
# Start the instance
client.start_instances(InstanceIds=[my_instance])