サーバー構築・設定を自動化するための「構成管理ツール」を紹介します。
一言で表すと、「サーバー構成をファイルで管理する」ためのツールです。
構成管理ツールの概要と大まかな仕組み、代表的なソフトウェアを解説します。
構成管理ツールとは
クラウドサービスの普及とともに、構成管理ツールも広く使われるようになってきました。
構成管理ツールとは、一般的に以下のような機能を持っています。
大規模・小規模を問わず、システム全体のサーバーを管理するために活用可能です。
- サーバーのセットアップ(コマンド操作)を自動化する
- サーバーの状態を設定ファイルで管理できる
- 複数台の構築や設定を一度の操作で行える
- 指定した状態になるようにサーバーを整える
設定ファイルでサーバー構成を管理できるのが大きなメリットです。
GitやSubversionと組み合わせることで変更履歴も残すことができます。
歴史の長いシステムでは「構成不明の謎サーバー」が度々生まれがちですが、
構成情報をファイル管理することで、常に最新情報が手元で分かるようになるのです。
構築や設定の操作においてもメリットがあります。
手動でコマンドを叩くよりも圧倒的に早く、漏れなく、確実に、設定できる点が特徴です。
冪等性(べきとうせい)とは
構成管理ツールでは「冪等性(べきとうせい)」と呼ばれる考え方があります。
1回実行しても、何回実行しても、同じ結果になることを表しています。
イメージしづらいと思うため、例を上げて説明します。
構成管理ツールでは、「サーバーのあるべき姿」を設定ファイルに書いて管理します。
- Webサーバがインストール済みで、自動起動がONである
- DBサーバがインストール済みで、自動起動がONである
設定ファイルに上記の内容を記載して、ツールを実行するだけでOKです。
各サーバーがそれぞれの条件を満たすように、自動で設定を変更してくれます。
Webサーバがない場合はインストールして自動起動をONに、
DBサーバが入っていても自動起動がOFFならONに変更してくれる、といった具合です。
設定ファイルの状態と既に一致していれば何も変更しません。
つまり2回実行したとしても、二重インストールされるなどの心配は不要です。
同様に、configファイル修正やファイルの配布なども冪等に行えます。
「あるべき姿」を決めておくことで、いつでもその状態に復元することが可能です。
構成管理ツールの種類
近年よく利用されている構成管理ツールは以下の2つです。
いずれも無料で利用可能で、エージェントの有無が大きな違いとなっています。
Ansible (アンシブル)
AnsibleはRedHat社製の構成管理ツールで、構成を「yaml形式」で記載します。
設定先サーバーに専用ソフトを入れる必要がなく、SSHだけで動かせる点がメリットです。
オンライン教材のUdemyでは、Ansibleを学べる専用コース も提供されています。
Chef (シェフ)
Chef Software社が開発しているツールです。設定ファイルは「Ruby」で記載します。
Ansibleよりも歴史の長い構成管理ツールで、大規模環境や導入事例が豊富な点が特徴です。
設定先サーバーにはエージェントと呼ばれる専用ソフトを入れる必要があります。
まとめ
サーバー構築に便利な「構成管理ツール」について紹介しました。
「冪等性」という考え方を理解することで便利に利用することができます。
代表的なツールとして「Chef」が広く使われてきましたが、
最近はエージェントのインストールが不要な「Ansible」の人気も高まっています。
【関連記事】
⇒ サーバー構築の初心者にオススメのOS
⇒ AWS, GCP, Azure の無料利用枠を比較
⇒ レンタルサーバー・VPS・自宅サーバーの比較