32
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オールアバウトAdvent Calendar 2015

Day 7

ChefとAnsibleの個人的な使い分け

Posted at

オールアバウト Advent Calendar 7日目です。

オールアバウトではChef Serverを使ってインフラを管理しています。
しかし、Chef-ZeroもしくはAnsibleも最適なタイミングがあるので、
個人的な使い分けを書いていきます。

Chef Server

Chef Serverは現在、共有開発環境やステージング・本番環境に使用しています。
これにより、nodeの設定がChef Serverのweb管理画面から一通り確認できるようになっています。

メリット

  • Chefの特性としてべき等性があるため、設定の更新が多いサーバーでは便利。
  • nodeを集約管理するすることができるので、Chef Serverでnodeの設定を把握できる。
  • Web管理画面があるため、ブラウザからでも操作可能。

デメリット

  • Chef Serverの冗長化の構築・運用が辛い。
  • 構成する要素が多いため、トラブルが発生した際の対応コストが高い。
  • Chef Server構築する際に、学習コストと運用コストが高い。

Chef-Zero

Chef-Zeroはlocal開発環境を作成する時や、Chef Serverにアップする
Cookbookの作成・修正を行う際に使用します。
また、この過程を踏む事によりgitでCookbookの管理ができます。

メリット

  • Chef Serverと同じで、べき等性を担保できる。
  • Boxファイルもあるため、構築のコストが低い。
  • Cookbookさえ管理すれば、冗長構成を考えなくていい。

デメリット

  • nodeを集約管理することができない。
  • 設定の確認にはnodeに適用されているCookbookの確認が必要。

Ansible

業務での使用はありませんが、個人的に利用しています。
nodeの設定を更新せずに、設定変更があったらnodeを作り直して使用しています。

メリット

  • クライアントソフトウェアのインストールが不要。
  • YAMLファイルでシンプルな記述が可能。
  • cliから対話的に設定のインストールが可能。

デメリット

  • Chefと同じようにべき等性を保とうとするのが大変。

まとめ

Chef Server

複数台のサーバーを集約管理をしたい時や、オンプレなどを使用していて、
サーバー設定の更新が多いような場合に、使用するのが妥当ではないかと思います。
Chef Serverに対して変更をあまり加えない場合は、運用し始めたら安定して使用出来るので便利です。

Chef-Zero

local環境を作成したり、集約管理を考えない場合はChef-Zeroを使っておくのが無難ではないかと思います。
Cookbookの管理さえ気をつければ、サーバーの構成全てをコード管理する事が可能です。

Ansible

クラウドの様な環境でサーバーの設定変更を行わずに、新規構築する場合に向いていると思います。
Ansibleはインストールする内容や設定内容を、簡単に書けるのがメリットと思っています。
そのため、設定内容を素早く書いてしまい、作って壊す事が簡単に出来る
クラウドでの使用が向いていると思います。

32
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?