0
我有一个EC2实例A,不能重新启动,但问题是它将因维护而关闭。我基本上是用我的代码如下所示创建该实例的AMI:如何从以前的EC2实例的AMI启动VPC中的EC2实例的完全相同的副本
import boto.ec2
import time
import sys
conn = boto.ec2.connect_to_region("ap-southeast-1")
image_id = conn.create_image(sys.argv[1], "nits", description="Testing", no_reboot=True, block_device_mapping=None, dry_run=False)
image = conn.get_all_images(image_ids=[image_id])[0]
while image.state != 'available':
time.sleep(10)
image.update()
print "The image is being Created, Please wait!! state:%s" % (image.state)
if image.state == 'available':
print "AMI CREATED SUCCESSFULLY with AMI id = %s" % image_id
else:
print "Something Went Wrong!!"
上述脚本工作正常,并创建我提供作为系统参数的实例的AMI。我需要启动实例“A”的EXACT SAME REPLICA,即需要启动的实例需要具有相同的VPC,SEC组,键名等。 我想我需要存储实例A的在变量的详细信息,然后利用它们来从AMI或类似的东西推出一个新的实例..
PS:该follwing代码有助于获得实例A的细节:
reservations=conn.get_all_instances(sys.argv[1])
instances = [i for r in reservations for i in r.instances]
for i in instances:
print(i.__dict__)
<?XML版本= “1.0” 编码= “UTF-8”?>参数组名不能与参数子网 5242ae3a-03EA-491C-a230-5d86afcc3870使用 我需要在VPC中做到这一点 –
InvalidParameterCombination
Nishant尝试更新/编辑答案,我们需要一个sg_ids数组,早些时候它是一个对象数组。 – padmakarojha
我试图用了硬编码SG名称: 实例= [我当r在预订我在r.instances] 因为我在实例: KEY_NAME = i.key_name #security_group = “SG-f05ee295” #I .groups INSTANCE_TYPE = i.instance_type #打印security_group [0] #子网名称= i.subnet_id 储备= conn.run_instances(image_id = ami_id,KEY_NAME = KEY_NAME,INSTANCE_TYPE = INSTANCE_TYPE,security_group_ids = [ 'SG-f05ee295'] ) print“new replica system id is”+ reserve.instances [0] .id 仍然说我无法使用VPC子群进行非VPC启动 –