• Twitter
  • Facebook
  • Google+
  • RSS

エンジニアの総意でMongoDBを採用――メール配信システム「Cuenote FC」11年の歩みを振り返る



(※この記事はユミルリンク株式会社によるPR記事です)

■ メール配信の状況は大きく変わった

ユミルリンクのサービスが配信するメール総数は増え続け、一昨年の月間13億通から、2013年の現在では月間25億通に達している。顧客としても、クックパッド、カルチュア・コンビニエンス・クラブ(CCC)、楽天Edy、東急ホテルズ、サッポロビールなど有力企業が名前を連ねている。

記事末の表は、メール配信システム運用における同社の11年の歩みの中で、主な動きを俯瞰したものだ。メール配信サービスを取り巻く状況が、目まぐるしく移り変わってきた様子が分かる。

時代の変化に対応して、技術的な取り組みも変化してきた。2002年に販売開始した時点では、MTA(メール転送エージェント)としてqmailを使用していた。2003年には、より高速なメール配信のニーズに対応するため、独自のMTAを開発。2004年頃からは、携帯電話のキャリアメールを対象とした性能改善が重要な課題となった。

2007年頃には「なりすまし対策」が課題となるなど、メールをめぐるセキュリティ意識が高まった。この時期、メール配信システムの開発生産性と性能を両立させるため、並列処理に強いプログラミング言語Erlangの導入もはじめている(関連記事:Erlangも活用 月13億通、1時間で300万通のメール配信を実現する技術とは - はてなブックマークニュース)。

そして2012年には、NoSQLのMongoDB を主力サービスであるCuenote FCに取り入れた。まず、このMongoDB採用のいきさつを見てみよう。

MongoDBとNoSQL

大規模Webサービスでは大量のデータを処理するため、従来の関係データベース(RDB)ではない(SQLを使用しない=NoSQLな)データストアを利用するケースが増えている。MongoDBは、2009年に初めてリリースされたオープンソースのドキュメント指向データベースであり、構造データである「ドキュメント」の集合を「コレクション」として管理する。現在はMongoDB Inc.によって開発されている。

■ 大量の配信ログを解析するニーズから新しいDBMSを検討

同社がMongoDBを導入した背景には、メール配信のログを、多様なやり方で解析するニーズが強まったことがある。例えば未達メールの抽出などだ。

ユミルリンク株式会社 技術本部 開発部
シニアマネージャー 及川英夫氏

もともとメール配信のログは、フラットファイルの形で保管されていた。ログ解析のニーズに対応するには、インデックスを張ったデータベースとしてログを扱う必要がある。メール配信ログを処理するため、まずデータベース管理システムとしてPostgreSQLが導入された。

従来のシステムではMySQLを採用していたが、ここでPostgreSQLを導入した理由はライセンスによるものだ。オープンソース版MySQLではライセンスとしてGPLを採用していることから、独自開発ソフトウェアもGPLに基づいて公開する義務が発生する懸念があった。BSD類似のライセンスを採用しているPostgreSQLならば、この問題を回避できる。

PostgreSQLを採用したログ管理のシステムは無事にサービスインしたものの、運用中に性能問題が顕在化した。データ量の増大に伴い、ログを処理し切れなくなってきたのだ。

「PostgreSQLを採用したサービスの運用開始後、頻繁にアラートがあがる状態になってしまった。PostgreSQLのバキュームを遅延させるなど設定で切り抜けつつ運用していたが、性能を早急に上げる必要があった」(技術本部 開発部 シニアマネージャー 及川英夫氏)。

■ 現場の総意を聞き、MongoDBの導入を決定

そこで検討したのが、いわゆるNoSQLデータベース管理システムのMongoDBである。

同社のシステムが必要としていたのは「データ量が増えても速度が低下しないこと、それに1台のサーバーで動作させる条件でも高速なこと」(技術本部 開発部 開発課 スペシャリスト 佐野拓氏)だったが、MongoDBはこの要求に合致していた。

MongoDBを検討していたとき、その対象となったシステムは1つだけではなかった。主力メール配信サービスCuenote FCに加えて、新サービスとして開発中だったアンケートシステムCuenote Surveyでも、同様にPostgreSQLの性能問題に直面していたのだ。

ユミルリンク株式会社 技術本部 開発部
開発課 スペシャリスト 佐野拓氏

しかし、データベース管理システムの変更は大幅なソフトウェア修正を意味する。同社は、「性能問題を乗り越えてPostgreSQLを使い続けるか、それともMongoDBに切り替えるか」という大きな決断を迫られていた。この決断は簡単ではなかった。

そこで、エンジニアを集めた会議で、次の問いが発せられた。

