import boto3 import json def delete_security_group(ec2_client, security_group_id): ec2_client.revoke_security_group_ingress( GroupId=security_group_id, IpPermissions=[ { 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22, 'IpRanges': [{'CidrIp': '0.0.0.0/0'}] }, { 'IpProtocol': 'tcp', 'FromPort': 8080, 'ToPort': 8080, 'IpRanges': [{'CidrIp': '0.0.0.0/0'}] } ] ) ec2_client.delete_security_group(GroupId=security_group_id) print(f"Security group {security_group_id} deleted.") def delete_key_pair(ec2_client, key_name): ec2_client.delete_key_pair(KeyName=key_name) print(f"Key pair {key_name} deleted.") def delete_instances(ec2_client, instance_ids): ec2_client.terminate_instances(InstanceIds=instance_ids) print(f"EC2 instances {instance_ids} terminated.") def delete_load_balancer(elbv2_client, load_balancer_arn): elbv2_client.delete_load_balancer(LoadBalancerArn=load_balancer_arn) print(f"Load Balancer {load_balancer_arn} deleted.") def delete_target_group(elbv2_client, target_group_arn): elbv2_client.delete_target_group(TargetGroupArn=target_group_arn) print(f"Target Group {target_group_arn} deleted.") def delete_internet_gateway(ec2_client, igw_id, vpc_id): ec2_client.detach_internet_gateway(InternetGatewayId=igw_id, VpcId=vpc_id) ec2_client.delete_internet_gateway(InternetGatewayId=igw_id) print(f"Internet Gateway {igw_id} deleted.") def delete_route_table(ec2_client, route_table_id): ec2_client.delete_route_table(RouteTableId=route_table_id) print(f"Route Table {route_table_id} deleted.") def delete_vpc(ec2_client, vpc_id): ec2_client.delete_vpc(VpcId=vpc_id) print(f"VPC {vpc_id} deleted.") def delete_subnet(ec2_client, subnet_id): ec2_client.delete_subnet(SubnetId=subnet_id) print(f"Subnet {subnet_id} deleted.") def delete_resources(ec2_client, elbv2_client, resources): delete_instances(ec2_client, resources["instance_ids"]) delete_load_balancer(elbv2_client, resources["load_balancer_arn"]) delete_target_group(elbv2_client, resources["target_group_arn"]) delete_security_group(ec2_client, resources["security_group_id"]) delete_key_pair(ec2_client, resources["key_name"]) delete_internet_gateway(ec2_client, resources["igw_id"], resources["vpc_id"]) delete_route_table(ec2_client, resources["route_table_id"]) delete_subnet(ec2_client, resources["subnet_ids"][0]) delete_subnet(ec2_client, resources["subnet_ids"][1]) delete_vpc(ec2_client, resources["vpc_id"]) def main(): with open("resources.json", "r") as file: resources = json.load(file) ec2_client = boto3.client("ec2") elbv2_client = boto3.client("elbv2") delete_resources(ec2_client, elbv2_client, resources) if __name__ == "__main__": main()