Sign in

Change AWS EBS Volumes to GP3 type

There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.

This task involves converting older volume types like GP2 and others to GP3. The transition to GP3 can result in cost savings and potentially improved performance, as GP3 volumes offer better throughput and the same baseline performance at a lower cost per GB. This operation is essential for organizations looking to modernize their storage infrastructure and optimize cloud expenses.

import boto3 from botocore.exceptions import ClientError creds = _get_creds(cred_label)['creds'] access_key = creds['username'] secret_key = creds['password'] def modify_volumes_to_gp3(non_gp3_volumes_by_region): """ Modify EBS volumes to GP3 type. Args: non_gp3_volumes_by_region: Dictionary where the key is the region and the value is a list of non-GP3 volume IDs in that region. Returns: None """ # Loop through each region in the dictionary for region, volume_ids in non_gp3_volumes_by_region.items(): print(f"Checking region {region}...") # Initialize an EC2 client for the specific region ec2_client = boto3.client('ec2', aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name=region) # If there are non-GP3 volumes in the region, proceed to modify them if volume_ids: print(f"Found {len(volume_ids)} non-GP3 volumes in region {region}. Modifying them to GP3...") for volume_id in volume_ids: try: # Modify the volume to GP3 ec2_client.modify_volume( VolumeId=volume_id, VolumeType= ebs_volume_type ) print(f"Successfully modified volume {volume_id} to GP3 type in region {region}.") except ClientError as e: print(f"An error occurred while modifying volume {volume_id} in region {region}: {e.response['Error']['Message']}") else: print(f"No non-GP3 volumes found in region {region}.") ''' # Dictionary containing non-GP3 volume IDs, keyed by region non_gp3_volumes_by_region = { 'us-east-1': ['vol-0ae92bb63cdc04a67'] } ''' # Modify the non-GP3 volumes to GP3 type if non_gp3_volumes_by_region: modify_volumes_to_gp3(non_gp3_volumes_by_region) else: print("No non-GP3 volumes found.")
copied