“自動化”をキーワードにプライベートクラウドを構築
サーバ運用の手間を軽減できる、必要なときに必要なだけサーバが使える、あるいは数日や数時間だけなど短期間でも利用可能など、パブリッククラウドにはさまざまなメリットがあります。その一方、トラブル対応が後手に回る恐れがある、仮想化のオーバーヘッドのために同じスペックでも物理環境と比べてパフォーマンスが劣るといった課題も無視できないでしょう。そのため、特に大規模なサービスを展開している事業者では、パブリッククラウドを利用せず、自社でサーバを保有し運用しているケースが少なくありません。
しかし、サーバ台数が多ければ必然的に運用の負担も増大するため、少しでもサーバ台数を減らし、運用業務を効率化したいと考えるのは当然でしょう。そこで、パブリッククラウドで培われた技術を応用し、自社独自のクラウド環境、つまりプライベートクラウドの構築にチャレンジする企業が増えつつあります。
アメーバピグなど人気サービスを多数擁するサイバーエージェントも、プライベートクラウドの構築に本格的に乗り出した一社です。同社ではもともと仮想化技術を使わず、物理サーバ上に直接OSをインストールした環境を多数使ってサービスを展開していましたが、並行してOpenStackを利用したプライベートクラウドも活用していました。
そして今回、サイバーエージェントではこれまでの運用上の課題を一掃する、大規模なプライベートクラウド環境を構築しました。そのねらいについて、奈良真治氏は次のように説明します。
写真1 奈良真治氏
「これまでサーバ環境の運用を人手でやってきましたが、もはやそれが回らなくなりつつあったんです。また、設計がそもそもつぎはぎの状態のため、メンテナンスコストも膨れあがっていましたし、障害時の対応といった課題もありました。つまり、運用がとにかく複雑になっていたわけで、それを解決することがプライベートクラウドを構築する目的でした。それで新しく契約したデータセンターにプライベートクラウド環境を構築しています。このプライベートクラウドのキーワードは『自動化』で、システム的な自動化はもちろん、運用面においても自動化を意識した結果、基本的にはデータセンターに行かなくてもサービスを運用できるようなしくみになりました」( 奈良氏)
前述したように、サイバーエージェントでは開発環境の構築を目的としてすでにプライベートクラウドを構築しています。それとは何が違うのでしょうか。
写真2 坂本佳久氏
「以前にやっていたのは、OpenStackを使って仮想環境を管理しつつ、物理環境については独自開発のツールを使ってリモートでOSやミドルウェアをインストールするというものでした。ただ今回は、物理環境と仮想環境を区別することなく管理できるしくみを盛り込んでいるのが大きな違いです」( 坂本佳久氏)
新しいデータセンターでは、やはり運用の自動化が大きなポイントになっていたようです。
写真3 前田耕平氏
「新しいデータセンターでは、物理環境についてもラッキング以外の作業はすべてリモートでできるので、実際に行ったのは見学会のときだけなんです」( 前田耕平氏)
独自に開発した「Clover」でプライベートクラウドを構築
新プライベートクラウド構築プロジェクトが始まった当初は、もともと使っていたOpenStackを中心としたシステムで検討が進められました。しかし、運用の自動化という大きなコンセプトに対し、OpenStackではマッチしない部分があったと長谷部光治氏は説明します。
写真4 長谷部光治氏
「OpenStack自体、どちらかというとパブリッククラウドを意識して作られている印象なんですね。今回プライベートクラウドを作っていくという中で、OpenStackではどうしても運用部分などにおいて我々の業務をOpenStackに合わせざるを得ない部分があったり、OpenStackのコードを修正して自分たちの業務に合わせたりする部分があったんです。それであれば、要件に合ったものをしっかり作り込んだほうがいいのではないかという結論に落ち着いたわけです。ただ簡単に決まったわけではなく、OpenStackを使うべきか、独自に開発すべきかでかなり議論が行われたのですが、半年ぐらい前に、独自開発を進めていた『Clover』というソフトウェアを使うという方向に思い切って舵を切ったというわけです」( 長谷部氏)
Cloverはそれ以前から開発が進められていたため、純粋に半年間で開発されたというわけではありませんが、サイバーエージェントのビジネスの根底を支えるものであることを考えると、大胆な決断だったと言えるのではないでしょうか。ただ、開発期間が短かっただけに、これから改良していくべき部分もあると長谷部氏は話を続けます。
「特にユーザインターフェースの部分ですね。物理的に時間がないという状況だったので、どうしても機能的な部分に注力せざるを得なかったのです。そのため、見た目や使い勝手といったユーザインターフェースの部分が後回しになってしまいました。そこをどんどん改善していくべく、現在は鋭意開発中です」( 長谷部氏)
なお、サイバーエージェントの新プライベートクラウドでは、このCloverに加えて「CATOMS」( CyberAgent TOtal Management System )と呼ばれるツールも開発しています。これは運用管理におけるポータルとして利用するために開発したとのこと。サーバが必要になったとき、従来はメールやSkypeで個別に申請が行われていました。それを一元管理するために開発されたのがCATOMSであり、これによって申請を一元管理し、さらにAPIでCloverと連携し、ラックに搭載されているサーバの情報の自動更新、閲覧、利用されているIPアドレスの管理の自動化といったことが実現されています。
写真5 劉春来氏
さらに、Cloverは監視システムとの連携も図られています。この監視システムを開発したのは劉春来氏で、「 死活監視と各仮想インスタンスのパフォーマンス監視を、エージェントレスで実現しています」と言います。サーバ仮想化のメリットとして、サーバリソースの有効活用によって物理的なサーバ台数が減り、これによってハードウェアの運用負荷を軽減できることが挙げられます。ただ見方を変えれば、物理サーバが仮想サーバに変わっただけで、管理すべきサーバの数自体は変わりません。そこで運用の効率化、あるいは奈良氏の話す運用の自動化を目指していくうえで、このような監視ツールとの連携は欠かせないということでしょう。
独自にツールを開発してデータセンターを可視化
運用の自動化のため、データセンター環境を可視化するためのツールも自作しています。
写真6 村越俊克氏
「実はこれまで使っていたデータセンターでは、可視化がうまくできていませんでした。つまり、サーバやネットワークが現在どういう状況なのかは、設定を読んだり図面を見たりして追っかけなければわからなかったのです。現状把握のためだけにそうした作業を行うのは時間の無駄ですよね。そこで、仮想サーバやネットワークを動的に検知して、データセンター全体を可視化するようなツールを作りました」( 村越俊克氏)
サーバやネットワークをグラフィカルにマッピングするツールはいくつかありますが、既存のツールでは満足できなかったようです。
「運用監視系のツールはいくつかありますが、もう少し気の利いたものにしたかったんです。既存のツールもけっして悪いわけではなく、それぞれに良いところもあるのですが、自分の理想には足りなかったのです。具体的には、グラフィカルに表示する部分ですね。たとえば、ネットワークにつながっているサーバやネットワーク機器を一覧形式で表示するものはよくあるんですが、それだけではなくてトポロジーをグラフィカルに表示し、そこに描かれる機器や機器をつなぐ線から、設定やモニタリングなどの詳細情報とリンクしたいと考えていました。自動的に生成される図面から機器の詳細情報へすぐにたどり着くことができるので、知りたいときに知りたい情報を簡単に取得できます。トポロジーはドラッグ&ドロップでノードを自由に動かすことができ、ノード間をつなぐ線はトラフィック量や帯域で色や太さが変化します。また、物理的な接続図から論理的な接続図まで描画するしくみを盛り込んでいます」( 村越氏)
なお新しいプライベートクラウドの特徴として、IPv6対応であることも挙げられます。ただ日本では、IPv6が普及しているとは言いにくい状況でしょう。それでもIPv6対応にした理由について、村越氏はグローバルを見据えた結果だと話します。
「海外に向けて積極的にサービスを展開していく際、地域にかかわらずシステムをデプロイできるようにしたいと考えています。当分の間はIPv4が使えるとは思いますが、地域によっては突然IPv6しか割り当ててもらえないということになる可能性もありますし、そもそもユーザ側のIPv6対応が進んでいる地域もあるので、それらの状況に対応するという意味で、新しいプライベートクラウドの内部はIPv6を基本としています」( 村越氏)
ユーザにとってメリットのあるプライベートクラウドを目指して
サイバーエージェントの新しいプライベートクラウドはすでに運用に入っていますが、これから積極的に改善を進めていくと、それぞれのエンジニアは声をそろえます。
「当初考えていた機能が100%実現できているわけではなく、またシステムを利用するエンジニアからもいろいろと要望を受けているので、そこのキャッチアップを進めながら必要な開発や機能の追加を進めていきたいと考えています」( 長谷部氏)
「まだ思っていることは全然実現できていないんですね。現状で運用の自動化を進めることはできましたが、それは僕らがインフラを運用していくうえでの自動化にすぎないわけです。たとえば自動でデータセンターの状況が可視化されたり、あるいはサーバがホスティングされたりというのは、基本的に僕らにしか恩恵がない。実際のユーザであるエンジニアには、そこまでのメリットが生まれていない状況だと思うので、それを実現するためのものをこれから作っていく必要があると感じています」( 奈良氏)
大量のサーバを効率的に運用するという難しい課題に対し、自ら開発したソフトウェアを中心にプライベートクラウドを構築して運用するサイバーエージェントの取り組みは、多くの企業にとって注目に値するものと言えるでしょう。
サイバーエージェント公式エンジニアブログ
URL:http://ameblo.jp/principia-ca
エンジニアの生の声を週替わりでお届け中!