このページの本文へ

前へ 1 2 次へ

サイボウズのCTOがクラウド基盤の裏側をここまで語った!

cybozu.comの生みの親が自作クラウド派になった理由

2013年09月24日 10時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

9月20日、サイボウズは同社のクラウドサービス「cybozu.com」の基盤について解説する技術説明会を開催した。cybozu.comのインフラを手がけたCTOの山本泰宇氏が「OSSを最低限しか使わない理由」や「既存アプリのクラウド化」などをディープに語った。

世代の異なるアプリケーションもクラウドで同居

 技術説明を行なった山本泰宇氏は過去ガルーンの開発を手がけたほか、サイボウズのCTOや開発本部長、執行役員などの肩書きも持つ(もっとも最近は肩書きが多すぎるため、名刺は空欄だという)。同社の主力製品となりつつあるcybozu.comにおいてはリードプログラマーやアーキテクト、運用責任者などを務めており、まさにcybozu.comの“生みの親”といえる。

サイボウズ 山本泰宇氏

 山本氏がまず語ったのは、cybozu.comの沿革や現状だ。サイボウズOfficeやガルーン、kintone、メールワイズなどのアプリケーションをSaaS型で展開するcybozu.comの設計が始まったのは、2010年2月。その後、開発データセンター、本番データセンターを開発の後、2011年11月にcybozu.comが正式公開。2013年5月に本番データセンターを移設し、まもなく2周年を迎える。現在の契約は約4500社で、月に200~300社というペースでユーザーを増やしている。契約ユーザーは14万人、アクセスは7億回/月。転送量は400GiB/日に達しており、かなりの規模に膨らんでいる。

cybozu.comの沿革トラフィックとデータ量

 一方、これを支える設備だが、東日本と西日本に1箇所ずつのデータセンターを設置。本番用のサーバー数100台、開発サーバー約50台でサービスを運用している。仮想マシンのホストは16コアのCPU、128GiBのメモリのサーバーを採用している。

 システム構成としては、インターネットセグメント、仮想マシンのサーバーファーム、ストレージファームという3つに分け、それらを統合的にマネジメントしている。仮想マシンのホストとストレージが分離されている形だが、これには世代の異なるアプリケーションを共通基盤のクラウドで動かすためだという。「“古式ゆかしき”アーキテクチャのサイボウズOfficeは、ローカルファイルをプログラムが直接読みに行くので、物理的に冗長化しにくい。そのため、プログラムからSAN経由でストレージを参照する形態を採用している」(山本氏)とのこと。認知度の高いサイボウズOfficeはビジネス面での貢献度も高いだけに、クラウド化にあたって、設計に気を遣っているわけだ。一方で、クラウドでしか提供されないkintoneはこうした制限がないとのことだ。

3階層のシステム全体図

構成要素はSlashで一元的に管理

 これらのサービスを構成する要素は「Slash」という構成データベースで一元的に管理している。Slashに登録される内容は、ホスト、ネットワーク、ユーザー、顧客のドメイン、アプリケーション、ストレージボリュームなど、まさにデータセンターのあらゆる要素。以降で説明する仮想マシンやストレージの管理ツール、モニタリングツールなどさまざまなツールは、Pythonのライブラリを介してこのSlashの構成データベースを参照・更新して動作しているという。また、SlashではSAMLをベースにしたシングルサインオンや、画面上に出る共通ヘッダも担当しており、まさにcybozu.comの管理者としての役割を果たしている。

Slashの情報をアプリケーションで共有する

 ちなみに、クラウド専用のkintoneはこのSlashを直接参照できるが、それ以外のガルーンやOffice、メールワイズなどはバックグラウンドでのワーカーを介して同期させるアーキテクチャになっている。これも前述した世代の異なるアプリケーションを同居させたが故の工夫だ。

 実際のフローだが、まずインターネット側からのリクエストは、まずL4のロードバランサー(IPVS+keepalived)でL7のロードバランサー(Apache)に振り分け、そこからドメインごとのバーチャルホストに振り分けるという2段構えのフローになっている。

L7のロードバランシングでバーチャルホストを識別する

 ただし、このアーキテクチャではスティキーなセッション管理が不可能なので、SSLのセッションはL7ロードバランサー間で構築し、アプリケーションのセッションは別途「yrmcds」というmemcached互換の自社製KVSで管理している。

(次ページ、サーバー群は「サービスセット」で小分け)


 

前へ 1 2 次へ

ASCII.jp特設サイト

クラウド連載/すっきりわかった仮想化技術

ピックアップ