概要
AWSは従量課金の料金体系となっております。利用していない時間は停止するといったオペレーションで、利用料金を最適化することはとても大切です。
ここではCloud Automatorを使って開発、検証用で利用しているRDSのDBインスタンスを停止状態に維持するTipsをご紹介します。
背景
RDSにはDBインスタンスを停止する機能があります。マネジメントコンソールで起動しているDBインスタンスを停止操作をすることができますが、停止してから7日経過すると自動的に起動するようになっています。そのため、起動してきたDBインタンスを再度停止するといったことを繰り返さないと、仮に使っていなかったとしても利用料金が発生してしまいます。
設定内容のポイント
Cloud Automatorには決められた日時に繰り返しジョブを実行する「タイマー」トリガーと、RDSのDBインスタンスを停止する「RDS: DBインスタンスを停止」アクションがあります。この2つを組み合わせることで7日後に起動してきたDBインスタンスを再び停止し、停止状態を維持することができます。
設定におけるポイントは以下となります。
- トリガーにはタイマートリガーを選択、実行日付/曜日で毎週を選択し、全ての曜日にチェックをいれて、実行時間にはご都合が良い時間を指定します
- アクションの選択では「RDS: DBインスタンスを停止」アクションを選択し、DBインスタンスをIDまたはタグで指定します
こういったジョブを登録しておくと停止したRDSはその日のうちに停止されますので、コストは最低限のみとなります。Cloud Automatorのジョブは毎日動作しますが、すでに停止されているものはスキップいたしますので、利用料金には影響ありません。
注意点
- DBインスタンスを停止する運用を本番環境に適用する場合はご注意ください
- ご紹介したケースでは7日後にDBインスタンスが起動したあとにCloud Automatorのジョブが実行されるまで数時間はDBインスタンスの利用料が発生します
- 7日後にDBインスタンスが起動した直後にDBインスタンスを停止する場合、CloudWatch EventとSNSトリガーなどを組み合わせた高度な設定が必要となります
- 本運用によってDBインスタンスが長期間停止している状態になると、必要な更新がメンテナンスウインドウで適用されませんのでご注意ください