def restore_state(instance, old_state): if old_state == 'stopped': client.stop_instances(InstanceIds=[instance.id]) print("Awaiting instance stop...") awslib.await_instance(client, instance.id, None, old_state) else: print("Unrecognized initial state %s, cannot restore state!" % old_state)
def ensure_started(instance): state = instance.state['Name'] if state == 'running': return False if not prompt("Instance is currently %s, attempt to start it?" % state): print("Cannot connect to stopped instance!") sys.exit(1) client.start_instances(InstanceIds=[instance.id]) print("Awaiting instance start...") awslib.await_instance(client, instance.id, None, 'running') return state
r = ec2.run_instances( ImageId=image_id, MinCount=1, MaxCount=1, KeyName='Main Key Pair', SecurityGroups=['web-server-secure'], UserData=userData, # t3 gets us "nitro" NVME EBS and is cheaper than t2. InstanceType='t3.large', Placement={'AvailabilityZone': availability_zone}, ) webServerInstanceId = r['Instances'][0]['InstanceId'] awslib.await_instance(ec2, webServerInstanceId, 'pending', 'running') print(' State is running.') print('Tagging web server instance...') instances = ec2_resource.instances.filter(InstanceIds=[webServerInstanceId]) webServerInstance = list(instances)[0] ec2.create_tags(Resources=[webServerInstanceId], Tags=[{ 'Key': 'web-server', 'Value': str(datetime.now()), }, { 'Key': 'channel', 'Value': channel,
image_id = images['Images'][0]['ImageId'] r = client.run_instances( ImageId=image_id, MinCount=1, MaxCount=1, KeyName='Main Key Pair', SecurityGroups=['web-server'], UserData=userData, InstanceType='t2.large', Placement={'AvailabilityZone': availability_zone}, ) webServerInstanceId = r['Instances'][0]['InstanceId'] awslib.await_instance(client, webServerInstanceId, 'pending', 'running') print ' State is running.' print 'Tagging web server instance...' instances = ec2.instances.filter(InstanceIds=[webServerInstanceId]) webServerInstance = list(instances)[0] client.create_tags(Resources=[webServerInstanceId], Tags=[{ 'Key': 'web-server', 'Value': str(datetime.now()), }, { 'Key': 'channel', 'Value': channel, }])