SSMを使って複数サーバーでDeepSecurityAgentを一度にアップグレードしてみる

2019.03.28

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

おはようございます、もきゅりんです。 皆さん、AWS Systems Manager(以下SSM)は使ってますか?

自分はこのサービスが色々と出来てしまう機能を持つがゆえに、何だかとっつきにくい印象を抱いております。 (おそらくまだ機能の分別・整理がうまく自分の中でできていません) そんなビミョーな距離感を払拭するために、タイトルの件をやってみました。

要は、環境や与件が異なる複数サーバー群に対して、一度に設定をしてしまおうというケースです。

これはSSMの持つ機能の一部分ではありますが、とにかく具体例で実際に手を動かしてみることで、親近感は増しました。 この例では、DeepSecurityAgent(以下DSA)で実施していますが、同様の例は思い浮かんでくるかと思います。(Zabbixエージェントのアップデートでやろうかとも迷いました)

はじめに

今回利用する機能は、インベントリ、ステートマネジャー、ランコマンドの3つになります。

与件と要件

インスタンス 台数 現DSAバージョン アップデートバージョン
Amazon Linux 2 DSA9.6 DSA11.0
Amazon Linux 2 2 DSA10.0 DSA11.0

(※ DSAはDSMからアップデートさせることが出来るのですが、今回はSSMの実用例が趣旨ということで。)

なお、当稿ですが、「Sapporo.aws 第3回」にてWindows EC2 インスタンス向けSystems Mangerの便利な使い方について紹介しました。#sapporoawsを参考としました。ありがとうございます。

やること

  1. ロールの作成と設定
  2. タグの設定
  3. (エージェントのインストール)
  4. コマンド叩く
  5. 確認

インスタンスタイプによっては、3は無視することが出来ます。 ( Systems Manager の前提条件もご確認下さい。)

2は、今後サーバーを構築する際にSSMを考慮してタグ設定しておけばよいと思うので、つまり、4,5の2アクションだけで複数サーバーに対して一気に設定できると考えていいでしょう。

では、まず1,2,3まで整っている状況でのこうだったら嬉しいなフローでやってみて、 その後、何にもやってないよ、からのフローでやってみることにします。

こうだったら嬉しいなフロー

ー ここは省略してもよいのですが ー

いちおうインスタンスのDSAを確認をしておきます。

SSMのコンソールからマネージドインスタンスに見にいきます。

マネージドインスタンスを選択

各インスタンスをクリックしてインベントリ検索して確認します。

dsa9.6を確認

dsa10.0を確認

ちゃんといることが確認できました。

そしたら、ランコマンドで対象サーバーにアップグレードかけちゃいましょう。

ランコマンドに移動します。

ランコマンドを選択

Linuxの場合は、AWS-RunShellScriptを指定して今回必要なコマンドを入力します。

(今回は検証なので、ログ出力はS3バケットではなくCloudWatch出力にしてしまっています。)

参考: Deep Security Agentのアップデート

Amazon Linux DSA9.6 > DSA11.0

amzn1にコマンド流す

タグDSA9.6を追加

cloudwatchログを選択

Amazon Linux2 DSA10 > DSA11.0

amzn2にコマンド流す

タグDSA10を追加

確認します。

Amazon Linux DSA9.6 > DSA11.0 の結果

amzn1のDSA11を確認

Amazon Linux2 DSA10 > DSA11.0 の結果

amzn2のDSA11を確認

ついでに、インベントリでも見ておきましょうか。

インベントリでも確認

OKですね、これで終わりです。

たかだか4台だからさほどでもないですが、これが数十台レベルとなると、かなり楽になりそうですね。 では何にもやってないよ、のフローにいきましょう。

何にもやってないよ、からのフロー

まずは、下記記事を参照の上、1,2を対応しちゃいましょう。

「Sapporo.aws 第3回」にてWindows EC2 インスタンス向けSystems Mangerの便利な使い方について紹介しました。#sapporoaws

そして、もしもSSMエージェントのインストールが必要なインスタンスであったならば、Amazon EC2 Linux インスタンスに SSM エージェント を手動でインストールする を参考に適切なコマンドを流しましょう。

# CentOSの例
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
# CentOS7.xでの確認例
sudo systemctl status amazon-ssm-agent

これらが終わったら、こうだったら嬉しいなフローにいきましょう!

オマケ

アプリケーションをインストールしてすぐにインベントリで確認したいときは、ステートマネジャーからインベントリの関連付けを今すぐ適用しちゃいます。

ステートマネジャーに移動

更新の保留中

更新完了

最後に

SSM、ちょっと触れ合えました。

また近日中に他の機能を利用して記事にしてみようと考えています。

どこかの誰かのお役に立ったら何よりです。

参考

「Sapporo.aws 第3回」にてWindows EC2 インスタンス向けSystems Mangerの便利な使い方について紹介しました。#sapporoaws

DeepSecurityコマンドラインの基本

Deep Security 11.0 アップグレードガイドブック

Deep Security Agentのアップデート