もう踏み台サーバーは不要?AWS Systems Managerで始める安全なサーバー管理入門


こんにちは!クラウドソリューション開発部の今野です。

前回はAWS Amplifyというツールについて紹介させていただきました。

サクッとWebアプリを作ることができるツールでした。

今回も引き続き、裏方だけどなくてはならないAWSサービスについて紹介させていただきます。

今回はこちら!

「AWS Systems Manager」です。ご存知でしょうか?

Systems Managerとは

私の業務では、40台以上のIoTデバイスやサーバの管理で毎日活用しています。

そのため、 毎日Systems Managerにお世話になっているといっても過言ではありません。

使えば使うほど良さが見つけられるサービスだと思います。

 

どんなサービスか。

一言で言うと、

「AWS及びオンプレミス環境のサーバ(EC2など)を一元管理できるサービス」

です。

あまり使う機会がない方もいるのではないでしょうか?

(EC2やS3はよく使うけど…といったように)

ですが、知って触れることでかなり便利だと感じるサービスなので、ご紹介させていただきます。

 

Systems Managerの仕組み

具体的にどんなことができるか、紹介していきます。

普段よく使うもの、あまり使わないものもありますが、機能をざっくり分けるとこんな感じです。

 

共有リソース

運用で使う「マニュアル」や「鍵」を保管する場所です。

  • ドキュメント

運用手順書をデジタル化したものです。

  • パラメータストア

IDやパスワード、共通設定を安全に保管する金庫です。

 

アプリケーション管理

  • アプリケーションマネージャー

「このサイトに関連するサーバやDBはどれ?」をひとまとめにして、異常がないか一目で確認できます。

  • AppConfig

アプリを止めずに、設定(例えば「新機能ボタンを表示する」など)をサッと書き換える機能です。

 

ノード管理

ノード管理は一番重宝しています。各端末のPingステータスもこちらで確認できてしまいます。

  • Session Manager

いわゆる「どこでもドア」です。

鍵(SSHキー)がなくても、ブラウザから遠隔でファイルにアクセスすることができます。

HTTPS(443番ポート)のアウトバウンド通信さえ許可されていれば、インバウンド(22番ポートなど)を開ける必要はないため、手間が省けます。

  • Patch Manager

面倒なOSのアップデートを「夜中に勝手にやっておいて」と自動化できます。

  • Fleet Manager

サーバの中にあるファイルを、エクスプローラーのような画面でポチポチ操作できます。

以下の画面上に、AWSに接続しているデバイスがリストとして表示されていきます。

Pingステータスも確認することができます。

例えば、Pingステータスがオフラインの時には、デバイスのネットワークが繋がっていない、そもそも電源が入っていないなどが考えられます。

今はリストに値が入っていない状態ですが、リストをクリックすると、

このような詳細画面が表示されます。

色々なステータスが表示されていますね。

 

オペレーション管理

「今、現場で何が起きているか」を管理する司令塔です。

クォーターバックみたいな役目を行っています。

  • OpsCenter

「サーバが重い!」といったトラブル(チケット)を一覧管理し、解決までの進捗を追います。

  • Incident Manager

大障害が起きたとき、担当者に電話したり、復旧手順を表示したりする緊急連絡網です。

 

変更管理

勝手な作業を防ぎ、安全に変更を行うための「ハンコ」リレーです。

  • Change Manager

「この作業をしていいですか?」という承認フローを通さないと、作業が実行できないようにします。

  • Maintenance Windows

「毎週日曜の深夜2時〜4時だけ作業してよし!」という時間枠を予約します。

  • Automation

「古いバックアップを消す」などのルーチンワークを、ボタン一つで自動実行させます。

 

その他

  • ハイブリッドアクティベーション

名前だけ聞くと必殺技みたいですが、なくてはならないツール。

仮想マシンをSystems Manager に登録するためのアクティベーションを作成します。

私の業務では、「AWSに接続しているデバイスが、突如AWSに接続できなくなった際、ハイブリッドアクティベーション上でコードを再発行し、デバイスとAWSを再接続する」といったことができました。

この機能を覚えておくことで、何かあった際の引き出しの1つになると思います。

 

以上のような項目がメインですが、メニュータブにはこのような一覧もあります。

 

Systems Manager、どんな目的で使われるの?

機能はわかったけど、具体的にどんな目的で使うのかなーという方のために、整理しました。

基本的にはサーバの一括管理や一括指示(もちろん個別指示も可能)、そして時間指定によるパッチ適用の自動化などが主な目的となります。

 

サーバへの安全なログイン

  • 障害調査や設定変更のためにサーバにログインする。

昔はサーバに入るために「踏み台サーバ」を作ったり、SSHの鍵を管理したりしていましたが、Systems Managerでは踏み台サーバ「不要」で管理できます。

「運用コストが浮く」「管理する鍵が減ってセキュリティ担当が泣いて喜ぶ」といったことが想像できますね。

Systems Managerを使う上での大きなメリットです。

私の業務ではデバイスを主に管理していますが、サーバも導入しているため、一括管理ができて便利だなーと思います。

 

利点:

  • 踏み台サーバ不要で管理できる!
  • ポートを開ける必要がない: ネットから遮断されたサーバにもブラウザ越しにログイン可能です。
  • ログが残る: 「誰がいつ、どんなコマンドを打ったか」がすべて自動で記録されるので、監査対策もバッチリです。

 

数十〜数百台のサーバへ一括指示

  • 全サーバのミドルウェアを一斉にアップデートしたり、特定のファイルを一括削除したりする。

利点:

マネジメントコンソールのボタン一つで、全台に対して同時にスクリプトを実行できます。

 

パッチ適用を自動化

  • 毎週「土曜日の深夜3時」に、最新のセキュリティパッチが当たっていないサーバを選び出し、自動で適用して再起動まで行う。

利点:

「パッチ当て忘れ」による手順漏れを防ぐことができそうです。

 

設定値やパスワードを一元管理

  • データベースの接続パスワードやAPIキーを「パラメータストア」に保存しておき、アプリが起動する時に自動で読み込ませる。

利点:

ソースコードにパスワードを直書き(ハードコード)しなくて済むため、セキュリティが向上します。

 

実際に使ってみて

Systems Managerに初めて触れた時は、何のサービスなのかわからない状態でした。

ですが、ノード管理の「Fleet Manager」で各端末の状況を確認したり、「Session Manager」で遠隔で端末にアクセスしたり…といったことを触っていくうちに「こうやって各端末の状態を管理できるのね」と理解していくことができました。

まずは「サービスに触れてみる」といったことが大切でしょうか。

とは言いつつも、Systems ManagerはEC2のような仮想サーバかオンプレミスサーバがある前提で管理するリソースのため、個人が「なんとなく触ってみよう」という気持ちで使う機会が少ないかもしれません。

まずはEC2で仮想サーバを構築した後にSystems Managerを触ってみるのが、学習手順としては良いことだと思います。(リソースによっては自動で課金されていくものもあるため、予め課金の発生条件を確認しておくことも大切です)

※基本的な機能(Session Managerなど)は無料で使えますが、オンプレミス管理の高度な機能など一部有料のものもあります。

 

使いこなすとかなり便利なリソースなので、AWSをより使いこなしたい!という方にはおすすめです。チュートリアルもあるのでぜひお試しあれです。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/automation-tutorials.html

 

弊社ではIoTに関連した、様々な案件にチャレンジすることができます。

ぜひ一緒にこれからの未来を作っていきませんか?

募集要項はこちら

最後までご覧いただき、ありがとうございました!