fbpx

あなたに合ったChefはどれ? 〜 おすすめ構成確認チャート #getchef

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

一口にChef-Clientといっても、Chef-SoloChef-ClientローカルモードKnife-SoloKnife-Zeroとたくさんあるので、どれを選べばいいか迷ってしまうでしょう。さらにクライアント・サーバ構成を取ろうとすると、オンプレミス版Chef-Serverホステッド版Chef-Serverが出てきます。

まずChefを活用する前に、あなたのインフラにはどのような構成がふさわしいか、チャートで簡単に確認してみましょう。なお、Chefバージョン12を前提としています。

おすすめ構成確認チャート

chef-client-chart

Chef-Serverの機能が必要?

Chef-Serverの機能とは、次のものが挙げられます。

まず、おおざっぱにこれらの機能が必要かどうかを確認します。ここで注意してほしいのは、確認するのはChef-Serverの機能であって、Chef-Serverそのものではない、ということです。

リモートのNodeの管理が必要?

Chefそのものには、リモートのNodeに対してCookbookなどのポリシーを転送する機能がありません。そのため、リモートのNodeをChefで管理する場合、何らかの手段でポリシーを転送する必要があります。rsyncを用いて転送するKnife-Solo、SSHによるポート転送とChef-Zeroを組み合わせてリモートにポリシーがあるかのように振る舞うKnife-ZeroというKnifeプラグインがあります。

一方、ローカルのNodeを管理するだけならばポリシーの転送は必要ないので、Chefそのものに同梱されているChef-SoloやChef-Clientローカルモードがそのまま利用できます。

大規模?

管理したいインフラの規模の大きさを考えてみます。規模が大きければクライアント・サーバ構成を取ったほうがよいでしょう。小さければ、Chef-ClientローカルモードやKnife-Zeroで十分かもしれません。もちろん、規模が小さいからといって実際のChef-Serverを使ってはいけないということはありません。1 NodeからでもChef-Serverは使えます。

なお、Knife-ZeroはChef-Serverが必要ないクライアント・サーバ構成と言えるので、規模が小さいうちはKnife-Zeroで始めて、インフラの規模が大きくなれば実際にChef-Serverを導入して移行するといったことも比較的容易に行えます。ちなみに逆も可能です。

Chef-Server用のマシンが用意できる?

マシンを用意できるかだけでなく、運用のための各種コストを用意できるかも考えましょう。ホステッド版Chef-Serverならば、Chef社に運用・管理を任せることができます。

オンプレミス版Chef-Serverなら、各種運用コストがかかるぶん、ホステッド版Chef-Serverでは利用できない各種アドオン(Push Jobs, Analytics など)が利用できます。さらに25 Nodeまでは各種アドオンも含めて無料で利用できます。

各クライアントの特徴

Chef-Solo

Chef-Serverの機能が不要で、リモートのNodeの管理が不要な場合はChef-Soloとなります。Chef-Soloそのものには多数のNodeを管理する能力がないので、さまざまなツールと組み合わせて使う必要があります。それは反面、既存のワークフローやツールの一部をChef-Soloに置き換えやすいとも言えるでしょう。
2014年半ばから後半にかけて、Chef-Soloが廃止されるという話が大きな話題となりました(ソロからゼロへ: Chef Clientローカルモードへの移行)。ただし、心配する必要はありません。すぐにChef-Soloがなくなるとは誰も言っていませんし、後で説明するChef-Clientローカルモードへのゆるやかな移行パスが準備されています。

Knife-Solo

Chef-Serverの機能が不要だけれど、リモートのNodeの管理が必要な場合はKnife-Soloとなります。Knife-SoloはKnifeプラグインとして、Chef-Soloに欠けている能力を追加し、Chef-Soloを用いたワークフローを実現するものです。ある程度Chef-Serverの機能を使えるようになっているので、将来的にChef-Serverの機能を使いたい場合もKnife-Soloを選ぶとよいでしょう。
Chef-Soloの廃止について、Knife-Soloも心配ありません。Knife-Soloで提供しているワークフローはそのままに、Chef-Soloの代わりにChef-Clientローカルモードを使うことを検討しています(add local_mode to solo.rb)。Chef-SoloコマンドはChef-Clientローカルモードを介した仕様に変更される予定ですが、100%の後方互換性を保たなければいけないと決められているので安心でしょう(Replace chef-solo with chef-client local mode)。