今抱えているPostgreSQLの問題を解決したいか? それとも、MongoDBを試したいか?

エンジニアそれぞれにこの質問をぶつけ、意見を聞いた結果、MongoDBを推す意見が圧倒的に多かったという。

当時のことを及川氏は「みんな、けっこう新しいものが好きだった」と簡単に語っているが、MongoDBの採用とそれに伴うログ管理機能の再構築は、同社が蓄積する技術の大きな転機となった。

すでにサービスを運用中だったことから、MongoDBの導入は急いで進められた。そして、2012年7月にMongoDBを搭載したCuenote FCを発表する。

2012.07.10〈Press Release〉メール配信エンジンにNoSQLを採用し、データ処理能力を向上|メッセージングシステムのCuenoteシリーズ

だが、その後また新たな問題が発生する……。

■ MongoDBの不具合による容量問題をDB構造変更で切り抜ける

2013年に入り、ログ管理機能にMongoDBを適用したCuenote FCのシステムを本格的に運用させる過程で、別の問題が顕在化した。データベースのサイズが当初の想定を越えて増大してしまうのだ。

問題は、MongoDBで不定長のデータを扱う場合の挙動にあった。MongoDBで一定サイズのデータを扱う場合には、データを書き込み削除する動作を何回繰り返してもディスク容量の問題は発生しない。削除した領域を再利用できるからだ。ところが、同社が扱っていたのは、メール配信ログという不定長で毎回サイズが異なるドキュメントだった。

MongoDBのデフォルト設定では、一度データを書き込んで削除した後、ぴったり同じサイズのデータを書き込む場合に限って、領域を再利用できた。さらに、書き込み先の領域を検索する際には、回数に上限があり、一定量検索しても見つけられなければ、領域の再利用を諦めて、新しい領域を確保するようになっていた。

データのサイズが毎回異なる配信ログを管理するデータベースでは、削除したデータの領域がうまく再利用されず、データベースのサイズは増え続ける一方になってしまったのだ。調べたところ、異なるデータ長の空き領域を再利用しやすくするオプション(usePowerOf2Sizes)が、最近MongoDBに登場していることが分かった。

しかし、このオプションを使った場合でも、適切なサイズの空き領域を探索する際の回数上限は残っており、データベースのサイズ増加を完全に解消することはできなかった。これらの問題はMongoDBの不具合として報告されているが、改善されていないままだ(MongoDBのバグチケットSERVER-2958を参照)。

同社が取った解決手段は、データベース構造を変えることだった。データを削除する際に、MongoDBのコレクション(RDBのテーブルに相当)単位で削除することで、この問題を回避している。

■ 次世代プラットフォーム作りを目指すCuenote Survey

MongoDBを全面採用したCuenote Surveyは、2013年6月に発表されたばかりの最新サービスだ。Cuenote Surveyはアンケート機能などを備えており、共通のデータベースを複数サービスで利用できるようにする、新しいアーキテクチャを採用したサービスである。

2013.06.04〈Press Release〉アンケートやフォームを簡単・低価格で利用できる「Cuenote Survey」を7月より提供開始|メッセージングシステムのCuenoteシリーズ

「(現行の主力サービスである)Cuenote FCは、顧客からの要望を取り入れた機能拡張を重ねてきたため、機能の追加や修正に伴って影響する範囲が広くなってしまっていた。新サービスのCuenote Surveyでは、層を分けてAPIを設定し、サービスの各要素を分離するよう設計した。こうしておけば、既存のソースコードをいじらずに新機能を追加できる」(及川氏)。

今後は、Cuenote Surveyのために構築したプラットフォームを利用することで、新しいサービスを短期間で提供し続けられると同社のエンジニアたちは考えている。

■ スマートフォンの時代もメール配信サービスは残る

ユミルリンクのメール配信サービスには11年の歴史がある。その間の時代の変化は大きかった。携帯電話のキャリアメールへの最適化が大きな課題だった時期もある。そして今、大きな課題となっているのはスマートフォンへのメール配信だ。

「メール配信の送り手は、スマートフォンにもきれいにメールを送りたいという要望を持っている。ところが、スマートフォンのHTMLメールは、従来の携帯電話のメール以上に仕様がバラバラだ。今その対応を進めているところだ」(及川氏)。

スマートフォンのメーラーは機種ごとの差が大きく、同じHTMLメールでも表示に大きな差が出る場合がある。例えばスタイルシートの解釈が機種により異なる場合がある。

そこで、メール文書中に置いたURLをユーザーがタップしたときに取得できるユーザーエージェントの情報をもとに、個々のユーザーが持つ機種に最適化されたメールを送るようにすることを考えている。現在は、機種別の細かな仕様の違いを調査、整理している最中だ。

