Chef導入の背景
荒井氏はChefの概要説明の後、導入における『よくある風景』について説明しました。「たいてい、サーバが欲しい際には運用担当者に『サーバをx台ください』と申請、そして担当者が『秘伝のタレ』の如く手順書を元にコマンドを実行、提供するという流れ。これは荒井の周りだけでなく、世間一般的にも『よくある風景』でしょう。このフローは非効率であり、自動化したいところです」と荒井氏は説きます。Chefによって自動化することで処理の効率化を図り、自動で処理を行うことで手動実行の際の人為的ミスもなくなり安定運用が見込めます。デリバリーのスピードも格段に上がることもあり、Chef導入を決断するに至りました。
導入以前の状況
荒井氏の直面する環境下では、すでにあるインフラにChefを導入する必要性がありました。Debianを利用しており、パッケージで変更管理も行っている状態。設定ファイルのボリュームも結構なサイズになっており、初見ですべてを把握するのは難しい状況となっていました。Chefを導入するうえでサーバ管理システムをそのまま使いたいという要望があったのですが、それが導入の障壁にもなっていたのです。運用スクリプトが既存サーバ管理システムに依存しており、また運用手順もサーバ管理システムに依存している状況だったため、サーバ管理システムを使えるようにしておかないと運用スクリプトも使えなくなる状況になってしまいます。
そこで荒井氏は導入時の方針を考えました。『新規のサーバをChefで構築していく』『既存サーバ管理システムを利用する』『既存のツールやスクリプトが動く状態で移行する』。これらの要点を踏まえ、導入を行ったそうです。
導入
導入に際しては、選択肢としてChef SoloとChef Serverの両方がありましたが、Chef Soloの場合は管理上煩雑になってしまう面があったためChef Serverを選択。しかしChef Serverに関しても、構築後にSPOF(単一障害点)となってしまうなどの問題が発生したために、結局はChef Soloを使うことになったそうです。ただやはりChef Soloを採用するにしても"数の問題"は立ちはだかる壁となったままです。そこでchef soloとサーバ管理システムを連携させつつ、管理情報を集約できるものとして『Chef Bridge』というものを新たに構成し、使用することにしました。Bridgeに対応してノード側に導入するものとした”GREE Chef Client”も併せた構成図は以下です。