通过脚本自动调整AWS ec2的大小

通过脚本自动调整AWS ec2的大小

我在 aws 上使用 t2.micro 实例,足以满足日常运行网站和 mongodb 的使用。

但有时我想使用远程解释器来训练神经网络,为此我会使用一台快速的机器运行大约 1 小时。

有没有一种通过脚本快速更改实例类型的方法?它需要做的就是关闭服务器,更改实例类型并重新启动它。然后最后恢复到小实例大小。

通过脚本处理此问题的最佳方法是什么? 理想情况下是通过 Python。

答案1

@John Rotenstein 在 Stack Overflow 上的回答提供了一个 Python 脚本来更改实例类型。

但是,考虑到您只需在 EC2 实例运行时支付费用,并在关闭时支付存储费用,我会为您的其他工作创建一个正确类型的新实例。然后您可以根据需要启动和停止该实例。这样对您的网站或 MongoDB 就不会有任何风险。

使用 boto3 调整 EC2 实例的大小

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])

相关内容