【AWS】【Systems Manager】SSM オートメーションと CloudWatch Events で RDS を定期的に停止する設定手順

AWS Systems Manager の「オートメーション」「CloudWatch Events」を利用して RDS を定期的に停止する設定手順について解説します。

 

【AWS】Systems Manager で CloudWatch Events を利用して EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

 

 

手順概要

以下の手順で設定します。

  1. ロールの作成
  2. リソースグループの登録
  3. CloudWatchEventsの作成
  4. 動作確認

 

 

 

ロールの作成

AWS 管理コンソールにログインし「サービス」「セキュリティ、ID、およびコンプライアンス」「IAM」をクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

「Identity and Access Management(IAM)」のダッシュボードより「ロール」をクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

「ロールの作成」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

「信頼されたエンティティの種類を選択」より「AWS サービス」をクリックし、「このロールを使用するサービスを選択」より「EC2」を選択します。

※今回は RDS の自動停止ですが、ここで EC2 を選択します。その理由は RDS を選択するとサービスロールの割り当てとなってしまい、ポリシーを変更できなくなるからです。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

「Attach アクセス権限ポリシー」「ポリシーのフィルタ」「AmazonRDSFullAccess」「AmazonSSMAutomationRole」を選択し、下図のように 2つを選択して「次のステップ:タグ」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

 

「タグの追加(オプション)」で必要な場合はタグを設定し「次のステップ:確認」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

「確認」画面にて「ロール名」を設定してポリシーが「AmazonRDSFullAccess」「AmazonSSMAutomationRole」が選択されていることを確認し「ロールの作成」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

ロールが作成されたら、作成したロール名(今回の場合は「AUTO-STOP-RDS-ROLE」)をクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

「信頼関係」タブをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

「信頼関係の編集」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

信頼関係の編集画面で下図のようにポリシーが設定されていることを確認します。

■ポリシー(編集前)

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

■ポリシー(編集前)


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

 

 

 

 

ポリシーを以下のように編集します。

編集したら「信頼ポリシーの更新」ボタンをクリックします。

■ポリシー(編集後)

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

■ポリシー(編集後)


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

 

 

 

 

 

下図のように「信頼されたエンティティ」「ID プロバイダー events.amazonaws.com」が設定されていることを確認します。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

CloudWatch Events からのオートメーションによるインスタンス実行のスケジューリング設定手順

ロールの準備が出来たら、CloudWatch Events の設定をして Systems Manager の「オートメーション」による EC2 インスタンスを起動するスケジューリングをします。

起動は CloudWatch の CRON 式を利用します。

 

 

AWS 管理コンソールにログインし「サービス」「管理とガバナンス」「CloudWatch」をクリックします。

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

 

 

 

CloudWathc のダッシュボードに移動したら、左側ペインより「イベント」をクリックします。

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

 

 

 

 

「Amazon CloudWatch Events」「Get started」ボタンをクリックします。

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

 

 

 

 

 

「ルールの作成」画面でイベントソースを設定します。

「スケジュール」を選択し、「Cron 式」を選択してスケジュールを入力します。画面では例として 5分おきに実行される設定を入れています。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

次に「ターゲット」「ターゲットの追加」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

ターゲットに「SSM Automation」を選択します。

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

以下のようにターゲットが「SSM Automation」になっていることを確認します。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

ちなみに以下のターゲットを選択できます。

 

■選択できるターゲット一覧

以下のターゲットを選択できます。

  • Batch job queue
  • CodeBuild poject
  • CodePipeline
  • EC2 CreateSnapshot API 呼び出し
  • EC2 RebootInstances API 呼び出し
  • EC2 StopInstances API 呼び出し
  • EC2 TerminateInstances API 呼び出し
  • ECS タスク
  • Firehose 配信ストリーム
  • Inspector assesment template
  • Kinesis ストリーム
  • Lambda 関数
  • SNS トピック
  • SQS キュー
  • SSM Automation
  • SSM OpsItem
  • SSM Run Command
  • Step Functions ステートマシン
  • 別の AWS アカウントのイベントパス

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

【AWS】Systems Manager で EC2 インスタンスを自動起動・自動停止する(オートメーション)

 

 

 

 

 

「ターゲット」「AWS-StopRdsInstance」を選択します。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

 

「ドキュメントのバージョン設定」「デフォルト」を選択し、「オートパラメータの設定」「定数」を選択し、「InstanceId」に停止する RDS 名(今回の場合は sqlservertest01)を入力します。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

ロールの選択に関しては「既存のロールを使用」を選択し、先ほど作成した「AUTO-STOP-RDS-ROLE」を選択し、「設定の詳細」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

 

 

 

 

「ルールの詳細を設定する」画面でルールの名前(今回の場合は AUTO-STOP-RDS)を設定し「ルールの作成」ボタンをクリックします。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

 

下図のようにエラーが出力されずにルールが作成されることを確認します。

 

 

 

 

 

 

 

動作確認

最後に動作確認をします。

 

RDS が起動していることを確認します。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

 

CloudWatch Events で設定したオートメーションが実行されるまで待ちます。

時間が経過後、下図のように RDS が停止していることを確認します。

【AWS】【Systems Manager】SSM オートメーションと CloudWatchEvents で RDS を定期的に停止する設定手順

 

 

 

参考にしたサイト

ありがとうございました!

CloudWatchEvents+SSMAutomationでRDS自動起動停止

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください