利用者500万のインフラを支えるクラウドと物理サーバーの使い分け
120億レコードのDBで「さくらの専用サーバ」を活用するマネーフォワードの適材適所戦略
2017年08月21日 07時00分更新
500万の利用者を抱える自動家計簿アプリを手がけるマネーフォワードは、多様化してきたサービスを支えるべくインフラの刷新を進めている。そんな中、クラウドのみならず、「さくらの専用サーバ」を採用し、適材適所のインフラ利用を加速させている。マネーフォワード 取締役 CISOの市川貴志氏に聞いた。
特性の異なるサービスのため、共通インフラを分割へ
2012年に創業し、個人向けの自動家計簿アプリ「マネーフォワード」を展開しているマネーフォワード。今では個人向けサービスに加え、会計や確定申告、請求書、給与計算、入金消し込み、マイナンバー管理、経費精算、資金調達など幅広い法人向けサービスを展開している。こうしたサービスを安定的に運用すべく、今回取材した市川貴志氏が率いるインフラチームは、マネーフォワードのインフラ全般の構築・運営を手がけている。
従来、マネーフォワードでは基盤の共通化を重視し、同じ思想で各サービスのインフラを構築・運営してきた。しかし、サービスが増えてきた昨今、サービスごとに異なるミドルウェアを使い分けしたいというニーズが増えてきたという。「500万の利用者がいっせいに昼休み時間にアクセスするような個人向けの自動家計簿アプリの負荷と、法人向けサービスの負荷の特徴はかなり違います」と市川氏は語る。また、個人向けの自動家計簿サービスは利用者数が500万を突破し、データ量も120億レコードを超えてきた。そのため、よりスケールしやすい仕組みやキャッシュの活用も必要になってきたし、RDBMS以外にデータを格納する仕組みも重要になってきているという。
これを受け、インフラチームではサービスの特性にあわせて、システムを分割している途上にある。「もともとはモノリシックなシステムだったのですが、昨今は共通化のデメリットの方が大きくなり、今後のサービス成長を考えると足かせになってしまう可能性が出てきています。そのため、数年後を見据え、複数のシステムがAPIで疎結合する形態に移行しています」と市川氏は語る。
ユーザー増加とそれにともなうデータ量の増加を受け止める性能や拡張性。そして、サービスごとに異なるニーズに答えられる柔軟性。こうしたインフラを求め、同社が行き着いた選択肢が「さくらの専用サーバ」だ。
さくらの専用サーバに行き着いた3つの要件とは?
もともと同社の個人向けの自動家計簿アプリのシステムは、Ruby on RailsとMySQLでシンプルに構築されていた。起業当時の2012年頃はAWSを用いていたが、プレミアムサービスでの売り上げもまだなかったため、ユーザーの増加と共にサーバーのコストが大きな負荷になっていた。そのため、CPUやI/Oの性能、コスト等のトータルバランスを考え、まずは「さくらのVPS」を選択した。このときは基本的にアプリケーションも含め、そのままVPSに移行したという。
続いて、さくらのVPSからさくらの専用サーバに移行したのが、2013年になる。500万というユーザー規模を見据えたインフラの刷新。いくつかの要件の中で、重視したのはまずセキュリティだ。「われわれは扱っているデータがかなりセンシティブです。お客様が使ったお金の情報や法人の会計情報など漏えいは許されません。その点、セキュリティを重視するには、VPSよりも専用サーバのネットワークの方が適していました」(市川氏)。
2つめの要件は台数の問題だ。ユーザー数やそれにともなうデータの増加により、VPSではサーバーの台数が増えてしまうのが大きな懸念点だった。そのため、処理能力の高い物理サーバーで仮想サーバーを巻き取ってしまおうというのが、マネーフォワードの構想だ。「VPSで小さいサーバーを数百台用意するより、専用サーバを用意して、中・大規模の高性能サーバーを数十台にまとめた方が運用しやすいと考えました」(市川氏)。
3つめは性能面で、ディスクのI/O性能が必要になったことだ。I/Oを求めるのであれば、オンプレミスでエンタープライズのストレージを導入するのがよいが、製品が高価で、オンプレミスでの運用は難しい。その点、さくらインターネットがサービスとして提供しているFusion-ioがかなり魅力的だった。「基本的にはI/O負荷を最適にしたアプリケーション開発を進めるのがベストなんですが、スタートアップ初期ではなかなかチューニングリソースを割くことができませんでした。でも、インフラに余裕があれば、多少荒っぽい負荷をアプリケーション側がDBにかけても、処理できると考えました」(市川氏)。
ポイントとなるのは、やはり長期的なサービス拡張を見据えたインフラへの投資であること。「短期的には高性能なインフラで負荷課題を乗り切ることもできるかもしれませんが、それだと将来にツケを回すだけに過ぎないんです。そのためアプリケーションのチューニングや品質向上は計画的に対応する必要がありますが、高速なさくらの専用サーバのDBを利用することで、余裕を持った計画で進めることができます」と市川氏は語る。
物理サーバーはあくまで適材適所を考えた選択
システムにクラウドを採用するスタートアップが多い中、マネーフォワードはなぜ物理サーバーを用いるのか? これについて市川氏は、「クラウドとオンプレミスでそれぞれ適材適所があり、どちらが優れているという観点での選択ではない。AWSも同じぐらい利用している」と持論を展開する。
市川氏の意見としては、スタートアップでインフラ選任のエンジニアがいなかったら、やはりクラウドを使うべき。一方で物理層に知見があり、I/Oの細かいチューニングや障害対策がきちんと行なえるのであれば、DBは物理サーバーという選択肢はありだという。
また、マルチサービスという観点も、適材適所という指向が見て取れる。現在、同社はさくらインターネットに加え、AWSやGCPなども併用している。異なるサービスを利用しているのも、性能や拡張性、柔軟性などを検証した上で、最適なものを選んでいるという。
こうした選択が可能なのも、マネーフォワードの場合、インフラのみならず、アプリケーションのプロフェッショナルが揃っているからにほかならない。インフラ担当が数名なのに対して、アプリケーション開発や運用のメンバーはたくさんおり、この中にはRubyのコミッターも含まれている。「LinuxやMySQLに知見のあるメンバーがソースコードまで追えるので、自社でやれるところはやった方がよいと考えました」(市川氏)。また、セキュリティ対策も同じで脆弱性対策に関してもアプリケーションチームと連携して迅速に対応している。「たとえば、RubyやOpenSSLであれば、ソースコードのパッチが出てからとても短い時間で対応しています」(市川氏)。
数百台規模なのに「故障件数が非常に少ない」
現在、マネーフォワードで利用しているサーバーは約700インスタンス。このうち数百台をさくらの専用サーバで運用している。これだけの規模になると、ある程度の頻度で障害が発生しそうなものだが、市川氏の感想は「壊れないし、安定している」というものだ。「過去に証券系のシステム運用時は、けっこうな頻度で壊れていたので、数百台になったらどうなのか心配でしたが、さくらの専用サーバはびっくりするほど壊れない。故障率が当時の10分の1ぐらいではないか」と市川氏は高く評価する。
障害が発生しないため、さくらインターネットのサポートを受けることはほとんどないとのことだが、マネーフォワードのサービスは、年間を通じてトラフィックの山がある。個人向けサービスであれば、家計を見直す年末年始や新生活が始まる春先、法人向けサービスは決算期や確定申告のある年度末などにアクセスが集中する。また、新年度のTV放送で取り上げられる際は、トラフィックも増えるという。こうした時期のトラフィック増加を見据えて、さくらインターネットとともにキャパシティ増設を行なってきたが、無事乗り切ってきたという。
今後はシステムの分割を進めていくにあたって、ユーザーサイドに近い処理はAWSやGCPのようなクラウドの比率を高め、さくらの専用サーバはI/O性能の高い物理サーバーならではの特性を活かした使い方によりフォーカスしていく方向性だ。さくらへの期待としては、物理サーバーではまだまだ弱い自動化。「さすがに数百台の規模になると、構築や運用も骨が折れます。APIを使って、サーバーをある程度自動的に調達できるとうれしいですね」と市川氏は語る。
(提供:さくらインターネット)