パッチマネージャー で hooks をかけれるように

#内容#
[[Feb 3, 2021]パッチインストール時の安全性を向上させるパッチ適用の前と後のアクション](https://aws.amazon.com/jp/about-aws/whats-new/2021/02/take-actions-before-after-patching-improve-safety-patch-installation/)
パッチの前後にhooksをかけて、アクションを実行出来るようになりました。
例えば、Windowsにパッチをあてる前に、WindowsUpdateサービスが立ち上がっているか確認してあげたり、あるいは、パッチ実行後にインスタンスが正常に動いているか確認してあげたりアクションを指定してあげることが可能になったようです。
なお、<u>SSM Agent 3.0.502 以降</u> に対応している必要があります。

コンソール画面を確認してみると、「今すぐパッチ適用」から次のような項目が新しくできていました。
現時点では、<u>自己所有の Run Command ドキュメントのみ指定可能</u>なようです。
![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/b5b9f75f-0d93-0164-3069-594955247587.png)

こちらにやって見た系の記事がありました。
[AWS Systems Manager Patch Manager でパッチ適用前後にアクションが実行できるようになりました！](https://dev.classmethod.jp/articles/actions-before-after-patch-installation/)

方法によっては、動作に若干の差があることに注意が必要そうです。

　A. AWS System Manager >>> パッチマネージャー >>> 今すぐパッチ適用
　B. AWS Systems Manager >>> Run Command >>> コマンドの実行

A.の方法で実施した場合は、「On Exit」にRun Command ドキュメントを指定しても、デフォルトの AWS-Noop のまま変化がないようです。。。


#やってみた系#

本件のアップデートとは関係ないですが、パッチマネージャーの関連リソースについて上手くまとめられていたので、理解のために。。。

[【AWS Systems Manager】パッチマネージャーの パッチベースライン と パッチグループ の概念を勉強する](https://dev.classmethod.jp/articles/patchmanager-baseline-and-group/#undefined)
[【AWS Systems Manager】パッチマネージャー実行時の関連リソースを、絵で見て（完全に）理解する。](https://dev.classmethod.jp/articles/patchmanager-diagram/#toc-5)

パッチマネージャーを指定した場合の関連リソースについての関係を確認していうことが目的なので、細かなところは画面を見て行けばいいので、割愛する。

##パッチマネージャー##

###パッチグループ###
パッチベースラインタブより、AWS-AmazonLinux2DefaultPatchBaseline を選択し、「アクション」から「バッチグループの変更」。
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/5f9a7373-039c-c049-75fe-838443592804.png)

「パッチグループ」名を入力し追加。
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/b75e6002-d751-0ff4-3d6f-843aeef6549a.png)

パッチグループ タブで作成されていることを確認。なお、パッチグループ タブから新規で作成するということはできないようだ。
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6c081b61-38fa-7499-ab1d-c28e128d2fe9.png)

このパッチグループに所属させたいEC2インスタンスには、次のようにタグを付与しておく。
・キー：patch group
・値：patchgroup_test(指定したパッチグループ名)

###パッチ適用###
**パッチを適用するインスタンス**
「パッチグループを選択する」で、先程作成したパッチグループを指定する。
![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/0cdfd2f6-190a-e7c2-55c0-3cead61302a1.png)

**メンテナンスウィンドウの実行頻度**
特に細かな指定はありませんが、次の時間に実行されるように指定。
![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/a21c829f-6495-680f-1a86-09ff4a9961d6.png)
   
**パッチ適用操作**
「スキャンとインストール」を選択。
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/3ddbae9f-ccdf-a769-00aa-0e0fe5a11047.png)　

☞毎日0時、12時間おきに実行されるように指定したので、次はこれをメンテナンスウィンドウで詳細を確認してみる。

##メンテナンスウインドウ##

先程パッチ適用で作成したものが、メンテナンスウィンドウから確認することが出来る。
![スクリーンショット 2021-02-27 17.55.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6c9eda09-0d56-c685-9837-d3c8087ba2a4.png)

実際に1度実行された後なので、履歴 タブを開くと、実行履歴を確認できる。
![スクリーンショット 2021-02-27 18.12.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/985df38d-55af-3e03-b720-a76e2dd7b006.png)

☞では、この実行は Run Command で実行されているはずなので、Run Command を確認してみる。

##Run Command##

コマンド履歴 タブを確認する。
![スクリーンショット 2021-02-27 18.14.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/40a04211-5f46-87cb-4f18-07f1e6fccf5e.png)

AWS-RunPatchBaseline が実行されていることがわかる。
![スクリーンショット 2021-02-27 18.18.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/d8ce493c-5ed2-c8c6-58f6-7f65a15bea72.png)

☞では、AWS-RunPatchBaseline はどのような内容が実行されるのか、ドキュメントで詳細を確認してみると。

##ドキュメント##

AWS-RunPatchBaseline を検索して、コンテンツ タブを開く実行される内容がわかる。
![スクリーンショット 2021-02-27 18.22.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/e946b566-a7c3-22e9-7cd9-48ab8c6e5faa.png)

☞最後にインスタンスごとに実行された内容、結果をマネージドインスタンスから確認してみると。

##マネージドインスタンス##

パッチ タブを選択すれば、インスタンスごとにインストールされた更新ファイルなどを確認することができる。
![スクリーンショット 2021-02-27 18.26.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/3277154c-786a-98d3-00f2-ee98918ef51f.png)


#リンク#

[AWS Systems Manager ちょい触ってみた。](https://qiita.com/leomaro7/items/4c928268f14ca6c0fb10)