エンタープライズサーチ
金融

Xoom:世界に安全なモバイル送金サービスを展開

数字で見ると

  • 約6千億円
    の決済取引を分析
  • 5倍
    に処理速度を向上
  • 500
    回 / 1秒あたりのクエリ

課題

決済額が年間6千億円を超えるサービスで、不正防止とコンプライアンス遵守を実現する

ソリューション

Elasticsearchをリスクマネジメントシステムのベースに導入し、高度な機能を実装

ケースのハイライト

パフォーマンスの向上

  • 1秒あたり500回の検索リクエストを処理
  • 処理速度を5倍に引き上げ
  • 200 GBのインデックスをミリ秒で検索

開発プロセスの最適化

  • コードを減らし、処理を高速化
  • 既存のAPIを活用
  • 開発に集中できる環境を実現

6千億円超の取引を保護

サンフランシスコに拠点を置くXoom(xoom.com)は、デジタル送金サービスを手掛ける世界的な大手企業です。同社のサービスではスマートフォンやタブレット、PCから世界30か国以上へ、安全にすばやく送金することができ、手数料はリーズナブルに設定されています。2013年7月から2014年6月期にXoomを利用したアクティブユーザー数は110万人を超え、この間の取引額は6700億円に上りました。

Xoomが目指すのは、できる限りすばやく、手軽な送金サービスの提供です。多くの利用者が望むサービスですが、サービス事業者であるXoomは、詐欺や不正行為のターゲットとなるリスクを抱えています。Xoomはこの脅威に立ち向かい、不正行為を高い精度で検出する技術の開発に成功しました。現在、同社の損失率は極めて低く抑えられています。

Xoomでインフラストラクチャー上級技術管理者を務めるジョシュ・ホルツマン氏はこう語っています。「検索は不可欠なプロセスです。Xoomのリスクエンジニアリングチームは以前から不正行為の分析にさまざまな検索技術を活用してきました。Elasticsearchの導入以前はApache Luceneの古いバージョンを使用していましたが、次第にインデックスの管理が困難になりました。方法はともかく、シャーディングも必要でした」

「まず古いコードを極力使わずに済む方法を模索しました。さらにパフォーマンスを向上させ、管理もしやすい検索エンジンを探しました。そして行きついたのがElasticsearchです」

– Josh Holtzman, インフラストラクチャー上級技術管理者、ジョシュ・ホルツマン

当時Xoomでは、インデックスを最新に保ち、同期させるプロセスでもトラブルを抱えていました。たとえば、ある取引を並列の2つのボックスで処理させると、ボックスによって異なる結果が出てくるという状況でした。金融サービス業者としては看過できない問題ですが、ホルツマン氏のチームはこのトラブルの原因を解明できずにいました。

ホルツマン氏は次のように振り返ります。「レガシーの検索システムの管理では、大量にコードを書いて各インデックスを最新の内容に保つ方法や、処理の方法を詳細に指示する必要がありました。悪夢みたいです。理解できるレベルを超えて、複雑になりすぎていました。さらに、検索システムの処理も遅く、思うようにスピーディーなサービスを実現できていませんでした。

まず古いコードを極力使わずに済む方法を模索しました。さらにパフォーマンスを向上させ、管理もしやすい検索エンジンを探しました。そして行きついたのがElasticsearchです」

5倍のパフォーマンスを実現

Xoomのユーザー数は前年比で堅調に増え続け、取引ごとに検索対象となるデータも増大しました。この時、検索システムをどれだけシームレスにスケールさせることができるかが、ビジネスの最重要課題となっていました。

ホルツマン氏はこう語ります。「当時1秒あたりの検索リクエスト数は100回から500回程度でした。Elasticsearchの大きな強みは、200GBものインデックスをミリ秒で検索できる機能です。以前の検索システムでインデックスが増大し続けた場合、まず実現不可能な速度です」

ホルツマン氏のチームがElasticsearchを導入すると、処理時間は20秒から4秒にまで短縮され、実に5倍のパフォーマンスが実現されました。

「検索プロセスの改善は避けて通れず、ビジネスの継続に関わるほど重大な課題でした。そんなとき、Elasticsearchを知りました。」

「当時1秒あたりの検索リクエスト数は100回から500回程度でした。Elasticsearchの大きな強みは、200GBものインデックスをミリ秒で検索できる機能です。以前の検索システムでインデックスが増大し続けた場合、まず実現不可能な速度です」

– Josh Holtzman, インフラストラクチャー上級技術管理者、ジョシュ・ホルツマン

開発プロセスの最適化

古い検索システムの低いパフォーマンスへの対策として、Xoomでは2つの異なるバージョンでインデックスを行っていました。1つは直近9か月分のデータ、もう1つはすべての履歴データのインデックスです。処理速度の向上のため、リスク対策エンジンは9か月分のインデックスだけをクエリさせることにしたのです。

ホルツマン氏は当時を振り返り、こう語ります。「以前の検索システムはパフォーマンスが低かったので、最新のデータでさらに別のインデックスを作成しなければなりませんでした」

Elasticsearchの導入後、Xoomでは同じデータに複数のインデックスを作成し、さまざまなアナライザーを使用できるようになりました。フレキシビリティーを活かし、クエリの詳細な絞り込みや特殊なマッチングの実行など、処理の幅も格段に広がっています。ホルツマン氏は「Elasticseachには制約がありません。何よりの魅力です。フレキシブルに、さまざまなことができるようになりました。ユースケースに応じて異なるインデックスを作成する場合も、大量のコードを書く必要はありません」と言います。コードが少ないほど開発者は生産性の高いタスクに時間を割くことができ、この点もまたElasticsearchの大きなメリットとなっています。

ホルツマン氏はElasticsearchのJava APIも高く評価しています。「使いやすくて、楽しいですね。非常にシンプルですが、よくできています」


使用製品

XoomがElasticsearch導入で実現したメリット

  • パフォーマンスの向上

    従来の技術に比べ、決済処理速度が5倍に上昇

  • スケールの容易さ

    検索クエリ、決済処理、関連データの量が増え続けても、Elasticsearchでスムーズに処理可能
  • 開発生産性の向上

    Elasticsearchに搭載された豊富な検索機能と、必要なコードの少なさが開発者の工数を引き下げ、より生産性の高いタスクに取り組める環境を実現
  • ビジネスレベルの機能性

    ミッションクリティカルなタスクであるリスク処理に、優れたパフォーマンス、スケーラビリティ、フレキシビリティをもたらし、業界屈指のサービス水準を実現