Amazon RDS の MySQL から Amazon Aurora への移行は本当に簡単でした。本番環境を止めずに移行できることも分かったので、今後は順次移行し Amazon Aurora に一本化する予定です。
MySQL から Amazon Aurora に移行して、必要な性能も十分に得られています。今後 1,000 万ユーザーに増えたとしても、今のところなんら心配はありません。
閑歳 孝子 氏 株式会社 Zaim 代表取締役

株式会社 Zaim は、個人向け家計簿アプリケーション「Zaim」を提供する企業です。Zaim には iOS、Android およびブラウザで利用する Web 版があり、さらに Windows ストアから Windows 10 や Windows 10 Mobile で動くアプリケーションも提供されています。サービスではレシートなどをスマートフォンのカメラで撮影するだけで簡単にお金の利用が記録でき、紙の家計簿で挫折した人からも、Zaim なら続けられるとの声が届いているということです。ユーザーからの使いやすいとの評価もあり、2011 年に最初の iOS 版を提供以来、すでにアプリケーションダウンロード数は 500 万を超えるサービスに成長しています。

株式会社 Zaim 代表取締役の閑歳孝子氏は、お金の話はたとえ家族でもなかなかしにくい面があり、自分だけで考えるのではなく、Zaim をきっかけに家族間でお金に関する新たなコミュニケーションが生まれればという考えからサービスを立ち上げました。

「Zaim は FinTech という言葉が登場する前から提供している家計簿アプリケーションです。お金の利用に関する人々の判断をサポートすることが目的です。」(閑歳氏)

Zaim は日々の現金利用の記録、さらには銀行取引やクレジットカード明細の取り込みなどを簡単に行うことができるだけでなく、お金の利用状況はグラフなどを用い容易に可視化、分析できるサービスです。また家計簿機能だけでなく、さまざまなお金に関する情報、たとえば自治体の子育て給付金情報などの提供も行われています。

Zaim が 2011 年に最初のアプリケーションを公開した時点では、まだ法人化されていませんでした。最初は、閑歳氏の趣味の延長で開発されたもので、当初は自身の手でサービスインフラを揃えなければなりませんでした。

「週 5 日は会社員として働き、夜や土日に開発をしていました。BtoC のアプリケーションはビジネスにするのが難しく、当たるアプリケーションは少ないと思っていました。なので、当初は起業して専業としてやる勇気がありませんでした。」(閑歳氏) Zaim の開発当初はスマートフォンがやっと普及し始めた頃で、サービスの規模感を予測することも困難でした。

「まずは自腹で安く始められるものでなければなりませんでした。とはいえ、ユーザーが増えてからシステム環境を大幅に入れ替えるようなことになれば、その作業が相当大変なことも分かっていました。そういった手間がないものをと考えました。」(閑歳氏)

したがって当初は小さく始めることが出来、柔軟に拡張できるサービス基盤が必要でした。Zaim の利用者はサービス開始以降徐々に増加していき、10 万人を超えた後もさらにユーザーが増える勢いとなったことから、 2012 年 9 月には法人化され、本格的なサービス展開が始まりました。また、Zaim 社の起業のタイミングではクックパッドなどからの投資により資金調達を行い、サービス基盤にも投資が進められました。しかしさらにビジネスが軌道に乗ると、Zaim 社では新たな課題としてユーザー数の増加に合わせた、データベースの拡張性の確保が必要となりました。

Zaim のサービス提供が開始された当時は、プロバイダーなどがレンタルサーバーの延長で仮想化サーバーを用いたクラウドサービスを始めた頃でした。「本格的なクラウドサービスとして実績があるのは当時 AWS しかなく、それが AWS を選択した理由の 1 つでした。」(閑歳氏)

Zaim 社ではサービス開始時、サーバーとして Amazon EC2 を、ストレージとして Amazon S3、データベースとして Amazon RDS for MySQL を採用し、それらを核に Amazon Route 53 なども組み合わせたサービス基盤が構築されました。最小構成で始めたため、Zaim 社での利用料金は月額数万円程度で済ませることができました。

「以前からサーバーなどは触っていましたが、私自身はインフラは専門ではありません。そんな私でも、AWS なら GUI を使って簡単に環境設定ができます。これは本当に素晴らしいと感じました。」(閑歳氏)

Zaim 社ではその後も増加するユーザー数に併せ、サービス基盤の増強がなされました。その過程で、さらにセキュアな環境への改善を目的として仮想プライベートクラウドの Amazon VPC への移行も行われました。また Elastic Load Balancing を利用した負荷分散、データ分析に Amazon Redshift も活用されています。また作業の自動化をサポートするために AWS Lambda の利用も開始されています。

