停止したのに自動復旧で損してる? 「Amazon RDS」のインスタンス管理を「AWS Systems Manager Automation」で自動化する方法AWSチートシート

AWS活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は「AWS Systems Manager Automation」と「Amazon EventBridge」を利用した「Amazon Relational Database Service」(RDS)のインスタンス停止方法を紹介します。

» 2023年05月25日 05時00分 公開
[金光適株式会社システムシェアード]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。以前、本連載の中で「AWS Systems Manager Automation」を利用した「リスクあるリソースの自動検知、自動修復」を紹介しました。今回は同じく運用時に便利なSystems Manager Automationと「Amazon EventBridge」を利用した「Amazon Relational Database Service」(RDS)のインスタンス停止方法を紹介します。

RDSのインスタンス管理について

 RDSは停止していても7日間で自動で復旧し、インスタンスが起動します。しかし、自動で起動されると余計な料金がかかってしまい、困る場面も多々あります。かといって削除すると、毎回インスタンスを作成しなければならないので手間になります。

 例えば、性能環境として用意していて、利用時のみ起動し、それ以外では停止し続けておきたい場合や、開発環境のために、日中のみ起動して夜間は停止したい場合などでSystems Manager AutomationとEventBridgeを利用したRDSのインスタンス管理を利用できます。

サービスの構築

 今回はテスト用にRDSのインスタンスを自動で作成し、その後RDS停止のAutomationをEventBridgeで定期的に実行し、RDSインスタンスを停止し続けるように設定します。特にスクリプトなどを記載する必要はなく、コンソール上で設定を全て完結できます。

 構築の手順は以下の通りです。

  1. RDSのインスタンス作成
  2. IAMの作成
  3. EventBridgeの作成

1.RDSのインスタンスの作成

 テスト用に停止させるRDSのクラスタ、インスタンスを作成します。テスト用なので、デフォルトで作成します。「AWSマネジメントコンソール」にログインし、RDSダッシュボードから「データベースの作成」をクリックします。

 遷移した画面で、次のように選択して「データベースの作成」を押します。

※今回、テスト用なので、簡単に作成しますが、現場で利用する際は可用性やセキュリティなどを考慮、検討して設定してください。

 ステータスが「利用可能」になったら、本工程は完了です。

2.IAMの作成

 次に、EventBridgeで利用する「AWS Identity and Access Management」(IAM)のロールを作成します。

 AWSマネジメントコンソールにログインし、IAMダッシュボードから「ロール」→「ロールの作成」とクリックして遷移した画面で、次のように選択して「次へ」を押します。

 今回必要なポリシーは「Amazon Aurora」、RDSの起動、停止に必要なポリシーのみなので、新しくポリシーを作成します。「ポリシーの作成」→「JSON」タブで次のようにJSONを設定します。

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Action": "ssm:StartAutomationExecution",
  6. "Effect": "Allow",
  7. "Resource": [
  8. "arn:aws:ssm:【リージョン名】:*:automation-definition/AWS-StartStopAuroraCluster:$DEFAULT",
  9. "arn:aws:ssm:【リージョン名】::automation-definition/AWS-StopRdsInstance:$DEFAULT"
  10. ]
  11. },
  12. {
  13. "Sid": "VisualEditor0",
  14. "Effect": "Allow",
  15. "Action": [
  16. "rds:StopDBCluster",
  17. "rds:StopDBInstance",
  18. "rds:DescribeDBClusters"
  19. ],
  20. "Resource": [
  21. "arn:aws:rds:*:【アカウントID】:cluster:*",
  22. "arn:aws:rds:*:【アカウントID】:db:*"
  23. ]
  24. }
  25. ]
  26. }

 設定したら「次のステップ」→「次のステップ」を押します。

 ポリシーの名前、説明を設定し、「ポリシーの作成」を押します。

 ポリシーの作成が完了したら元のタブに戻り、IAMロールに先ほど作成したポリシーをアタッチして「次へ」を押します。

 ロール名に任意の名前を入力します。今回は「rds-stop-sample-role」という名前で登録します。

 ロールが作成されました。

 このままだとEventBridge、RDSが信頼されていないので、カスタマイズします。ロールの一覧から先ほど作成したロール名→「信頼関係」→「信頼ポリシーを編集」を押します。

 次のように編集し、「ポリシーを更新」を押します。

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Sid": "",
  6. "Effect": "Allow",
  7. "Principal": {
  8. "Service": [
  9. "events.amazonaws.com",
  10. "ssm.amazonaws.com",
  11. "rds.amazonaws.com"
  12. ]
  13. },
  14. "Action": "sts:AssumeRole"
  15. }
  16. ]
  17. }

3. EventBridgeの作成

 EventBridgeダッシュボードを開き「ルール」をクリック後に「ルールの作成」を押します。開いた画面で以下のように設定します。名前、説明については任意の値を設定します。今回のAPI名は「rds-stop-sample-rule」とします。

 設定できたら「続行してルールを作成する」を押します。

 テストで確認するために5分おきに実行されるスケジュールに設定します。運用する際は他の処理などと重複しない時間帯など、要件に応じた時間に「cron」を設定してください。設定したら「次へ」を押します。

 次にターゲットを設定します。今回は、ここでSystems Manager Automationを設定します。以下のように設定し、「次へ」→「次へ」→「ルールの作成」を押します。

 ターゲットに「Systems Manager Automation」、ドキュメントに「AWS-StopRdsInstance」を設定すると、自動でRDSを停止します。対象のインスタンスとして、先ほど作成したRDSのインスタンスID(今回は「rds-stop-sample-instance-1」)を入力し、実行ロールには先ほど作成したIAMロール「rds-stop-sample-role」を設定します。

 ルールが作成されたら、構築は完了です。

動作確認

 ルールが作成されたので、RDSが停止されるかどうかを確認します。RDSは作成時のままなので、「利用可能」状態です。

 最初のEventBridgeが実行されました。

 その後、RDSインスタンスが「停止中」に切り替わることを確認できました。

終わりに

 今回はSystems Manager AutomationとEventBridgeを利用した、RDSインスタンスの停止方法を紹介しました。停止に関係するIAMポリシーとAutomationのドキュメントを変更することで定期起動も可能です。必要なときに、必要なものだけを起動する方法はAWSコスト管理の中でも重要になってきます。試してみてはいかがでしょうか。

筆者紹介

金光 適(かなみつ かなう)

株式会社システムシェアード システム開発事業部所属

最高の貢献を最高の仲間と届けることをミッションに普段はWebアプリケーションの開発を実施。API基盤開発、「AWS IoT Core」を利用した基盤構築とIoT機器から収集したデータを利用した機械学習によるレコメンドシステム開発、VM環境からAWS環境へのリプレースやAWS環境上で実施する性能試験など先端技術を用いた開発に従事。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

Cloud Native Central 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー

隴幢スャ隴鯉ス・隴帷」ッ菫」

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。