このページの本文へ

前へ 1 2 次へ

インストールの自動化や新規申し込み、バックアップ時間の短縮など

成長痛解消に内製が効く?サイボウズがお手製カイゼンを披露

2015年06月17日 17時30分更新

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

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

6月17日、サイボウズは3回目となる技術説明会を開催し、cybozu.comを支えるインフラについて説明した。「大規模化にともなう痛み」をテーマにしたセッションでは、インストールの自動化、新規申し込みやバックアップ/レプリケーションなどの高速化などの取り組みを披露した。

アクセス増・データ量拡大にともなう成長の痛み

 冒頭登壇したのはサイボウズ 運用本部 サービス運用部 副部長の萩原利士成氏。萩原氏は、クラウドインフラに特化した開発部隊である「Hazamaチーム」は所属。アプリケーションと物理インフラのまさに狭間で、自動デプロイやリハーサル、モニタリング、ミドルウェア開発などを手がけているという。萩原氏は自前のクラウドインフラで提供されているcybozu.comのアーキテクチャと現状に関する説明からスタートする。

サイボウズ 運用本部 サービス運用部 副部長 萩原 利士成氏

 cybozu.comは、アプリケーション、DB、ストレージで構成された「サービスセット」を組み合わせたアーキテクチャとなっている。サービスセットはDoSなどに耐性がある独立した単位で構成され、リクエストはロードバランサーで各サービスセットに振り分けられる。サービスセットには、複数の顧客をホストすることもあるので、アーキテクチャレベルでデータを分離し、サービスセット内に同居できるようになっている。

複数のサービスセットで構成されるcybozu.comのアーキテクチャ

 さて、2011年11月に稼働を開始し、6月で3年7ヶ月を経たcybozu.comは、現在18億/月のアクセス数に膨れあがり、98TiBのデータ量を抱えるに至っている。2箇所のデータセンターで運用されている本番サーバーはVM・実機あわせて1000台、開発系も100台単位になっている。2年間でサービス規模が2倍以上に拡大したことで、まさに成長痛を抱えている状態だ。「システムの規模が増えながら、システムの高度化が遅れている現状がある。このギャップを成長の痛みと呼んでいる」と萩原氏は吐露。ドメインやデータが増えると読み込みに時間がかかり、サーバー台数が増えるとOSのインストールの時間もかかるという課題が顕著に出てきているという。

cybozu.comの成長痛によるさまざまな課題

 こうした痛んだ部分・痛みそうな部分をいかに発見し、既存技術の改良やときにコストをかけて解決していくかが今回の大きなテーマ。具体的な例として萩原氏が説明したのが、OS自動インストールだ。

 現在、cybozu.comは3世代8種類のサーバーが存在しており、世代にRAIDの設定が異なる。さらに12のロールがあり、運用チームの時間を知らぬうちに大量に消費していたという。サーバーの種類や納品時の設定が異なり、大きな待ち時間が発生。「数百台もの再インストール作業。ときには心が折れる作業だった」という。

 これに対しては、自動セットアップツールを導入した。PXEサーバーとマネジメントサーバーを組み合わせることで、BIOSやRAIDの設定変更、OSのインストール、ロールごとのセットアップを自動実行させることに成功した。

nginx+Luaスクリプトで申し込み時間を10分を10秒に

 続いてHazamaチームでインフラ開発をしている野島裕輔氏が紹介したのが、nginxを改造し、10分かかっていた新規申し込み時間を10秒にまで短縮した話だ。

サイボウズ 野島裕輔氏

 現在、cybozu.comは新規の申し込みを行なうと、自動的に環境を構築してくれる。このフローにはデータベースの初期化とロードバランサーに振り分け先を登録する作業が必要になるが、総ドメインが増えてきたことで必要な時間が増加。「昨年は3分が5分にまで延び、申し込みが現実的な時間で終わらなくなる危険性があった」(野島氏)という。

 これに対して、まず行なったのがデータベースの初期化とロードバランサーの登録を高速化だ。前者に関しては、申込時に作成していたデータベースの作成と初期化を申し込み前に行なう「在庫方式」を採用。後者のロードバランサーに関しては、振り分け先追加のたびに再起動を要するApacheの仕様に起因しているため、大量のVirutalHostの設定ファイルや証明書の読み込みの無駄を排除し、起動の高速化を試みた。設定ファイル読み込みの内部ループの最適化、OpenSSL内部の重複チェックのハッシュ化、証明書ロード回数の削減などを実施した結果、10分かかっていた申し込みが2分まで短縮できたという。