Chef-Clientローカルモード

Chef-Serverの機能が必要で、インフラの規模が大きくなく、リモートのNodeの管理が不要な場合はChef-Clientローカルモードとなるでしょう。と言いたいところですが、この条件の「インフラの規模が大きくない」にそのまま当てはまるのは 1 Nodeの場合のみです。Chef-Solo同様、Chef-Clientローカルモードそのものには多数のNodeを管理する能力がないので、さまざまなツールと組み合わせて使う必要があります。それは反面、既存のワークフローやツールの一部をChef-Clientローカルモードに置き換えやすいとも言えます。
Chef社の意向に沿うならば、Chef-Serverの機能の要不要に関わらず、リモートのNodeの管理が不要な場合はChef-SoloではなくChef-Clientローカルモードを使うほうがよい、ということになります(ソロからゼロへ: Chef Clientローカルモードへの移行)。

Knife-Zero

Chef-Serverの機能が必要で、インフラの規模が大きくなく、リモートのNodeの管理が必要な場合はKnife-Zeroとなります。Knife-ZeroはKnifeプラグインとして、Chef-Clientローカルモードに欠けているリモートのNodeの管理機能を追加したものと考えるとよいでしょう。
Knife-Zeroは、Chef-Serverそのものを使わずに、あたかもChef-Serverがあるかのように振る舞います。そのためインフラの規模が大きくなれば、Chef-Serverを立ててそちらに移行することも容易に行えます。逆にChef-Serverを使っていた大規模なインフラを縮小する際にKnife-Zeroに移行することも容易です。

ホステッド版Chef-Server

Chef-Serverの機能が必要で、インフラの規模が大きく、Chef-Server用のマシンが用意できない場合は、ホステッド版Chef-ServerとChef-Clientの構成がよいでしょう。ホステッド版Chef-ServerはChef社が管理しているので、Chef-Serverそのものの運用・管理コストを下げ、Chef-Server配下のインフラの管理に集中することができます。なおインフラの規模が小さい場合、極端な話 1 Nodeのみでホステッド版Chef-Serverを使ってはいけないという決まりはありません。2015年5月現在、5 Nodeまではホステッド版Chef-Serverは無料で使えます(Plans and Pricing)。
ホステッド版Chef-Serverは日本国外にあるので、時差や地域差、各組織における運用ポリシーに沿わない可能性に留意する必要があります。また、AnalyticsPush Jobsといった一部のアドオンは2015年5月現在利用できません。

オンプレミス版Chef-Server

Chef-Serverの機能が必要で、インフラの規模が大きく、Chef-Server用のマシンが用意できる場合は、オンプレミス版Chef-ServerとChef-Clientの構成がよいでしょう。自組織のインフラに、ホステッド版Chef-Serverと同等のChef-Serverを設置できるため、組織のポリシー内で運用・管理が行えます。また、すべてのアドオンが利用できます。さらに、2015年5月現在、25 Nodeまではオンプレミス版Chef-Serverは無料で使えます(Plans and Pricing)。
当然ながら自由度と引き換えに、オンプレミス版Chef-Serverの運用・管理コストは自組織が支払わなければいけません。Chef社によるChef-Serverのサポートプランについてはクリエーションライン株式会社(Chef担当)までお問い合わせください。

まとめ

Chef-Serverの機能が必要かどうか、リモートのNodeの管理が必要かどうか、規模は大きいか小さいか、Chef-Server用のマシンが用意できるかどうか、以上の観点のおすすめ構成確認チャートを見てみました。
あなたのインフラでChefを十分に活用するためにはどの構成がふさわしいのか、このチャートが判断の一助となれば幸いです。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA