BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS・Systems Manager】SSMエージェントを自動更新しよう!

はじめに


こんにちは!
株式会社BFT名古屋支店・インフラ女子(?)のやまぐちです。

混雑状況を見える化するサービス「こんどる?」では各店舗にRaspberry Pi(以後、ラズパイ)を置いています。そのラズパイにUSB接続したWebカメラとGPIOピンに付けたCO2センサーから取得したデータをクラウドに送ります。

店舗に置くラズパイを遠隔操作するためにAWS Systems ManagerのエージェントであるSSMエージェントを導入しているのですが、実は今までSSMエージェントの更新を手動で行っていました。

3~6か月に一度くらいの間隔で手動更新していたのを自動更新してみたらびっくりするほど簡単だったのでもっと早く自動更新にすればよかったと後悔しました…。

本日は簡単に自動更新を設定する方法をご紹介します!

bftnagoya.hateblo.jp

SSMエージェントを自動更新する


そもそもSSMエージェントって更新しないとダメ?

リリース済のシステムでエージェントを更新する…やらなきゃいけないけれど面倒というのが本音です。とはいえ、クラウドだとある程度最新にしておかないと「動作しない」ということがあり得ます。SSMエージェントも以前メジャーバージョンが上がった後に「古いのを使っていると使えなくなるよ」という警告メッセージが出たことがありました。クラウドを使っている以上、そのクラウドサービスのエージェントを使っている以上、エージェントを更新し続けることは必須と考えた方がよさそうです。

手動更新のやり方

今まではSystems ManagerのRunCommandから手動で実施していました。これも一度で実行対象を複数選択できていたためそれほど苦ではなかったです。比較として見てみましょう。

  1. [ RunCommand ] メニューから [ RunCommand ] を押します。

  2. 検索ウィンドウに [ SSM ] と入力し、[ AWS-UpdateSSMAgent ] を選択します。

  3. ターゲットに実行対象のインスタンスを選択します(タグやリソースグループで指定も可能)。画面右下の [ 実行 ] を押します。

  4. 実行結果を確認します。しばらくして上にある更新アイコンを押すと各ノードに対する成否、全体の成否結果が確認できるようになります。

簡単ではありますが、そもそもの話でこういう作業もやらないのが自動更新ですね!

自動更新にしてみる(一瞬)

自動更新はなんと一つのボタンを押すのみ!

  1. [ フリートマネージャー ] メニューから [ 設定 ] タブを開き、[ SSM Agentの自動更新 ] を押します。

  2. 手順としては以上(瞬殺!!)ですが、自動更新ボタンを押したらどうなるかを見てみましょう。設定ステータスが [ 保留中 ] となっているのが気になりますね。[ 詳細の表示 ] を押します。

  3. 今回対象の3台のうち、2台まで完了して最後の1台が [ 保留中 ] ですね。しばらくするとすべて [ 成功 ] になり設定ステータスも [成功] に変わりました!


デフォルトでは14日ごとにチェックし最新があればエージェントを自動で更新します(変更可)。

ちなみに設定の時に停止していたEC2インスタンスはどうなるんだろうと思い数日後に起動したところ、起動後すぐにSSMエージェントが更新されたらしくバージョンが上がっていました(3.1.1188.0から3.1.1446.0)。一安心です。
■ 起動前

■ 起動後

終わりに


Sysytems Managerってどんどん新しい機能が追加されるので時々チェックすると構築や運用を楽にする有益な方法を見つけられて嬉しいですね!しばらくSystems Managerの機能を使い込んで楽しんでみようと思います。

以上、ここまで読んでいただきありがとうございました~ ^ ^