概要
Amazon RDSは、AWS Systems Manager Automationを使って自動的に起動・停止できます。AWSが提供する専用のマネージドRunbookを使えば、EventBridgeと組み合わせてコード不要で定時起動・停止が実現可能です。本記事では、RDSのAutomation対応状況と実装方法を解説します。
目次
- Systems Manager Automationとは
- RDS向けマネージドRunbook
- RDS起動・停止の実装方法
- 料金について
- 制約と注意点
- 終わりに
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の起動・停止を自動化できます。
3. RDS起動・停止の実装方法
開発環境や検証環境のRDSを営業時間外に自動停止してコスト削減する、というのが典型的なユースケースです。実装方法は主に2つあります。
方法1:EventBridge(旧CloudWatch Events)を使用
最もシンプルな方法は、EventBridgeのスケジュールルールでAutomation Runbookを定期実行する方法です。
設定手順(概要)
- IAMロールの作成:Systems Manager Automationが実行に使用するロールを作成し、RDSの起動・停止権限を付与
- EventBridgeルールの作成:停止用と起動用の2つのルールを作成
- 停止用:cron式で停止時刻を指定(例:
cron(0 12 * * ? *)は毎日21:00 JST) - 起動用:cron式で起動時刻を指定(例:
cron(0 0 * * ? *)は毎日09:00 JST)
- 停止用:cron式で停止時刻を指定(例:
- ターゲットにSSM Automationを指定し、ドキュメントとして
AWS-StopRdsInstanceまたはAWS-StartRdsInstanceを選択 - パラメータでRDSインスタンスIDとIAMロールARNを指定
注意点
- EventBridgeのcron式はUTC時刻で指定するため、日本時間(JST)から9時間引く必要があります
- cron式のフォーマットはLinuxのcrontabと異なり、曜日または日のどちらかを指定する場合、他方は「?」にする必要があります
方法2:Systems Manager State Managerを使用
State Managerは、リソースの状態を定義したスケジュールで維持する機能です。Maintenance Windowsと比較して、より簡潔な設定で定期実行が可能です。
設定手順(概要)
- IAMロール作成(方法1と同様)
- State Manager Associationを2つ作成(停止用と起動用)
- 各Associationで以下を設定
- Document:
AWS-StopRdsInstanceまたはAWS-StartRdsInstance - Schedule:On Schedule(CRONスケジュールビルダーで日時指定)
- Parameters:InstanceId(RDS識別子)、AutomationAssumeRole(IAMロールARN)
- Document:
複数インスタンスを一括制御する場合
タグを使った制御が便利です。
- 対象のRDSインスタンスに共通タグを付与(例:
Action: StartStop) - AWS Resource Groupsでタグベースのリソースグループを作成
- 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:StartDBInstance、rds:StopDBInstance、rds: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公式ドキュメント
- 「Amazon RDS - AWS Systems Manager Automation Runbook Reference」AWS Documentation, https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-ref-rds.html
- 「AWS Systems Manager Automation」AWS Documentation, https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html
- 「AWS-StartRdsInstance」AWS Documentation, https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-startrdsinstance.html
- 「AWS-StopRdsInstance」AWS Documentation, https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-stoprdsinstance.html
- 「Automatically stop and start an Amazon RDS DB instance using AWS Systems Manager Maintenance Windows」AWS Prescriptive Guidance, https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.html
- 「AWS Systems Manager Pricing」AWS, https://aws.amazon.com/systems-manager/pricing/
- 「Aurora Serverless v2 の自動一時停止と再開によるゼロ ACU へのスケーリング」AWS Documentation, https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2-auto-pause.html
- 「Amazon Aurora DB クラスターの停止と開始」AWS Documentation, https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html
技術ブログ・記事
- Varun Mahajan, Sharath Lingareddy「Schedule Amazon RDS stop and start using AWS Systems Manager」AWS Database Blog, June 7, 2021, https://aws.amazon.com/blogs/database/schedule-amazon-rds-stop-and-start-using-aws-systems-manager/
- 「Use Systems Manager Automation documents to manage instances and cut costs off-hours」AWS Cloud Operations Blog, January 16, 2021, https://aws.amazon.com/blogs/mt/systems-manager-automation-documents-manage-instances-cut-costs-off-hours/
- 「Amazon Aurora Serverless v2が最小キャパシティ0に対応し、自動停止・再開が可能になりました」DevelopersIO, https://dev.classmethod.jp/articles/amazon-aurora-serverless-v2-supports-acu0-pause-resume/
- 「AWS Systems Manager Automation enhances runbook execution control and updates free tier」AWS What's New, August 2025, https://aws.amazon.com/about-aws/whats-new/2025/08/aws-systems-manager-automation-enhances-runbook/
