継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Aurora Serverless V2 の ACU を EventBridge Scheduler で自動調整したメモ✍

タダです.

Aurora Serverless V2 の特徴は負荷に応じた ACU 調整によるスケールアップ/ダウンができることですが,負荷がかかる処理が予めわかっている場合にスケジュールで ACU を調整したい機会があり,EventBridge Scheduler で試してみたのでメモをまとめます.

Aurora Serverless v2 の仕組み - Amazon Aurora

EventBridge Scheduler の IAM ロールおよびポリシー設定

IAM ロールの信頼関係ポリシーは EventBridge Scheduler 向けに設定します.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "scheduler.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

IAM ポリシーは ModifyDBCluster を使用するので以下の権限を設定します.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds:ModifyDBCluster",
            "Resource": "arn:aws:rds:[リージョン名]:[アカウント番号]:cluster:[Auroraクラスター名]"
        }
    ]
}

EventBridge Scheduler 設定

次に EventBridge Scheduler の設定を簡潔にまとめます.実行の時間は割愛し,ACU 調整に必要な設定に焦点を当てて記載します.EventBridge Scheduler のターゲットには All APIs > Amazon RDS > ModifyDBCluster を指定します.

EventBridge Scheduler のターゲット設定イメージ

インプットとしては以下のように DbClusterIdentifier に対象のクラスター名を書き,ServerlessV2ScalingConfiguration に ACU 設定値を記載します.IAM の設定は先程作成した IAM ロールを指定します.

{
  "DbClusterIdentifier": "[Auroraクラスター名],
  "ServerlessV2ScalingConfiguration": {
    "MinCapacity": 1.0,
    "MaxCapacity": 2.0
  }
}

以上で EventBridge Scheduler の設定が完了です.これでスケジュールで ACU の調整ができます.

まとめ

特定の負荷が高くなるイベントに備えて ACU を調整するのを EventBridge Scheduler を試すことができたので設定にまつわる部分をまとめました.