サーバー構築を自動化する構成管理ツールとは(Ansible, Chef)

サーバー構築

サーバー構築・設定を自動化するための「構成管理ツール」を紹介します。

一言で表すと、「サーバー構成をファイルで管理する」ためのツールです。
構成管理ツールの概要と大まかな仕組み、代表的なソフトウェアを解説します。



構成管理ツールとは

クラウドサービスの普及とともに、構成管理ツールも広く使われるようになってきました。

構成管理ツールとは、一般的に以下のような機能を持っています。
大規模・小規模を問わず、システム全体のサーバーを管理するために活用可能です。

構成管理ツールで出来ること

  • サーバーのセットアップ(コマンド操作)を自動化する
  • サーバーの状態を設定ファイルで管理できる
  • 複数台の構築や設定を一度の操作で行える
  • 指定した状態になるようにサーバーを整える

設定ファイルでサーバー構成を管理できるのが大きなメリットです。
GitやSubversionと組み合わせることで変更履歴も残すことができます。

歴史の長いシステムでは「構成不明の謎サーバー」が度々生まれがちですが、
構成情報をファイル管理することで、常に最新情報が手元で分かるようになるのです。

 
構築や設定の操作においてもメリットがあります。
手動でコマンドを叩くよりも圧倒的に早く、漏れなく、確実に、設定できる点が特徴です。

冪等性(べきとうせい)とは

構成管理ツールでは「冪等性(べきとうせい)」と呼ばれる考え方があります。
1回実行しても、何回実行しても、同じ結果になることを表しています。

イメージしづらいと思うため、例を上げて説明します。
構成管理ツールでは、「サーバーのあるべき姿」を設定ファイルに書いて管理します。

サーバーのあるべき姿を設定ファイルに書く

  • Webサーバがインストール済みで、自動起動がONである
  • DBサーバがインストール済みで、自動起動がONである

設定ファイルに上記の内容を記載して、ツールを実行するだけでOKです。
各サーバーがそれぞれの条件を満たすように、自動で設定を変更してくれます。

Webサーバがない場合はインストールして自動起動をONに、
DBサーバが入っていても自動起動がOFFならONに変更してくれる、といった具合です。

 
設定ファイルの状態と既に一致していれば何も変更しません。
つまり2回実行したとしても、二重インストールされるなどの心配は不要です。

同様に、設定ファイルの修正やファイルのコピーなども冪等に行えます。
「あるべき姿」を決めておくことで、いつでもその状態に復元することが可能です。

構成管理ツールの種類

近年よく利用されている構成管理ツールは以下の2つです。
いずれも無料で利用可能で、エージェントの有無が大きな違いとなっています。

Ansible (アンシブル)

AnsibleはRedHat社製の構成管理ツールで、構成を「yaml形式」で記載します。
設定先サーバーに専用ソフトを入れる必要がなく、SSHだけで動かせる点がメリットです。

サーバ構築自動化「Ansible」は初心者にオススメ

Chef (シェフ)

Chef Software社が開発しているツールです。設定ファイルは「Ruby」で記載します。
Ansibleよりも歴史の長い構成管理ツールで、大規模環境や導入事例が豊富な点が特徴です。

設定先サーバーにはエージェントと呼ばれる専用ソフトを入れる必要があります。

まとめ

サーバー構築に便利な「構成管理ツール」について紹介しました。
「冪等性」という考え方を理解することで便利に利用することができます。

代表的なツールとして「Chef」が広く使われてきましたが、
最近はエージェントのインストールが不要な「Ansible」の人気も高まっています。

【関連記事】
サーバー構築の初心者にオススメのOS
AWS, GCP, Azure の無料利用枠を比較
レンタルサーバー・VPS・自宅サーバーの比較