Infrastructure as Code

サーバーの設定をすべてコードに

"Infrastructure as Code" とは、これまで手順書や、シェルスクリプト、または管理者の脳内に
分散していたサーバー構築の手順(や作業)をすべてコード化し、
実行可能な状態で管理しよう、という概念です。

コードは必ず正しい状態で管理される

常に正確で、一切漏れのない構築手順を管理できます。
知りたいことはすべて、コードを読めばわかります。

誰でもサーバー構築が可能

コードを実行する方法さえ知っていれば、どのようなサーバーも同じ手順で構築可能になります。

 

Chef とは

Chef はコンフィギュレーションツール

構成管理ツールにも実はいろいろと種類があります。
それぞれのツールが担当するプロビジョニングのレイヤから、
以下のように分類されています。

Chef のプロビジョニング

Chef の Recipe はサーバーのあるべき状態を定義したものです。

Chef は Recipe を実行すると、サーバーの現在の状態を取得し、
Recipe に定義されている状態との差分を埋めることで、
サーバーをあるべき状態へと収束します。

サーバーは常にあるべき状態へ収束されるので、Recipe を何度実行しても
同じ結果が得られます。(冪等性)
サーバーを修正したい場合でも、Recipe の一部だけを書き換えれば、
必ずあるべき状態へ収束されるので、Recipe さえ管理しておけば
複雑な運用手順やシェルスクリプトは不要になります。

 

Chef の運用形態

クライアント/サーバー形式

単体

外部ツールとの連携