EC2インスタンスの運用には、AWS Systems Manager(以下、SSM)の活用が重要です。 SSMの動作には、EC2インスタンスのOS上で amazon-ssm-agent が起動している必要があります。
amazon-ssm-agentは頻繁にアップデートされているので、各インスタンスに手動で更新を適用するのは大変な手間です。 公式ドキュメントでは、自動更新が推奨されています。
ということで、やってみましょう。
設定前の状況
AWS Systems Manager > フリートマネージャー > マネージドインスタンス
インスタンスごとにSSMエージェントのバージョンが確認できます。 今回の例では、3.0.161.0と2.3.1319.0となっていました。
なお、今回の設定をすると、バージョン2系は3系にアップグレードされますが、基本的に下位互換性を持つため問題は発生しません。 気になる方は念のため、SSM エージェントバージョン 3.0 - AWS Systems Managerをご確認ください。
自動アップデート設定
AWS Systems Manager > フリートマネージャー > 設定
SSMエージェントの自動更新 をポチッとクリックすれば終わりです。
こんな画面になり、
少し待つと、成功となります。
フリートマネージャーで確認すると、全て最新バージョンの3.1.192.0に上がっていました。
設定は以上です。
仕組みを少し確認
詳細の表示 をクリックします。
ステートマネージャーの画面に遷移しました。 この設定で自動アップデートがされています。 例えば、スケジュール式:rate(14 days)となっているので、14日おきに更新のチェックがされます。
また、全てのインスタンスがターゲットとなっています。
すべてのインスタンスを選択する
このオプションを使用して、現在の AWS アカウント および AWS リージョン のすべてのインスタンスをターゲットにします。このリクエストを実行すると、システムは現在の AWS アカウント および AWS リージョン のすべてのインスタンスで関連付けの作成を試みます。システムは、最初に関連付けを作成すると、その関連付けを実行します。この最初の実行後、システムは指定されたスケジュールに従って関連付けを実行します。新しいインスタンスを作成すると、システムは自動的に関連付けを適用し、すぐに実行した後、スケジュールに従って実行します。 ステートマネージャーの関連付けのターゲットとレート制御について - AWS Systems Manager
結局のところ、以下の動作になります。
タイミング | 動作 |
---|---|
インスタンス作成時 | 即座にアップデート実行 |
その後 | 14日周期でアップデート実行 |
必要なケースは少ないと思いますが、ステートマネージャーの設定をカスタマイズすれば、動作変更はできそうです。
まとめ
SSMエージェントの自動更新は有効にしておきましょう。
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい