SystemManagerを使って、簡単にサーバー監視やIDS等を導入する2019-04-02techContentsEC2へのソフトウェアインストールの課題感SystemManagerって何?RunCommand導入方法EC2のロールにIAMポリシーを付与する。EC2にタグをつけるRunCommandを設定する。Managerを導入してみたら非常に簡単にいろいろなものがセットアップできたので、そちらの紹介をさせていただきます。そのサーバーに必要なソフトウェアがわかっている場合はインストールした状態でAMIに固め、それをAutoScalingのAMI設定にしたり、EC2立ち上げ時にそのAMIベースに起動することによってすべてのインスタンスに反映することができるかと思います。インスタンスが立ち上がっている場合、それぞれのインスタンスにわざわざsshで入ってインストールしたり、AnsibleやChefを使って一括インストールをしていたかと思いますが、前者はインスタンス数が増えてきたときに対応が難しく、後者に関してはインフラ構成にもよりますが、踏み台の設定が必要だったり、構成管理ツール用に書き換える手間が発生します。いった中でAWSのSystemManagerは上記を解決するツールとして有用だったため、今回使用してみることにしました。リソースを大規模に設定および管理する機能のコレクションです。リソース間で運用データを簡単に一元化し、タスクを自動化できる統一されたインターフェイスが含まれています。インフラストラクチャで運用上の問題を検出して解決するための時間を短縮します。インフラストラクチャのパフォーマンスと設定についての詳細を提供し、リソースとアプリケーションの管理を簡素化することで大規模なインフラストラクチャの運用と管理を簡単にします。先日の発表で注目されたSessionManagerを始め、たくさんの機能を内包している物となっており、EC2やオンプレサーバーの一括管理に向いている物となっています。Commandを使ったツールのインストール方法について紹介させてもらいます。RunCommandユーザ任意のターゲットインスタンスに対して、一括でコマンドを実行できるものです。いった、シェルスクリプトを実行してくれるコマンドもあります。こちらはsudo権限を付与できる任意のコマンドを打つことができるため、今回の背景のような外部ツールの一括インストールには非常に向いています。導入方法EC2のロールにIAMポリシーを付与する。SystemManagerが管理対象としてEC2インスタンスを認識できるようにします。付与するだけで大丈夫です。タグをつけて運用していない場合は予めタグを付けておきましょう。タグを予め指定しておく形をおすすめします。RunCommandを設定する。Commandからコマンドの実行を選択します。)コマンドのパラメータのところでは、任意のシェルスクリプトを記述します。SaaS型のサーバー監視ツールやIDSでは公式でスクリプトを提供していることが多いと思いますので、そちらを記載します。)ターゲットは手動での指定かタグでの指定ができます。タグを予め指定しておいて、そこにインストールする形をおすすめします。)出力オプションでは、コマンドの結果の出力先を指定できます。コマンドの出力を2500文字以上出力したい場合はS3のバケット指定を、CloudWatchLogsで確認できるようにしたい場合は、CloudWatch出力にチェックし、設定を行います。書き込まれるので、それで問題なければロググループ名を空白にします。タイムアウトCanceledのいずれかのステータスを受信したい場合は設定しましょう。Commandの実行あとは実行ボタンを押すだけです。実行後はコマンド履歴の方に反映されます。)コマンドの詳細では、実行したインスタンスの一覧が表示されます。押すと、その実行されたコマンドの標準出力を確認することができます。)これでコマンドの実行は完了です。まとめ今回はSystemManagerの中でもRunCommandに焦点をあてて紹介させてもらいました。立ち上がっているインスタンスへ監視ツールを導入したいときや、IDSなどのセキュリティツールを導入したいときなどに活用することができるかと思います。