1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RDSはSystems Manager Automationに対応しているか

Posted at

概要

Amazon RDSは、AWS Systems Manager Automationを使って自動的に起動・停止できます。AWSが提供する専用のマネージドRunbookを使えば、EventBridgeと組み合わせてコード不要で定時起動・停止が実現可能です。本記事では、RDSのAutomation対応状況と実装方法を解説します。

目次

  1. Systems Manager Automationとは
  2. RDS向けマネージドRunbook
  3. RDS起動・停止の実装方法
  4. 料金について
  5. 制約と注意点
  6. 終わりに

1. Systems Manager Automationとは

AWS Systems Manager Automationは、AWSリソースの運用タスクを自動化するサービスです。事前定義された「Runbook」と呼ばれる自動化スクリプトを使って、EC2やRDS、Redshiftなど様々なAWSサービスの操作を自動実行できます。

Automationの大きな特徴は、aws:executeAwsApiアクションを使えば任意のAWS APIを実行できる点です。これにより、Runbookが用意されていないサービスでも、API経由で制御できるリソースであれば自動化が可能です。

2. RDS向けマネージドRunbook

AWSは、Amazon RDS専用のマネージドRunbookを複数提供しています ( https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-ref-rds.html )。代表的なものは以下の通りです。

Runbook名 機能
AWS-StartRdsInstance RDS DBインスタンスを起動
AWS-StopRdsInstance RDS DBインスタンスを停止
AWS-StartStopAuroraCluster Auroraクラスターを起動・停止
AWS-CreateEncryptedRdsSnapshot 暗号化スナップショットを作成
AWSSupport-TroubleshootConnectivityToRDS RDS接続のトラブルシューティング

これらのRunbookを使えば、Lambda関数を書かずにRDSの起動・停止を自動化できます。

image.png

3. RDS起動・停止の実装方法

開発環境や検証環境のRDSを営業時間外に自動停止してコスト削減する、というのが典型的なユースケースです。実装方法は主に2つあります。

方法1:EventBridge(旧CloudWatch Events)を使用

最もシンプルな方法は、EventBridgeのスケジュールルールでAutomation Runbookを定期実行する方法です。

設定手順(概要)

  1. IAMロールの作成:Systems Manager Automationが実行に使用するロールを作成し、RDSの起動・停止権限を付与
  2. EventBridgeルールの作成:停止用と起動用の2つのルールを作成
    • 停止用:cron式で停止時刻を指定(例:cron(0 12 * * ? *) は毎日21:00 JST)
    • 起動用:cron式で起動時刻を指定(例:cron(0 0 * * ? *) は毎日09:00 JST)
  3. ターゲットにSSM Automationを指定し、ドキュメントとしてAWS-StopRdsInstanceまたはAWS-StartRdsInstanceを選択
  4. パラメータでRDSインスタンスIDとIAMロールARNを指定

注意点

  • EventBridgeのcron式はUTC時刻で指定するため、日本時間(JST)から9時間引く必要があります
  • cron式のフォーマットはLinuxのcrontabと異なり、曜日または日のどちらかを指定する場合、他方は「?」にする必要があります

方法2:Systems Manager State Managerを使用

State Managerは、リソースの状態を定義したスケジュールで維持する機能です。Maintenance Windowsと比較して、より簡潔な設定で定期実行が可能です。

設定手順(概要)

  1. IAMロール作成(方法1と同様)
  2. State Manager Associationを2つ作成(停止用と起動用)
  3. 各Associationで以下を設定
    • Document:AWS-StopRdsInstanceまたはAWS-StartRdsInstance
    • Schedule:On Schedule(CRONスケジュールビルダーで日時指定)
    • Parameters:InstanceId(RDS識別子)、AutomationAssumeRole(IAMロールARN)

複数インスタンスを一括制御する場合

タグを使った制御が便利です。

  1. 対象のRDSインスタンスに共通タグを付与(例:Action: StartStop
  2. AWS Resource Groupsでタグベースのリソースグループを作成
  3. State ManagerまたはEventBridgeでタグターゲットを指定

これにより、開発環境のRDS全体を一括で起動・停止できます。

4. 料金について

Systems Manager Automationは従来、月間100,000ステップと5,000秒のスクリプト実行時間が無料枠として提供されていましたが、2025年8月14日以降の新規顧客は無料枠が利用できません。既存顧客の無料枠も2025年12月31日に終了します ( https://aws.amazon.com/about-aws/whats-new/2025/08/aws-systems-manager-automation-enhances-runbook/ )。

2025年12月時点の料金(ap-northeast-1リージョン)

項目 料金
ステップ実行 $0.002/ステップ
スクリプト実行時間(aws:executeScriptアクション) $0.00003/秒

AWS-StartRdsInstanceやAWS-StopRdsInstanceは、スクリプトを含まない単純なAPI実行ステップのため、1回の実行あたり$0.002(約0.3円)程度です。

コスト試算例

開発環境のRDS 5台を平日のみ起動・停止する場合(月22営業日):

  • 実行回数:5台 × 2回(起動・停止) × 22日 = 220ステップ/月
  • 月額コスト:220 × $0.002 = $0.44(約66円)

RDSインスタンス自体の停止によるコスト削減効果(営業時間外の約16時間/日)と比較すれば、Automation料金は微々たるものです。

参考: 最新の料金情報は AWS Systems Manager 料金ページ ( https://aws.amazon.com/systems-manager/pricing/ ) をご確認ください。料金は変動する可能性があります。

5. 制約と注意点

RDSをAutomationで制御する際には、以下の制約に注意が必要です。

RDSの停止に関する制約

  • 7日間の自動起動:RDSインスタンスを停止すると、最大7日後に自動的に再起動されます。これはメンテナンス更新を確実に適用するためのAWS仕様です
  • リードレプリカの制約:リードレプリカを持つDBインスタンス、またはリードレプリカ自体は停止できません
  • Multi-AZ SQL Serverの制約:Multi-AZ構成のAmazon RDS for SQL ServerインスタンスはAWSコンソールから停止できません

Aurora Serverless v2の特殊ケース

2024年11月にAurora Serverless v2が最小ACU 0に対応し、自動一時停止が可能になりました ( https://dev.classmethod.jp/articles/amazon-aurora-serverless-v2-supports-acu0-pause-resume/ )。ただし、以下の点に注意が必要です。

  • 対応バージョン:Aurora PostgreSQL 13.15以上、14.12以上、15.7以上、16.3以上、Aurora MySQL 3.08以上
  • Global Databaseのプライマリクラスター・セカンダリクラスターは自動停止不可
  • 特定のパラメータ設定(例:binlog_format)やRDS Proxyの利用により停止しない場合がある
  • 一時停止から再開まで通常15秒程度、24時間以上停止していた場合は30秒以上かかる可能性がある

Aurora Serverless v2の場合、ACU 0による自動一時停止機能を活用する方が、Systems Manager Automationによる手動停止より柔軟な運用が可能です。

その他の注意点

  • 停止時の課金:インスタンスを停止している間も、ストレージとバックアップに対しては料金が発生します
  • IAM権限:Automation実行用のIAMロールには、rds:StartDBInstancerds:StopDBInstancerds:DescribeDBInstancesなどの適切な権限が必要です

6. 終わりに

Amazon RDSは、Systems Manager Automationに完全対応しており、専用のマネージドRunbookが提供されています。EventBridgeやState Managerと組み合わせることで、Lambdaなどのカスタムコードを書かずに、RDSの定時起動・停止を簡単に実現できます。

開発・検証環境のRDSコスト削減には非常に有効な手段ですが、7日間での自動再起動やMulti-AZ SQL Serverの制約など、RDS固有の制限事項を理解した上で導入することが重要です。

次のステップ

  • EventBridgeとAutomationを使った実際の設定を試してみる
  • CloudFormationやTerraformでInfrastructure as Codeとして管理する
  • CloudWatch Logsでオートメーション実行ログを監視する体制を整える

RDSだけでなく、EC2やRedshiftなど他のAWSサービスでも同様のアプローチでコスト最適化が可能です。Systems Manager Automationを活用して、効率的なAWS運用を実現しましょう。

参考文献・参考サイト

AWS公式ドキュメント

技術ブログ・記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?