困っていた内容
EC2 インスタンスの CloudWatch メトリクス CPUUtilization に対して、CloudWatch Alarm を設定しています。
CloudWatch Alarm はメトリクスがデータ不足に推移した場合も、アクションを実行するように設定しています。
コスト削減のため、EC2 インスタンスに対して深夜 0:00 に停止する処理を入れたところ、停止時に CloudWatch Alarm がデータ不足のアラーム状態となってしまいます。
これを回避するために、CloudWatch Alarm を一時停止する方法を教えてください。
どう対応すればいいの?
CloudWatch Alarm は AWS CLI コマンドで一時停止/再開をすることが可能です。
一時停止する方法
aws cloudwatch disable-alarm-actions --alarm-names <アラーム名>
再開する方法
aws cloudwatch enable-alarm-actions --alarm-name <アラーム名>
この処理を Lambda 関数として作成し、CloudWatch Events でスケジュールとして実行することで、特定の時間帯に CloudWatch Alarm を一時停止することも可能です。
現時点では、マネジメントコンソールで一時停止/再開を行う機能は提供されておりません。
参考資料
disable-alarm-actions — AWS CLI 1.18.195 Command Reference