Amazon Auroraを自動停止・起動する


はじめに

 Amazon Auroraの自動起動の設定方法。こちらの記事を見ながら行ったのですが、ポリシーの部分でつっかえたり起動しなかったりしましたのでRDSインスタンスとは自動設定が違うのかなと思いメモとして残します。
 今回はEventBridgeとSSMAutomationを利用します。よろしくお願いします(。・ω・)ノ゙

ポリシーの作成

 実行用のポリシーとロールが必要なので作成してきます。
 IAMの画面からポリシーの作成をクリック

 ◆Auroraに対するアクセス許可
 ・サービスでRDSを入力しアクションで「StartDBCluster」「StopDBCluster」を選択する。
 ・リソースでは「このアカウント内のいずれか」にチェック。
 ・同時に選択できないため別々に選択。

  ◆IAMに対するアクセス許可
  ・サービスにIAMと入力しアクションで「PASSRole」を選択する。
  ・リソースでは「このアカウント内のいずれか」にチェック。

  ◆SNS、Systems Managerについてはこの記事と設定が変わらないので見てください。
  ◆作成
  ・任意のポリシー名とタグ名を入力し作成する。

ロールの作成

 ・IAMからロールの作成をクリックしAWSサービスからSystemsManagerのSystemsManagerをクリックし次のステップへ
 
 ・先ほど作成したポリシーを選択し、タグとロール名を決定しロールの作成する。

ロールの信頼関係を修正

 ・ロールの一覧から先ほど作成したロールを選択し信頼関係の編集をクリックし下のように編集する

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal":{
       "Service":[
         "events.amazonaws.com",  
         "rds.amazonaws.com",  新しく追加
         "ssm.amazonaws.com"   新しく追加
       ]
      },
      "Action": "sts:AssumeRole"
    }
   ]
}

 ◆ポリシーの追加内容
 ・ロール一覧から作成したロールを選択し、アクセス権限タグからアタッチしたポリシーをクリックしポリシーの編集を行う。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:StartDBCluster",
                "rds:DescribeDBClusters",    新しく追加
                "iam:PassRole",
                "sns:Publish",
                "sns:DeleteTopic",
                "ssm:*",
                "sns:CreateTopic",
                "sns:ConfirmSubscription",
                "sns:SetTopicAttributes",
                "sns:Subscribe"
            ],
            {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": ["rds:StopDBCluster",
                      "rds:DescribeDBClusters"]  新しく追加
            "Resource": "arn:aws:rds:*:922952486238:cluster:*"
        },

EventBridgeのルール作成

 ・EventBridgeを開きルールの作成をクリックし作成していきます。
 ・任意のルール名と説明を入力し次へ(ルール名は後から変更することはできない)
 ・パターンを定義でスケジュールのcronを選択し自動起動させたい時間を指定する。(今回は月~金20:00に停止するようにしました。)
 ・cron式についてはこちら

 ・次にターゲットの選択から「SSM Automation」を選択しドキュメントでは「AWS-StartStopAuroraCluster」を選択する。
 
 ・ClusterNameで対象のAurora Clusterを入力しActionでは「Start・Stop」のどちらかを選択する。
 ・既存のロールにチェックをいれ先ほど作成したRoleを選択する。

 ・任意のタグをつけ作成をクリックし完成!

動作確認

 ・SystemsManagerを開き変更管理から自動化を選択
 ・ステータスで成功してるか失敗してるかを確認することができます。
 ・動作確認を行いますがこの時すぐに確認したい場合はEventBridgeのスケジュールからcron式をテストしたい時間に合わせることですぐにテストすることができます。

さいごに

 今回は開発環境におけるAuroraの自動起動について忘れないために書きました。本番環境ではDBの停止は推奨されておりませんのであくまで開発環境もしくは検証環境で扱ってください。
 Auroraの自動起動についてはLambdaなどで執筆されている記事がたくさんありますが、どうしてもEventBridgeとSSM Automationでやらないといけなかったので出来てよかったです。
 
 最後まで見ていただきありがとうございました。まだまだこれからもAWSについて学習し知見を深めていきたいと思います!

 バイバイ(。・ω・)ノ゙