スマートフォンのアプリ開発者にとって、スマートフォンの機種依存問題はよく知られた問題である。多数の機種でアプリをテストできる検証サービスを実施している企業もある。だが、キャリアメールのアプリにおけるHTMLメールの機種依存に関する情報は、まだ整理が進んでいないのが現状だ。


メール配信システムでは時代の変化とともに、新しいニーズと新しい問題が発生している。

これまでも、ブログの登場によってRSSによる情報配信が普及したり、ソーシャルメディアやパーソナルメッセージングの新しいサービスが話題になったりするたびに、「メールの時代は終わった」という見解が何回も登場した。

しかし、現実として、いまだにPCでも、フィーチャーフォンでも、スマートフォンでも、メールは標準機能として搭載されている。あらゆる環境にプッシュ型で情報を配信できるサービスは、事実上メールだけと言っていい。

そして、メール配信の市場は一貫して伸び続けている。メール配信の業界全体で、配信数は前年比110%で推移しているという。今後も増え続けるであろうメール配信のニーズに対して、同社ではサービスを機能改善し続ける考えだ。

■ 表:ユミルリンクとメール業界の歩み

記事冒頭に戻る

業界動向 Cuenote FCへの機能追加など
2001

・首相メルマガ創刊

2002

・「特定電子メール送信の適正化等に関する法律」が施行

・100万通/時を可能とする高速メール配信「Mail Style」を提供開始

2003

・高速メール配信エンジン(MTA)を独自開発

2004

・RSSが各種ブラウザの標準機能に取り入れられはじめる

・Gmail提供開始

・NTTドコモが「デコメール」サービス開始

・配信ノードをスケーラブルに追加できるクラスターライセンス販売開始

2005

・携帯電話向けに高速配信する利用者要望が増加

・携帯電話宛限定で迷惑メール対策OP25Bの普及が進む(OP25Bに対する総務省見解の公表)

・大手銀行が電子署名付きメール(S/MIME)を採用しはじめる

・「特定電子メールの送信の適正化等に関する法律」が改定され、特定電子メールの範囲拡大・架空アドレス宛ての送信禁止

・「個人情報の保護に関する法律」が全面施行

・携帯電話キャリアの特定接続サービスへカスタマイズ対応

・電子署名「S/MIME」に対応

2006

・Vodafoneが日本法人をソフトバンクへ譲渡

・auが「デコレーションメール」サービス開始

・ソフトバンクが「アレンジメール」サービス開始

・携帯電話の絵文字変換サービスが開始

・配信リストを自動連携するオプション機能を追加

2007

・携帯電話とPHSが合計1億台を超す

・NTTドコモが、なりすまし対策として送信ドメイン認証に対応

・米アップルがiPhoneの100万台販売を達成

・グーグルがAndroid OSを発表

・送信ドメイン認証の対策として「SPF」登録を顧客へ案内・周知

2008

・iPhoneが国内で発売開始

・「特定電子メールの送信の適正化等に関する法律」が改正され、オプトイン規制導入

・Twitterの日本語版が利用可能になる

・オプトイン記録をフォーム機能へ追加

2009

・Androidを搭載したスマートフォンが国内で発売開始

・Facebook会員が2億5000万人を突破

・メール配信システム「Forcast」を「Cuenote FC」へ変更

・顧客のアクションに応じてメールを自動送信するフォローアップメール機能を搭載

2010

・Androidを搭載した国産スマートフォンが続出

・iPadが国内で発売開始

・NTTドコモがspモードを提供開始

・業界に先駆けてASP・SaaSサービスに「ワンタイムパスワード」を標準化

・低価格帯のASP・SaaS「プレミアムプラン」を提供開始

・「ワークエリア」機能の追加

2011

・電力需給逼迫時にメール通知するサービス開始

・LINEサービス開始

・Google+一般公開

・多言語のメール配信に対応

・送信ドメイン認証技術「DKIM」に対応

・スマートフォンに対応

・ASP・SaaSの安全・信頼性に係る情報開示認定を取得(FCプレミアム)

2012

・スマートフォン新規購入がフューチャーフォンを上回る

メール配信エンジンにNoSQL(MongoDB)を採用

・Cuenote FCをOEM提供

2013

・インターネットを利用した選挙運動(ネット選挙)が解禁

・「DKIM」が76番目のインターネット標準(STD 76)に

・多店舗管理するための機能を追加

・ユーザー属性別の効果測定分析が容易となる機能強化

クラウド型アンケートシステム「Cuenote Survey」リリース

記事冒頭に戻る


[PR]企画・制作:はてな
写真:赤司聡
文: 星暁雄