だが最終的に、グリーは物理環境と共存する形でOpenStackの導入を決定。2013年5月から商用環境での運用を開始している。OpenStackを選んだ理由として渡辺氏は、まずオープンソースであることを挙げた。
「グリーは非常に多くのオープンソースを活用しており、オープンソースが文化として根付いている。その意味でOpenStackという選択肢はグリーにとって受け入れやすいプロダクトだった。ユーザーコミュニティが活発なのも好印象。グリーの既存の物理環境とも相性がよく、手持ちのサーバーを活用しやすかったのも良かった。そして、全てがAPI、全てがPythonという点もグリーのインフラに適していた」と、渡辺氏は振り返る。まさにグリーの企業文化にぴったりとはまったプロダクトだったといえる。
ここで渡辺氏は導入時(2013年5月)のOpenStack環境を紹介した。
導入の直前(2013年4月)には次のバージョンであるGrizzlyが登場しているが、「Folsomを検証を続け、動作確認が取れていたので、Folsomで導入をスタートした」(渡辺氏)という。
先にも触れたように、グリーでは現在も物理環境の運用を中心としており、OpenStackの導入によって、突然のトラフィック増など、必要に応じてオンデマンドで仮想マシン(以下、VM)を割り当てるハイブリッドな運用を行っている。
グリー 開発統括本部 インフラストラクチャ本部 松橋洋平氏はこの点について「ムリに全てをVMに移行したくなかった。アプリケーションのワークロードに応じてベアメタル(物理サーバー)かVMかを選べるようにしたかった。例えば、高I/Oのサービスならベアメタルの方が適しているし、リソースをそれほど必要としない小さなサービスならVMが適している」と語る。また、VMごとにQoSを確保することにもこだわったという。
また、既存の物理環境にOpenStackを統合するというハイブリッド構成に当たり、同じインターフェースでベアメタルとVMを管理できるようにした。VMの同期は、OpenStack側からサーバーダッシュボードに構成情報を送ることで実現している。ベアメタル⇔VM間のマイグレーションもサーバーダッシュボードを使い自動化している。
OpenStackコンポーネントのデプロイはChefを使って行っている。コンピュートリソースだけでなくミドルウェアからコントローラーまで、全てChefによりサーバー構築を自動化しており、パッチの適用や新たなパッケージの導入、パフォーマンスチューニングなども全て「グリー独自で構築手順を開発したChef経由だ」(松橋氏)という。なお、ミドルウェアとしては、データベースに「MySQL」、メッセージキューに「RabbitMQ」をそれぞれ採用しており、オープンソースになじんだグリーの企業文化をのぞかせる。
リソース制御の観点から、VMイメージをデプロイする際はかなり帯域を絞って転送し、ディスクI/Oもioniceコマンドでぎりぎりまで下げて行っている。また、一度デプロイしたイメージはハイパーバイザーのローカルキャッシュに入れておき、必要になったときに再利用できるようにしているという。
なお、グリーではOpenStackをより効率的に運用するため、独自に開発したコマンドやツールを利用している。プロダクトごとにVMのチューニングが必要になったり、サービスやロールのローンチに合わせたスケジュール実装が求められたりと、同社サービスの特性に合わせた運用を行うためだ。また、CPUやメモリの使用量など100以上の監視対象を常時モニタリングしており、障害の特定などに活用。OpenStack環境へのアクセスは社内に限定されており、不審なアクセスはリバースプロキシのレイヤーで弾いているという。
ただ、OpenStackを導入して約9カ月経過したが、運用してみなければ分からない問題点も出てきたという。以下、松橋氏が紹介した事例を簡単に挙げておく。
課題 | 解決策 |
---|---|
ovs-agentをリスタートするとフローエントリが初期化されコネクションが失敗する | ポリシーでエージェントのリスタートをデフォルト禁止に、リスタートの前には必ずサービスアウトする |
DHCPサーバーの冗長構成がうまく動かない | authoritativeモードで使う、あるいはDHCPではなく固定IPアドレスを使う |
LVSがうまく動かずバーチャルIPがフェールオーバーしない | セキュリティグループを変更する(Chefのパッチを当てる) |
キーストーンのトークンがデータベースに蓄積され続ける | 定期的にエクスパイアする |
DDoS攻撃に頻繁に襲われる | iptableコマンドでフィルタを設定する、現在はDHCPではなく固定IPへの変更を検討中 |
講演の最後、渡辺氏は最近のグリーのOpenStackにおける取り組みの一つとして、テスト環境の自動化、特に結合テストの自動化に注力していることを紹介。この実現のためにCIツールの「Jenkins」、仮想環境構築ツールの「Vagrant」、Chefを使って自動化システムを構築しているという。
「テスト環境を作るところから破棄するところまでを自動化したい。開発者がGitでフックして、デリバリして、ローンチして、用が済んだらさようなら、という感じ。ステージング環境に準拠したものを作りやすいのがOpenStackの強みだと思う」(渡辺氏)
また、これからOpenStackの導入を検討しているユーザーに対し、「OpenStackには非常に多くの機能があるが、あれもこれもと入れていくとキリがない。自社のインフラに合わせて無駄な機能を入れないようにすることも重要」とアドバイスしている。また「OpenStackコミュニティの活動が活発なのは良いこと。もっと多くのユーザーと仲間になりたい」とコミュニティへの期待も寄せている。
既存のリソースを生かしながら、大規模環境における物理と仮想の共存をOpenStackで実現しているグリー。自社の環境とビジネスニーズに最適化させることを最優先に物理サーバーと仮想サーバーを使い分けるという、おだやかな移行を実現した“適材適所のプライベートクラウド事例”として、参考になる部分は多いのではないだろうか。
市場環境変化が速い現在、多くの企業がインフラを迅速・柔軟に利用できるIaaS利用に乗り出している。AWSをはじめIaaSプロバイダーも多数出そろい、それぞれ特徴のあるサービスが提供されている。ただ近年はオープンクラウドの進展などを受けて、IaaS構成設計の自由度がさらに高まりつつある。これを受けて、企業のIaaSに対するニーズも次第に変容しつつあるようだ。では今、IaaS市場はどのような状況にあるのだろうか? 今あらためてサービス群を俯瞰し、IaaSトレンドと企業が注目すべきポイントを占う。
Copyright © ITmedia, Inc. All Rights Reserved.