terminate spot instances as well

pull/699/head
mike dupont 4 months ago
parent 4cd59cc18c
commit a861b3c45a

@ -0,0 +1,30 @@
#!/bin/python3
# rewrite this to aslo cancel-spot-instance-requests
import boto3
# Create an EC2 client
ec2_client = boto3.client('ec2')
# Retrieve instance IDs
response = ec2_client.describe_instances()
for reservation in response['Reservations'] :
for instance in reservation['Instances']:
print( instance)
instance_ids = [instance['InstanceId']
for reservation in response['Reservations']
for instance in reservation['Instances']]
# Terminate instances
for instance_id in instance_ids:
print(f"Terminating instance: {instance_id}")
ec2_client.terminate_instances(InstanceIds=[instance_id])
# Check the status of the terminated instances
terminated_instances = ec2_client.describe_instances(InstanceIds=instance_ids)
for reservation in terminated_instances['Reservations']:
for instance in reservation['Instances']:
print(f"Instance ID: {instance['InstanceId']}, State: {instance['State']['Name']}")

@ -2,6 +2,6 @@
instance_ids=$(aws ec2 describe-instances --query "Reservations[*].Instances[*].InstanceId" --output text)
for instance_id in $instance_ids; do
echo "Starting session for instance: $instance_id"
echo "terminate instance: $instance_id"
aws ec2 terminate-instances --instance-ids "$instance_id"
done

@ -0,0 +1,34 @@
#!/bin/python3
import boto3
# Create an EC2 client
ec2_client = boto3.client('ec2')
# Retrieve instance IDs and Spot Instance Request IDs
response = ec2_client.describe_instances()
instance_ids = []
spot_request_ids = []
for reservation in response['Reservations']:
for instance in reservation['Instances']:
print(instance)
instance_ids.append(instance['InstanceId'])
if 'SpotInstanceRequestId' in instance:
spot_request_ids.append(instance['SpotInstanceRequestId'])
# Terminate instances
for instance_id in instance_ids:
print(f"Terminating instance: {instance_id}")
ec2_client.terminate_instances(InstanceIds=[instance_id])
# Cancel Spot Instance Requests
for spot_request_id in spot_request_ids:
print(f"Cancelling Spot Instance Request: {spot_request_id}")
ec2_client.cancel_spot_instance_requests(SpotInstanceRequestIds=[spot_request_id])
# Check the status of the terminated instances
terminated_instances = ec2_client.describe_instances(InstanceIds=instance_ids)
for reservation in terminated_instances['Reservations']:
for instance in reservation['Instances']:
print(f"Instance ID: {instance['InstanceId']}, State: {instance['State']['Name']}")
Loading…
Cancel
Save