[アップデート] Patch now! Systems Manager パッチマネージャーでオンデマンドのパッチ適用が簡単に実施できるようになりました

コンソールでボタンが追加されただけかと思いきや裏側の仕組みも変わっていました。あなどれません Patch now。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンバンハ、千葉(幸)です。

Systems Manager パッチマネージャーに、オンデマンドでパッチオペレーションを行う新たなオプション Patch now が追加されました!

コンソールからより手軽に、かつ柔軟に、オンデマンドでのパッチマネージャー実行ができるようになりました。進捗状況の可視化というおまけ付きです。

目次

何が変わったのか

簡単に言うと、マネジメントコンソールにおいて、パッチマネージャーの画面で [Patch now] というボタンが追加されました。

これにより、(スケジュール実行ではなく)オンデマンドでのパッチスキャン、インストールが簡単に行えるようになりました。

従来からオンデマンドでのパッチ適用は可能ではあったのですが、裏側で動く仕組みが変わり、より柔軟な選択ができるようになっています。また、実行時に進捗状況を確認できる画面も追加されました。

今回のアップデートで新規に増えた Patch now の方式と、従来のオンデマンド方式とで、裏側で実行される Systems Manager の機能として以下のような違いがあります。

  • 新規:ステートマネージャー
  • 従来:Run Command

新規である Patch now の場合、以下のような選択を行います。

  • Patching operation
    • スキャンのみ
    • スキャンとインストール
  • (スキャンとインストールを選択した場合)Reboot option
    • 必要時には再起動する
    • 再起動しない
  • Instances to patch
    • すべてのマネージドインスタンス
    • 特定のインスタンス
      • インスタンスのタグで指定
      • 手動で指定
      • リソースグループで指定

一方、従来の方式では以下のような選択画面となります。

  • パッチを適用するインスタンス
    • 「すべてのマネージドインスタンス」「リソースグループ」を対象とできません
      • Patch now でこれらを選択できるのはステートマネージャーを用いているため
    • 「パッチグループ」はパッチマネージャーにおける概念ですが、突き詰めて考えれば「特定のタグが付与されているインスタンス」です
  • パッチ適用スケジュール
    • パッチマネージャは基本的には Systems Manager メンテナンスウインドウ と組み合わせてスケジュール実行することが想定されていますが、そこをスキップすることもできます
    • メンテナンスウインドウを使用しない場合、Run Command により実行されます
  • パッチ適用オペレーション
    • スキャンのみかインストールも行うかを選択可能
    • 再起動オプションは選択できず、デフォルトである「必要時には再起動する」が適用されます

こうして比較すると、簡単に設定でき、かつ柔軟な設定に対応したことがわかりますね。

パッチマネージャーの全体像については、以下エントリをご参照ください。

やってみた

早速 Patch now してみます。

パッチマネージャーへのアクセスが二回目以降の場合、ここから Patch now できます。

以下の設定で実行します。

  • スキャンとインストール
  • 必要時に再起動
  • 対象インスタンスを手動で指定

実行すると以下のような画面に遷移し、進捗状況が確認できます。これは従来の方式ではできなかった機能です。数秒ごとに更新されます。

今回は一台だけなのであまり見応えがないですが、複数台まとめて適用する際にはそれぞれのステータスが一目瞭然となります。

また、ここから裏側で生成されたアソシエーション、およびその実行履歴をリンクから遷移して確認できます。アソシエーション(関連づけ)はステートマネージャーに属するリソースで、マネージドインスタンスに対する状態を定義するものです。

マネージドインスタンスにおけるパッチのステータスは、以下の画面から確認できます。

スキャンのみを行う場合は、ここから新規のパッチがないか確認する、といった使い方をすることになるでしょう。

  • Installed:正常にインストールが完了しています
  • Installed Other:手動などでインストールが行われています
  • Installed Pending Reboot:再起動待ちです
  • Installed Rejected:インストールされた後に拒否リストに載ったものです
  • Missing:新規で取得可能であるがインストールされていない状態です
  • Failed:インストールに失敗したものです

About patch compliance status values - AWS Systems Manager

補足事項

Patch now を選択した際に、画面右側にいくつか補足事項が表示されるため、機械翻訳したものを載せておきます。

インスタンスにパッチを適用する

Patch Managerの[今すぐパッチ]オプションを使用すると、コンソールからオンデマンドパッチ操作を実行できます。つまり、インスタンスのコンプライアンスステータスを更新したり、非準拠インスタンスにパッチをインストールしたりするために、スケジュールを作成する必要はありません。インスタンスには、同時実行性とエラーのしきい値に関するAWSの推奨ベストプラクティスを使用してパッチが適用されます。

インスタンスのスキャンのみを実行する場合は、[スキャン]を選択します。

構成済みのベースラインに従ってパッチを適用するには、[スキャンしてインストール]を選択します。ベースラインをまだ構成していない場合は、デフォルトのベースラインがAWS推奨のベストプラクティスで提供されます。

[今すぐパッチ]ボタンをクリックすると、AWS-PatchNowAssociationと呼ばれる1回限りのState Manager関連付けが作成またはトリガーされます。

レート制御

この「今すぐパッチ」画面のすべての操作は、スマートレートコントロールで行われます。

  • 25未満のサイズのフリートは、一度に1つずつパッチを適用します。
  • サイズが25から100のフリートは、一度に5%のパッチを適用します
  • サイズが101から1000のフリートは、一度に8%のパッチを適用します
  • 1000より大きいサイズのフリートは、一度に10%のパッチを適用します

エラーしきい値

エラーしきい値は、パッチ適用操作全体が中止される前にパッチ適用に失敗したインスタンスの数を定義します。以下のエラーしきい値を使用します

  • サイズが25未満のフリートは、1つのインスタンスが失敗した後、パッチ適用を中止します。
  • サイズが25から100のフリートは、5つのインスタンスが失敗した後、パッチ適用を中止します。
  • 100より大きいサイズのフリートは、10個のインスタンスが失敗した後、パッチ適用を中止します

リソースグループによるターゲティング

リソースグループでターゲット設定するオプションを選択すると、タグベースのリソースグループが完全にサポートされます。Cloudformationに基づくリソースグループは、デフォルトの「aws:cloudformation:stack-id」タグが削除されていない限りサポートされます。リソースからデフォルトのCloudformationタグを削除すると、Patch Managerがリソースグループのメンバーシップを解決できない場合があります。

はい。

終わりに

パッチマネージャーの新たなオンデマンドオプション Patch now を確認しました。

パッチマネージャーのユースケースとしてはスケジュール指定による定期実行を行うものが多かったと思いますが、オンデマンドでの実行が行いやすくなりました。

パッチマネージャーでできるのは「パッチベースラインで定義した内容に応じて一括適用」という形であり、個々のパッケージを細かく指定することはできないですが、パッチ適用方針と合致するようでしたら有効活用いただければと思います。

以上、Patch now と言いたいだけの千葉(幸)がお送りしました。

声に出したくなる響きですよね