クラウドでの設定管理ツールPuppet

2010年7月21日(水)
金野 諭Mark Maglana(マーク・マグラナ)

これまで、次世代ITプラットフォームとしてのクラウドやその環境の自動管理の必要性について説明してきました。今回はもう少し具体的に、どうやって自動管理の環境を実現するのかを、いくつかの実例を参照しながら説明していきます。

非標準化プラットフォームの問題点

どのような環境であってもアプリケーションを本番稼働可能な状況に仕上げるチーム全体の効率向上は、何よりも重要な課題です。開発環境、ステージング環境、本番環境における設定内容の不一致は、サービスインの遅延、予算超過、徹夜続きの作業などを引き起こす最大の問題点となっています。

例えば、マルチテナント型の非常にアクセス数の多い大規模ウェブアプリケーションを立ち上げる場合、開発チームは数か月もの間、開発環境を共有し、開発、テストを継続してきているはずです。そしてプロジェクトはあるタイミングでステージング環境に移行され、QA(品質管理)チームによって、さらに詳細の検証が実行されます。

そんなとき、開発チームが最終段階の調整中に行った追加設定や、追加でインストールしたライブラリなどインフラ関連の情報がうまくQAチームに情報共有されず、問題解決に非常に時間が掛かった経験はありませんか?またカットオーバーの日程が迫っているにもかかわらず、アプリケーション自体でなくインフラ関連の調整を理由に、本番環境への移行が実施できなかった経験はありませんか?

図1:各環境間における設定内容の相違をどのようにして解決すべきか?

このような本番稼働時期の遅延をもたらす非標準化環境の問題点は、セキュリティ対策やJSOX対策などより厳しい条件対策を考慮した場合、さらに顕著化します。例えば、社内や社外のシステムを管理するフレームワークであるITILを例にとってみましょう。設定管理ポリシーや適切な管理ツールが存在せず自動化が実施されていない場合、ITILなどの複雑なガイドラインに対応することは非常にコストが掛かり、組織として本来追求すべきよりクリティカルな業務ではない作業に時間をとられてしまうことになります。

IT予算がますます縮小し、開発期間短縮や効率アップが必達事項になってきている今日、その救世主としてもクラウドへの期待は高まってきています。仮想化技術が本格化し、100や1000の仮想マシンを簡単に瞬時に立ち上げることができるようになってきています。もちろん、それ自体のメリットは非常に大きいものの、設定管理に関しては、新たな問題を同時に引き起こしてしまいます。

設定管理の自動化が実施されていない場合、仮想マシンなどアプリケーションリソース確保が簡単になると同時に、想定外の設定が行われた時の影響範囲がより広範囲になり、その管理が複雑になります。つまり、クラウドコンピューティングは、設定管理に関する対策が事前に実施されていない場合、メリット以上にデメリットをもたらしかねないもろ刃の剣でもあります。

自動化を伴った環境標準化の必要性

このように設定管理の標準化の必要性は簡単に正当化されるものの、その対策として手作業でポリシーを厳密に管理、実施することは非常に面倒であり、コストが掛かり、そしてミスの多い作業となります。つまり、自動化を伴わない標準化実施は、その対応作業に想定外の時間を費やしてしまうため、非効率的で、効率化実現のために導入を検討してる標準化そのものの目的に反する行為となります。

幸いにも今日では、開発環境、ステージング環境、本番環境それぞれの環境間でそのような作業を手作業で施行する必要はなくなってきています。第1回の記事で説明したPuppetのようなオープンソース・ツールを活用することで、組織の機動力を損なうことなく、各環境間の相違を吸収可能なインフラ設定の標準化を実現することができます。そのような環境がいったん立ち上がると、組織は以下のようなメリットを享受することができます。

システム全体に対する広視野
最適な設定管理ツールを導入することで、仮想マシンとその設定に関するよりよい管理情報を得ることができます。例えば、設定の履歴管理が容易になったり、鳥瞰(ちょうかん)図的にシステム全体の状態監視が可能になるダッシュボードなどを実現できたりします。
迅速なシステム対応時間
システム全体の変更、警告、エラーなどを管理ツールからわかりやすい形で取得できるため、システム管理者はシステムの状態を的確に把握できるようになり、サービスの品質向上に大きく貢献できます。
クロスプラットフォーム管理
クロスプラットフォーム環境におけるサービス管理は、設定ポリシーが抽象化可能な状態になった時に初めて達成可能です。例えば、Puppetを活用すると、システム管理者は最終形がどのような状態になるべきかを 設定するが、どのようにしてその状態にするべきかという実行方法を明記する必要がありません。実行方法に関しては、各システムに依存するためそれぞれのシステムが一貫性や適応性などをチェックすることになります。このようなツールを導入することで、システム管理者は各システムにサービスが正常に導入されたことを確認する作業を簡素化することができます(この設定例に関しては、後述します)。
柔軟性/自由度
オープンソースの設定管理ツールを活用することで、組織はシステム導入に関して自分の好きなものを選択できるようになり自由度が向上します。
高生産性
設定管理標準化作業は自動化され、ツールに任せることができるようになると、開発者は組織の価値増大という本来の目的に全精力を注ぐことが可能になります。また、エラーの多い作業はツールで行うことで、人為的ミスもなくなり、より生産性の高い仕事に割り当てる時間が増え、そのような作業にチーム全体として集中することができるようになります。

では、このような標準化をもたらすツールの代表格でもある、Puppetの中身をもう少し具体的に見てみましょう。

株式会社モーフ・ラボ 代表取締役社長 米国Morphlabs, Inc. 副社長

大学卒業後、システムエンジニアとして、データベースやネットワークなどインフラ設計・構築に携わった後、2年間の米国留学を経て、ベンチャー・キャピタリストに。クラウド黎明期の2006年からクラウド関連の投資や事業支援を行う中、この分野の将来性に魅力を感じ、2010年に株式会社モーフ・ラボを立ち上げる。

著者
Mark Maglana(マーク・マグラナ)
米国Morphlabs, Inc. mCloud担当マネージャ

米国Morphlabs, Inc.では、mCloudシリーズのプロダクト・マネージャとしてその製品開発とサービス企画を担当。時間があるときには、趣味の範囲で、色々なオープンソース・プロジェクトに首を突っ込む日々を過ごす。最近は、小規模な開発チーム向けのアジャイル開発マネージメントツールのRedmine Backlogsプロジェクトなどに携わる。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています