検索
ソフトウェア&テクノロジー

サイボウズ株式会社: 最新のクラウドサービス基盤から提供する 全文検索機能をElasticsearchで刷新

PDFダウンロード

AT A GLANCE

  • 70
    テラバイト以上 全文検索機能の 対象データの総容量
  • 2/3
    圧縮機能 データサイズ 削減
  • ECKで、 Kubernetes上での 管理タスクを自動化

サイボウズ株式会社は2018年から約3年半の期間をかけてクラウドサービス基 盤を刷新。この新しいインフラから提供する全文検索機能をElasticsearchで構 築しました。収容テナント数は約6万インデックス、70テラバイトを超える大規模 なデータを管理するとともに、Elastic Cloud on Kubernetes(ECK)を活用するこ とでクラスター管理タスクを自動 し、お客様に対して安定的かつ可用性の高 いサービスを提供しています。

サイボウズについて

「チームワークあふれる社会を創る」を理念とし、チームワークを支えるソフトウェアを開 発し続けてきた。独自に 発したクラウド基盤cybozu.com のもと、中小企業向けグ ループウェア「サイボウズOffice」、中堅・大規模組織 けグループウェア「Garoon」、業 務改善プラットフォーム「kintone」、かんたんメール共有ツール「Mailwise 」などのサービ スを提供している。

https://cybozu.co.jp/

クラウドサービス基盤を刷新するNeco プロジェクトが完了

クラウドをベースにチームワークを促進するソフトウェアやサービスを展開しているサイボ ウズ。2011 年に提供を開始した主力サービスである cybozu.com は自社で構築したデー タセンターにて以来順調に業容を拡大し、現在の契約企業は数万社に上る。

ただ、当初100 台に満たない台数のサーバー向けに設計されたそのインフラは次第に老 朽化が進み、今後の拡張は困難になってきた。そこで2018 年1 月に始動したのが「Neco」 プロジェクトである。責任者を務めたサイボウズの山本泰宇氏は、「数千台のサーバーの 容易な管理、スケーラビリティの大幅な向上、サービスのダウンタイムの大幅な削減の3 つの目標を掲げ、インフラの抜本的な改善を図ってきました」と説明する。

こうしてデータセンター全体をKubernetes クラスターとして管理するアーキテクチャーを 備えたNeco が2021 年6 月に完成した。そして、これを受けてサイボウズが次に着手 したのが、cybozu.com を通じて顧客に提供しているさまざまなサービスの移行である。 全文検索機能もそのひとつだ。

新たな全文検索エンジンとしてElasticsearch を採用

全文検索機能の移行は、具体的にどのように進んでいったのだろうか。 これまでサイボウズはcybozu.com の旧インフラにおいて、オープンソースの全文検索エ ンジンであるApache Solr を利用していた。しかし、そこには大きな問題を抱えていた。 10 年近くにわたって運用してきたApache Solr は何世代も前のバージョンで、なおかつイ ンフラ自体も老朽化が進んでいたことから、容易に最新版にアップグレードすることがで きなかった。

サイボウズ 運用本部の渡部 恭久氏は、「アップグレードできないとなれば、新たに発見さ れた脆弱性を埋めるセキュリティパッチを当てることもできなくなるため、運用は非常に危 うい状態となっていました」と語る。

そこでApache Solr に代わる新たな全文検索エンジンとして選定したのがElasticsearch である。一般的に全文検索エンジンを別製品にリプレイスすると、UX まで大きく変わって しまうという問題が起こる。ところがElasticsearch はさまざまなプラグインを利用するこ とで、検索や分析などの機能をカスタマイズすることが可能なのだ。「この特徴を生かす ことでApache Solr の操作性を再現する、要するに従来どおりのUX をほとんどそのまま 提供できることがわかり、Elasticsearch を採用することに決めました」(渡部氏)

こうして導入されたElasticsearch は、予想以上にインフラの運用改善に大きく貢献する ものだった。cybozu.com において全文検索機能が対象とするデータは、トータルする と約6 万インデックス、約70 テラバイトに及ぶ。「この大規模なデータを格納する際に Elasticsearch による圧縮をかけることで、データサイズを2/3 に削減できたのです。この ことは他のチューニング施策ともあいまって結果的に検索レスポンスの改善にもつながり、 お客様からも『使い勝手が良くなった』といううれしい声をいただきました」(渡部氏)

加えてオープンソースでありながらも商用製品として提供されるElasticsearch ならでは、 ベンダーの手厚いサポートを受けられることも大きなメリットだ。

Elasticsearchを実際に使ってみて非常に良かった点は、ドキュメントが充実していることです。おかげで運用経験 はほぼゼロの状態からのリプレイスだったのですが、特に 苦労することなくスムーズに導入することができました。 またElasticとの間でエンタープライズサポートの契約を 結んだことにより、万一障害が起こった場合でも迅速な問 題解決のサポートが行われます。これはお客様に対してよ り安定的なサービスを提供していく上での心強い後ろ盾 となっています

– サイボウズ 運用本部, 渡部 恭久 氏

ECK を活用してElasticsearch のクラスター管理タスクを自動化

サイボウズは全文検索機能をNeco に移行するにあたっても、そのエンジンにElasticsearch を採用。2021 年7 月にまず社内環境を、続いて10 月に顧客環境を移行するという2 段階 のプロジェクトを行った。

この一連の取り組みで注目すべきは、Elasticsearch をElastic Cloud on Kubernetes(ECK)にパッケージングしてNoco 環境にデプロイしたことだ。これによりKubernetes 上で Elasticsearch の設定、管理、運用を自動することが可能となる。

「本来、Elasticsearch のように大規模なデータを管理する仕組みをKubernetes に乗せ るためには、非常に高度な技術スキルが要求されます。私たちも別プロジェクトでデータ ベースをKubernetes で運用するために大変な苦労をした経験があります。こうしたでき ればスクラッチ開発を避けたい仕組みをElastic がサポート付きで提供してくれるのは、非 常にありがたいことです。ECK を使わない手はありません」(山本氏)

具体的にはサイボウズはECK を活用することで、Neco 上でのElasticsearch の運用とク ラスター管理タスクを自動化している。

「旧インフラではシングルノードでElasticsearch を運用していたのに対して、Neco 上では 万一ラック単位でシステムがダウンした場合でも最小限のダウンタイムでフェイルオーバー することが可能となりました。これによって、お客様に提供する全文検索機能のサービス レベルを大幅に向上しています」(渡部氏)

Diagram

図:全文検索基盤をECK で自動運用

Elastic APM をGaroon のパフォーマンス監視に適用

上述したようなElasticsearch の成果を踏まえ、サイボウズは今後に向けてElastic のさ まざまなソリューションの活用を進めていく考えだ。

すでに実サービスでの評価を開始しているのがElastic APM(Application Performance Monitoring/Management)だ。複雑なアプリケーションをリクエスト単位、処理単位な どでサービスを横断してパフォーマンスを可視化するソフトウェアで、山本氏は「Neco 上で 運用しているGaroon のパフォーマンス監視に適用したい」という意向を示す。

さらに渡部氏も「可視化ツールのKibana をElasticsearch と連携させることで、グラフを 用いたデータ分析のニーズにも応えていきたいと考えています」と語り、サイボウズが提供 する多彩なクラウドサービスのエクスペリエンスを高めていくことを目指す。