システムの設定・運用作業を自動化するオープンソースソフト「Chef」が注目を集めている。作業手順はRubyベースのコードで記述。その内容が管理対象サーバーに反映され、常に状態が維持される。開発担当者と運用担当者が協力して作業する「DevOps」に向く。

 「Chefはなくてはならない存在」。こう話すのは、サイバーエージェントの並河祐貴氏(アメーバ事業本部ピグディビジョン)だ。並河氏はオンラインゲームのアメーバピグ事業で、システムの設定・運用を自動化する「Chef」を利用している。2010年から徐々に適用を拡大し、今ではChefを使って約1000台のサーバーを運用している。「今年10月にデータセンターを移設した際、1日当たり200台ものサーバーの設定を変更した。それが実現できたのはChefのおかげ」(並河氏)という。

 並河氏だけでなく、国内でChefに注目するエンジニアは増えている。「セミナーを開催すると、大きな告知をしていないのにすぐに定員に達する」とChef関連事業を手がけるクリエーションラインの堀田直孝氏(上級コンサルタント)は話す。

 Chefとはどのようなツールなのか。あらかじめ決めた通りにサーバー設定や、OS・ミドルウエアのインストールを実行し、その状態を維持する機能を持つ。サーバー監視やインシデント管理など統合運用管理ツールが持つ機能は備えないが、設定作業の負荷を軽減する。米Opscodeが開発しており、有償版とオープンソースの無償版がある。国内では、2010年10月からクリエーションラインが有償版の販売やChefの導入支援事業を行っている。

作業を記した「クックブック」作る

 Chefを使ったシステム運用管理の仕組みを図1に示した。運用管理者用端末と管理対象サーバーのほかに「Chefサーバー」がある。まず、運用管理者は専用ソフトを使って作業手順書(「クックブック」と呼ぶ)を作成し、それをChefサーバーに登録する。管理対象サーバーにインストールした専用ソフトはChefサーバーに定期的にアクセスしてクックブックを参照し、クックブックの内容とサーバーの設定が異なっている場合、クックブックに合うように管理対象サーバー上で必要なコマンドを実行する。こうした仕組みにより、管理対象サーバーを1台ずつ管理する必要がなくなる。管理対象サーバーはパブリッククラウド上の仮想サーバーでも自社所有の物理サーバーでも構わない。

図1●Chefを使ったシステム運用管理の仕組み
管理対象サーバーは定期的にChefサーバーから該当する「クックブック」(サーバー管理手順を記したプログラム)を参照し、クックブックの記述内容とサーバーの状態が違えば必要な管理コマンドを自動的に実行する。管理者はChefサーバーにある「クックブック」をメンテナンスするだけでサーバー群を一元管理できる
[画像のクリックで拡大表示]

 クックブックは作業手順書に当たる。実際の作業や設定内容はクックブック内の「レシピ」と呼ぶファイルに記述する。例えば、あるサーバーのユーザー設定を変更するといったことがレシピに記述してあり、そのレシピの集合体がクックブックだ。レシピはRubyを基にしたChef向けの独自言語で記述されている。このためRubyに慣れているエンジニアは習得が早い。

 クックブックやレシピは一から作ることができるが、他者が作ったものをそのまま使うこともできる。OpscodeのWebサイトには、ユーザーが作成したものを含めて700以上のクックブックが登録されている。

 Chefと類似のツールに米Puppet Labsが開発した「Puppet」がある。ChefとPuppetの違いについて堀田氏は「設定内容をRubyベースの言語で記述できること、ChefサーバーをAPIで操作できることなどが異なる」と話す。また、現在ユーザーが活発に活動しているのはChefのほうだという。ユーザーコミュニティーの登録者は約2万人に達し、公開しているクックブックの数も増えている。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が4月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら