はじめに
Change Calendar(チェンジカレンダー)は、AWS Systems Manager の機能のひとつで、運用作業や自動処理を「いつ実行してよいか・避けるべきか」といったメンテナンスの可否を時間単位で管理するための仕組みです。
たとえば、「深夜帯は作業を禁止」「土日はバッチを止めたい」といったルールをカレンダー形式で設定できます。
本記事では、Change Calendar の状態が「OPEN(実行可能)」になったときだけ、Lambda 関数を自動で起動する仕組みを構築する方法を解説します。
AWS EventBridge(イベントブリッジ)を活用し、指定のタイミングでの安全なオートメーションを実現します。
全体の流れ
Change Calendar(OPEN)
↓ イベント発火
EventBridgeルール(Calendar State Change)
↓
Lambda自動実行
Lambda関数の用意
サンプルのLambda関数を用意します。
Lambda関数の作成方法は下記で解説しています。

Change Calendarの作成
AWS Systems Manager → 「カレンダーの変更」

カレンダーの作成をクリック

カレンダータイプを「デフォルトで閉じる」にして作成する。
(そのほかの項目は任意でOK)

EventBridgeルールの作成
AWS EventBridge → 「ルール」 → 「ルールの作成」


ルールの詳細は任意で設定する。

イベントパターンはカスタムパターンを選択し、下記内容を設定する。
resources
のARNは自分のカレンダーARNに置き換える
{
"source": ["aws.ssm"],
"detail-type": ["Calendar State Change"],
"resources": ["arn:aws:ssm:ap-northeast-1:123456789012:document/MyCalendar"],
"detail": {
"state": ["OPEN"]
}
}
ターゲットは実行したいLambda関数を設定する。

ルールを作成できたら完了
実行の流れと検証方法
カレンダーからイベントの作成をクリック

タイムゾーンをAsia/Tokyoにして任意の時間に実行させる。

実行時間にLambdaの実行ログなどを確認する。
おわりに
Change Calendar を活用することで、「業務時間中のみ処理を許可する」「夜間や休日は自動処理をブロックする」といった時間ベースの運用制御が簡単に実現できます。
これにより、想定外のタイミングでの処理実行を防ぎ、より安全で計画的な運用が可能になります。
今回ご紹介した Lambda の自動実行だけでなく、EC2 インスタンスの起動や、SSM Automation の実行など、さまざまな AWS リソースとの連携にも応用できます。
システム全体の信頼性やメンテナンス性を高めるためにも、Change Calendar の導入をぜひ検討してみてください。
コメント