RDS をEventBridge Schedulerで毎日停止する

AWS,RDS

概要

  • RDS を開発や検証に使用する環境において、コストを抑えるため、毎日にRDS インスタンス(あるいは RDS クラスター)を夜間停止させたい等のニーズがあると思います。今回は、Amazon EventBridge Scheduler を使用し、RDSを毎日停止する方法になります。
  • Amazon EventBridge Scheduler は、手軽にAWSサービスや API オペレーションを呼び出すことが出来ます。cron や rate式を使った繰り返しのパターンでスケジュールを作成したり、1回限りの呼び出しも可能です。

 

RDS をEventBridge Schedulerで毎日停止する手順

IAM ポリシー/ロールの作成

  • 先ず、EventBridge Scheduler に指定するIAM ポリシー/ロールを作成します。
  • 以下、IAM ポリシーの作成画面です。

  • IAM ポリシーは、以下のJSON を使用します。必要に応じて、Resource は “*" ではなく、対象のリソースを記載ください。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:StopDBCluster",
                "rds:StopDBInstance"
            ],
            "Resource": "*"
        }
    ]
}
  • 以下のIAM ポリシーが作成されました。(例: RDSStopPolicy)

 

  • 以下、IAM ロールの作成画面です。
  • 「信頼されたエンティティタイプ」に「カスタム信頼ポリシー」を指定します。

 

  • カスタム信頼ポリシーには、以下の JSON を指定します
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "Service": "scheduler.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

 

  • ポリシーには、先ほど作成したIAM ポリシー(例: RDSStopPolicy) を指定します。
  • ロール名、説明を指定します。

 

  • 以下のIAM ロールが作成されました。(例: EventScheduler-RDSStopRole)

 

Amazon EventBridge スケジューラの作成

  • Amazon EventBridge Scheduler のコンソールを開き、左ペインからスケジュールを選択します。

 

  • 以下の画面が表示されます。「スケジュールを作成」を押下します。

 

  • スケジュール名、説明を指定します。

 

  • スケジュールのパターンとして、頻度に「定期的なスケジュール」、スケジュールの種類に「cron ベースのスケジュール」、cron 式にスケジュールに指定する日時を定義します。時間はローカルのタイムゾーン (JST) で指定出来ました。

 

  • タイムゾーンは、「Asia/Tokyo」を指定。開始日時、終了日時は、特に指定していません。

 

  • 続けて、ターゲットとして呼び出すAPI を選択します。「すべての API」→「Amazon RDS」を選択します。

 

  • 今回は、Aurora の DBクラスターを対象とするため、「StopDBCluster」を選択します。
  • パラメータとして、DbClusterIdentifier に、DBクラスターのリソース名を指定します。

 

  • スケジュールを有効化を選択します。スケジュール完了後のアクションは、「NONE」を指定します。

 

  • 実行ロールに「既存のロールを使用」を選択し、先ほど作成したIAM ロールを指定します。

 

  • スケジュールの設定値を確認し、「スケジュールを作成」を押下します。

 

 

  • 以下のスケジュールが作成されました。

 

RDS 停止の動作確認

  • スケジュールに指定した時間にRDS クラスターが停止されたことを確認します。

 

参考資料

AWS,RDS

Posted by takaaki