はじめに
今回は「構築」をテーマに、理解を整理してみます。
特に、「Manager-Agent構成」について詳しく整理します。
構築とは?
構築とは、サーバを使える状態にするための作業。
- OSのインストールと設定
- ミドルウェア(WebサーバやDBなど)のインストールと設定
アプリケーション開発以外の領域が「構築」。
コマンドラインでの作業は、サーバの数が増えるほど大変で、ミスも起こりやすい。
そこで、AnsibleやTerraformなどの構築自動化ツールが使われる。
構築手順をコード化することで、誰が実行しても同じ環境を正確に再現できるようになる。
Manager-Agent構成とは?
ミドルウェアには、次の2種類の動作形態がある。
- サーバ単体で動くもの:1台のサーバ内で完結(例:Apache, MySQLなど)
- Manager-Agent構成のもの:複数サーバで連携して動く(例:Zabbix, Datadogなど)
Manager-Agent構成のイメージ
[AgentサーバA] →
→ [Managerサーバ]
[AgentサーバB] →
- 各サーバには「Agent」をインストール
- 中央には「Manager」をインストール
Agentはそれぞれのサーバの状態(CPU、メモリ、ディスクなど)を定期的に収集し、Managerに送信する。
Managerはそれを受け取って、監視画面で可視化したり、異常時にアラートを出したりする。
サーバ同士の通信が前提になるため、構築時にネットワーク周りの設定に注意が必要。
おわりに
アプリケーション開発では、ネットワーク通信やOSの理解がなくても、ある程度開発はできるが、インフラ周りを学び始めると、そういった抽象化された下の層、いわゆるCSの基礎知識の重要性を感じた。