はじめに
目的
本章では、本記事の狙いと読み進め方をやさしく説明します。AWSのメンテナンスウィンドウに関心がある方が、運用作業を安全かつ効率的に行えるようにすることが目的です。具体的には、定期的なパッチ適用やバッチ処理の実行を計画的に行うための考え方を学びます。
対象読者
・AWSを使っている運用担当者やエンジニア
・メンテナンス作業を自動化したい管理者
・初めてSystems Managerを触る方も読みやすい内容です。専門用語は最小限にし、具体例を交えて説明します。
本記事で得られること
本記事は全5章構成です。第2章でメンテナンスウィンドウの基本を、第3章でSystems Managerの構成要素を、第4章で作成手順をステップごとに、第5章で実行状況の確認方法を解説します。実務で使える知識を段階的に身につけられます。
読み方のポイント
まず第2章で概念をつかんでください。その後に手順を追えば、実際の設定で迷いにくくなります。例として「夜間にまとめてパッチを当てる」など、身近な運用シナリオを想像しながら読むと理解が深まります。
AWS メンテナンスウィンドウとは
概要
メンテナンスウィンドウは、システムやサービスの変更や更新を安全に行うために予約する時間帯です。事前に開始時刻と終了時刻を決めておき、その枠内で計画的に作業を実行します。業務時間外や負荷が低い時間を選ぶことで、ユーザーへの影響を小さくできます。
具体例
- 毎週日曜深夜にサーバーのセキュリティパッチを当てる
- 月末の業務時間外にデータベースのスキーマ変更を行う
これらは事前にウィンドウを設定しておくことで、自動的に実行できます。
メンテナンスウィンドウのしくみ(簡単)
- 時間枠を設定する(開始・終了)
- 対象のリソースを指定する(例:特定のサーバー群)
- 実行する作業を登録する(例:アップデート、再起動)
ウィンドウが来ると、登録した作業が順に実行されます。
利点
- 影響を最小化して計画的に実施できます
- 作業を自動化してヒューマンエラーを減らせます
- 複数のリソースに対して一括で作業できます
注意点
- 完全なダウンタイム回避を保証するわけではありません。機能間の依存を確認してください
- 長時間のウィンドウに頼りすぎると運用負担が増えるため、作業は分割して安全に行うことをおすすめします
この章では、メンテナンスウィンドウの目的と基本的な使い方をやさしく説明しました。次章では、メンテナンスウィンドウを構成する具体的な要素に進みます。
AWS Systems Manager メンテナンスウィンドウの構成要素
概要
AWS Systems Manager のメンテナンスウィンドウは、主に「ウィンドウ作成」「ターゲット登録」「タスク作成とターゲット指定」の3つで構成されます。簡潔に言えば、いつ行うか(ウィンドウ)、どこで行うか(ターゲット)、何を行うか(タスク)を定義する仕組みです。
ウィンドウ作成時の主な設定
- 名前・説明:識別しやすい名前と目的を記載します。例:月次パッチ適用
- 未登録ターゲットの許可:まだ管理されていないインスタンスを許可するか設定します
- ウィンドウ開始日・終了日:期間を限定したいときに設定します
- メンテナンス開始・終了時刻:繰り返しの時間帯を指定します(例:毎週日曜 02:00-04:00)
- タグ管理:環境やサービス名で分類できます
ターゲット登録時の主な項目
- ターゲット名・説明:誰が何の対象か分かるようにします
- ターゲットの指定方法:タグ、インスタンスID、リソースグループなどで指定できます(例:タグ env=prod のサーバ)
- 所有者情報:所有者や担当者を記載すると便利です。所有者情報は Amazon EventBridge のイベントに含まれ、通知や自動化ワークフローで使えます
タスク作成とターゲット指定
- タスク種類:コマンド実行や自動化ドキュメント、Lambda 呼び出しなどを指定します(例:yum update を実行する Run Command)
- 実行順序と並列度:複数タスクを順番に実行するか、同時に実行するかを制御します
- タイムアウトや再試行設定:失敗時の挙動を決めます
運用のポイント
- 名前やタグを意味あるものにして、誰でも理解できるようにします
- 所有者情報を入れておくとトラブル時の対応が早くなります
- 小さなターゲットグループでテストしてから本番に適用すると安全です
詳しい作業手順は次章で説明します。
メンテナンスウィンドウの作成手順
前提
Systems Manager コンソールにサインインし、左メニューの「Change Management」→「Maintenance windows」を開きます。作業はコンソールのウィザードで進みます。
作成手順(手順を追って)
- 「Create maintenance window」をクリックします。名前と説明を入力します。名前は識別しやすい短い文字列にします。
- スケジュールを設定します。Cron 式または rate 式を指定できます。例:毎週日曜の午前2時に実行する場合は cron 式を使います(cron の書式は AWS の形式に合わせてください)。タイムゾーン、期間(Duration)とカットオフ(Cutoff)もここで指定します。
- IAM サービスロールを指定します。Maintenance Window が操作を実行するためのロールを選びます。ロールが無い場合は先にロールを作成してください。
- 設定内容を確認し、「Create」で作成します。
作成後の流れ
作成直後にターゲット登録とタスク登録を行います。ターゲットはタグ、リソースグループ、インスタンス ID で指定します。タスクは実行するドキュメント(例:AWS-RunPatchBaseline、AWS-RunShellScript)とパラメータ、同時実行数(MaxConcurrency)や失敗許容(MaxErrors)、タスク専用のサービスロールを設定します。
実務上の注意点
- まずは小さいスコープ(数台)でテストします。
- タグ設計を整えてターゲット指定を簡潔にします。
- 同時実行数と失敗許容を適切に設定し、影響範囲をコントロールします。
- 必要に応じてログ出力先や通知設定も確認してください。
メンテナンスウィンドウの実行状況確認
概要
スケジュール日時を過ぎると、Systems Manager のメンテナンスウィンドウ画面の「履歴」タブで実行履歴を確認できます。実行ごとにタスクや対象ごとの結果が記録され、原因調査や再実行に役立ちます。
実行履歴の場所
コンソールで「Systems Manager」→「Maintenance Windows」→ 対象のウィンドウを選択 → 「履歴」タブを開きます。ここに実行IDとステータス一覧が表示されます。
実行履歴の主な項目
- 実行ID: 一意の識別子
- ステータス: Scheduled, InProgress, Success, Failed, Cancelled, TimedOut, Skipped など
- 開始/終了時刻、所要時間
- タスク数・対象数
- ログリンク: タスクの出力先(CloudWatch Logs や S3)への参照
詳細確認(タスク・インスタンス別)
実行IDをクリックするとタスクごとの結果が見えます。さらに各タスクを開くと、対象インスタンスごとの実行状態やコマンド出力を確認できます。
CLI での確認例
- 実行一覧: aws ssm describe-maintenance-window-executions –window-id
- タスク詳細: aws ssm describe-maintenance-window-execution-tasks –window-execution-id
- インボケーション: aws ssm describe-maintenance-window-execution-task-invocations –window-execution-id –task-id
ログとトラブル対処のポイント
ログにエラーがあれば CloudWatch または S3 を開き、エラーメッセージを確認します。多い原因は SSM Agent の不在・認証エラー・ネットワーク制約です。必要なら該当インスタンスで SSM Agent を再起動し、IAM ロールやセキュリティグループを見直してください。