「Web サーバー部分だけを他のクラウドサービスでとの提案を受けたこともあります。とはいえ、そうなると構成が複雑化し、結果的には管理や開発に手間がかかります。」(閑歳氏) 同一サービスの機能ついては AWS のサービスで統一することで、サービス基盤の構成がシンプルになり、開発、運用のトータルな面でメリットが高いと Zaim 社は判断しました。

データベースに選ばれた Amazon RDS は、Multi-AZ 配置で可用性構成も容易に実現可能で、自動でバックアップを取ることができる製品です。「データベースを落とさずにバックアップが取れるのは、止められない BtoC のサービスを展開する上では大きなメリットとなるため、この点でも AWS は圧倒的に便利です。」(閑歳氏)

Zaim 社のユーザー情報管理には、ユーザー ID をキーに MySQL のパーティショニング機能を用いデータベースのパーティション化が行われました。これはパーティションの数を増やすことで、ユーザー数が増えても迅速に情報にアクセスできるようにする工夫でした。しかし MySQL の性能的な限界が訪れ、パーティション数をこれ以上増やせないことが判明したことにより、新規登録したユーザーが、サービスを利用できなくなることが問題となりました。 この拡張性の問題解決ではデータベースを分割する方法が検討されました。

ちょうどその頃 Amazon Aurora のサービス提供が東京リージョンで開始されました。「Amazon Aurora は先行していた海外での評判も高く、データがどんどん増える場合に向いているとも聞いていました。」(閑歳氏)

最終的に Zaim 社は MySQL から Amazon Aurora へ移行することで、データベースの拡張性の課題を解決できると予測しました。さらに Amazon Aurora がデータの暗号化にも対応したこともあり、安心してユーザーのデータを格納できると判断できたのも Zaim 社にとって移行の決め手となりました。

現在、Zaim 社では、順次 Amazon Aurora への移行が実施されています。最初のフェーズの移行作業は、テスト期間を含めてもほんの 1 週間程度で終了したと言います。

「Amazon RDS の MySQL から Amazon Aurora への移行は本当に簡単でした。本番環境を止めずに移行できることも分かったので、今後は順次移行し Amazon Aurora に一本化する予定です。」(閑歳氏) Zaim 社における利用方法であれば、Amazon RDS の MySQL でできて Amazon Aurora でできないことは今のところないそうです。

Zaim 社では他の環境のデータベースサーバーの場合、CPU 稼働率は 30 % 程度で運用するのが普通だと考えられていましたが、Amazon Aurora のCPU 稼働率は 80% となっており、不安を感じていたと言います。しかし、AWS の担当者により Amazon Aurora では使えるリソースを活用してスループットを最大化する設計となっており、CPU 使用率が高いことは問題ないことが伝えられ、現在では余裕を持って運用が行われています。

「この CPU 稼働率の高さは、必要なリソースサイズを抑えることにつながります。これはコスト削減にもつながるだろうと期待しています。」(閑歳氏) 運用管理面では CPU 稼働率よりもリード回数や同時アクセス数などを重視して監視するようになりました。

Zaim 社にとって Amazon Aurora でのもう1つの効果は、可用性構成をシンプルにできることでした。MySQL の場合に可用性を確保するには Multi-AZ で 2 台、スレーブ用に 1 台でサーバーは 3 台構成が基本となります。「Amazon Aurora ではもともとデータの可用性が確保されているので、台数を減らしても同等の可用性が確保できます」(閑歳氏)

また、Amazon Aurora は利用しているデータ量に対する従量課金となっているため、プロビジョンするストレージ容量や IOPS を気にする必要がなくなったことも、Zaim 社にとって移行のメリットとなっています。

「Amazon Aurora で必要な性能も十分に得られています。今後ユーザーが 1,000 万に増えても今のところなんら心配はありません。性能が必要になればスケールアップでリソースを追加すれば良いでしょう。さらに性能が必要な場合に備え、データベースを分割する方法はすでにテスト済みです。」(閑歳氏)

Zaim 社では今後顧客の満足度のさらなる向上のために、ユーザーがどのようにサービスを利用しているかを分析し、その結果をサービス品質の向上に利用することを検討しています。そのため、Amazon Redshift の利用を拡大していくことが検討されています。Amazon Redshift の利用拡大のためには、エンジニアではないビジネス部門の担当者も簡単に操作できる分析環境も求められます。これについては、クラウド上の BI ツールである Amazon QuickSight に期待がかかっています。

「Amazon QuickSight のようなものがあれば、マーケッターも自分で必要な数字を出せるようになるでしょう。こういったサービスが増えてくれば、エンジニア以外への AWS の利用が広がると思います。」(閑歳氏)

さらに、「すべてをエンジニア経由ではなくノン・エンジニアでも便利に使える、AWS のサービスとしてそういったものが今後はどんどん増えて欲しい。」と閑歳氏は期待を寄せています。