データベースの初期化を申し込み前に行なう「在庫方式」

 しかし、「減りはしたけど、2分でも遅い。しかもドメイン数が増えると遅くなるのは変わっていない」(野島氏)のも事実。そこで、抜本的にアーキテクチャを見直し、新しいロードバランサーを設計することになった。

 Apache時代はドメインごとにVirtualHostを用意し、起動時にこれら数万の設定ファイルをすべて読み込んでいた。これをリクエスト駆動型に変え、リクエストが来るたびに必要な設定のみ読み込むようにする。また、新規の申し込みが来た場合は、プロビジョニングサーバーに申し込み情報を登録しておくと、ロードバランサーが設定ファイルを取得し、再起動なしで振り分けまで行なえる。こうした設計を実現すべく、いろいろな案の中から、導入決定されたのがイベント駆動型の高性能HTTPサーバーである「nginx」とリクエスト処理をカスタマイズできる「Luaモジュール」だ。

新ロードバランサーでは再起動も不要になる

 まずnginxはApacheやIISに代わるWebサーバーとしてグローバルで高い実績を持つため問題ない。ある調査だと、アクセス数上位1000サイトのうち、4割をnginxを採用しているという。nginx+LuaではApacheのVirutalHostに相当するモノを1つだけ用意し、Luaスクリプトの中でドメイン固有の設定をロード。ロードされた設定に従ってリクエストに認証し、サービスセットに割り振っている。この結果、4分以上かかっていたドメイン登録が1~2秒で完了するようになった。その他、証明書の動的ロードをできるように、TLSのハンドシェイク部分にパッチを当てたり、DoS対策用の独自モジュールを開発し、機能面も拡充。申し込みが来てから、新しい環境を10秒以内に構築できるようになったという。

(次ページ、1日1回だったバックアップを高速化するWaLB)


 

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    ITトピック

    情シス人材不足でも「採用予定なし」中小企業の意見/“従業員発のSNS炎上”6割の企業が懸念/「SNS疲れ」利用を減らす効果的方法、ほか

  2. 2位

    ビジネス・開発

    「Gemini Enterprise」に大規模導入の波 ― SOMPO・NTTデータ・Skyが描く“エージェント企業”への進化

  3. 3位

    sponsored

    キャッシュレス決済の利用シーンを広げる 三井住友カードの「stera terminal light」とソフトバンクのIoT回線

  4. 4位

    sponsored

    60年の時を超え「COBOL」がGitHub Copilotでよみがえる 勘定系アプリの“超難関”モダナイに7社が挑戦

  5. 5位

    sponsored

    “120TB消失危機”を救ったBox。ゼネラルが挑むグローバルデータ統合の舞台裏

  6. 6位

    データセンター

    「関東・関西に次ぐDC集積地」目指す 北海道・石狩でデータセンター連合 さくら、NTT東らが参画

  7. 7位

    TECH

    パンや酒、チョコづくりにも関わる微生物「酵母」の進化を追求

  8. 8位

    YouTube

    ぶっちゃけ、あのSaaSってどう!? 情シスがガチ格付け! 本当に使えるツールを決める最強SaaSティア決定戦!!

  9. 9位

    デジタル

    異常検知からロボット走行、車両制御まで —— 現場を遠隔化・自動化するSORACOM活用のIoTソリューション

  10. 10位

    TECH

    プロアクティブDNSでDNSをセキュリティ基盤へ 福岡大学でも「運用課題なし」の実績

集計期間:
2026年07月29日~2026年08月04日
  • 角川アスキー総合研究所