I’ve been working on a project that requires us to shutdown and startup our development databases to save costs.. I’ve come up with a python script to perform the tasks.
This could be modified to your own requirements.
Here is the code:
import boto3 # Author: Mark Young # Date: 19th December 2017 # Detail: Stop and start RDS instances based on Tags # Note: Aurora databases are currently not supported for shutdown and startup methods. # # Audit: 1.0 - M.Y. Original # Tag = 'MYSQLTEST' Key = 'Application' client = boto3.client('rds') response = client.describe_db_instances() for resp in response['DBInstances']: db_instance_arn = resp['DBInstanceArn'] response = client.list_tags_for_resource(ResourceName=db_instance_arn) for tags in response['TagList']: if tags['Key'] == str(Key) and tags['Value'] == str(Tag): status = resp['DBInstanceStatus'] InstanceID = resp['DBInstanceIdentifier'] print(InstanceID) #print(status) if status == 'available': print("shutting down %s " % InstanceID) client.stop_db_instance(DBInstanceIdentifier= InstanceID) #print ("Do something with it : %s" % db_instance_arn) elif status == 'stopped': print("starting up %s " % InstanceID) client.start_db_instance(DBInstanceIdentifier= InstanceID) else: print("The database is " + status + " status!")
Thank you
Hi ,
Whether above script loops through and stops the db instance.
For me , it checks only first db instance, i used the same code as above.