RDS CLusterを自動停止させる仕組みを作りたい【AWS】

RDSアイキャッチ画面

・RDS Clusterの自動停止方法を知りたい。
・Event Bridgeの使い方を知りたい。

RDS Clusterを作成したのですが、何も設定しないと1週間後に起動されてしまいますので、自動停止する仕組みを作っていきます。

ポリシーの作成

IAMのダッシュボードへ移動し下記のポリシーを作成

IAM画面
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds:StopDBCluster",
                "rds:StartDBCluster"
            ],
            "Resource": "*"
        }
    ]
}

IAMロールの作成

IAMのダッシュボードへ移動し「ロールを作成」をクリック

ロール選択画面

下記に設定して「次へ」をクリック

信頼されたエンティティ画面
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "scheduler.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

先ほど作成したポリシーをセット

ポリシーセット画面

任意で名前をつけて「次へ」をクリック

ロール作成画面

EventBridgeSchedulerの設定

Amazon EventBridgeのダッシュボードへ移動し 「スケジュール」をクリック

Amazon EventBridge設定画面

「スケジュールを作成」をクリック

スケジュール作成画面

スケジュールを登録します。今回の場合毎日12時には止まっていて欲しいので下記のように設定しました。

スケジュール詳細の設定画面

ターゲットの選択では「すべてのAPI」をクリックし検索ペインに「RDS」と入力

ターゲットの選択

次に「Stop」と入力し「STopDBCluster」を入力

ターゲットの選択

DBのクラスターIDを入力

DBクラスターのIDを入力画面

※DBのクラスターの名前は下記の通りです。

DBクラスター名画面

スケジュール完了後のアクションを「NONE」にし、後はデフォルトのまま

スケジュール画面

スケジュールの作成と確認で問題なければ「スケジュールを作成」をクリック

確認

指定時間の3分後くらいに見ましたが、無事正常終了されているのを確認しました。

CloudTrailにもログが吐き出されるので、もし正常に実行されなかった場合、そちらも確認してみてください。

RDS停止画面

CloudTrailには下記のようにログが記載されます※時間帯に関してはテスト実行のため、12:30時点で実行させております。

CloudTrailのログ

以上、参考になれば幸いです。