Closed1

LambdaとBoto3でとにかく全Redshiftクラスタ・RDSインスタンスを停止させる

tharutharu

とにかくAWSアカウント内の全クラスタ、全インスタンスを停止させるLambda関数。
RDS、君はなぜ7日後に再び立ち上がるのだ...?

import boto3

redshift = boto3.client('redshift')
rds = boto3.client('rds')

def lambda_handler(event, context):
    rs_clusters = redshift.describe_clusters()
    rs_clusters = [r['ClusterIdentifier'] for r in rs_clusters['Clusters']]
    print(rs_clusters)
    for c in rs_clusters:
        print(f'pause {c}')
        try:
            response = redshift.pause_cluster(
                ClusterIdentifier=c
            )
            print(response)
        except Exception as e:
            print(e)

    db_clusters = rds.describe_db_clusters()
    db_clusters = [r['DBClusterIdentifier'] for r in db_clusters['DBClusters']]
    print(db_clusters)
    for c in db_clusters:
        print(f'pause {c}')
        try:
            response = rds.stop_db_cluster(
                DBClusterIdentifier=c
            )
        except Exception as e:
            print(e)
        
    db_instances = rds.describe_db_instances()
    db_instances = [r['DBInstanceIdentifier'] for r in db_instances['DBInstances']]
    print(db_instances)
    for i in db_instances:
        print(f'pause {i}')
        try:
            response = rds.stop_db_instance(
                DBInstanceIdentifier=i
            )
        except Exception as e:
            print(e)

    return 'ok'
このスクラップは2022/05/18にクローズされました