Chefを使えばサーバーなどの環境構築を自動化でき、作業負荷が減る上にミスもなくせる。このメリットを最大限に生かすノウハウを二つ紹介する。

ポイント1
環境構築には必ずChefを使う

 「状況によって手作業で環境構築することを認めると、Chefの利用が浸透しない」。GMOインターネットの藤村 新氏(次世代システム研究室 シニアアーキテクト)は、自身のチームでの経験から、こう警鐘を鳴らす。

 藤村氏らのチームでは、Chefで自動構築したサーバー環境に、管理者がリモートログインして手動で設定変更することがあったという。こんな手作業を認めると、設定手順である「レシピ」が残らない。そのため、あとで同じ環境を構築するたびに手作業が発生し、ミスが起こりやすい。そこで藤村氏らのチームでは例外を認めず、たとえ些細な設定変更であっても必ずChefで変更するルールにしている。

ポイント2
ロールでレシピを再利用

 Chefのレシピは、システムのサーバー種別ごとに作成することが多い。例えば「XシステムのAPサーバー」「XシステムのDBサーバー」「YシステムのAPサーバー」「YシステムのDBサーバー」という具合である。

 しかしこうしたサーバー種別の間では、OSやミドルウエアの設定が共通するケースが少なくない。その場合、レシピは部分的に共通しており、その内容に変更があったとき、該当するレシピをすべて修正する必要がある。

 ヤフーの内田誠悟氏らのチームは、Chefの「ロール」と呼ぶ機能を使ってこの問題を解決した(図1)。ロールの定義ファイルは、複数のレシピを引用でき、それらを集約したレシピになる。そこで、アプリケーションやミドルウエア、OSごとにレシピを作り、それをロールで集約することで、レシピの再利用性を高めた。

図1●ロール機能でレシピの再利用性を高める
ヤフーの内田誠悟氏のチームは、サーバーの環境構築をChefで自動化している。その際、Chefのロール機能を使うことで、設定手順を記述した「レシピ」の再利用性を高めた
[画像のクリックで拡大表示]

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。