スタディプラス株式会社は、学習管理プラットフォーム「スタディプラス」を中心に事業を展開しています。教育系スタートアップとして、”EdTech” という言葉がまだない時期から、一貫して「IT の力で学習の継続を支援すること」を追求してきました(学習は継続することが非常に重要であり、同時に大変難しいものです)。

2012 年 7 月にローンチされた「スタディプラス」は、2014 年 10 月現在ではユーザー数 80 万人を超え、日本の受験生の 4 人に 1 人以上が使う勉強系アプリとなっています。
ユーザーは、学習記録のスタディプラスに投稿してグラフとして可視化したり、友だちと共有したりすることで、学習すること自体のモチベーションが楽しく保てるようになります。また、2014 年 5 月に無料一般公開された StudyplusAPI では、他社様や一般の方が開発された多くの教育系/教材アプリと連携させていただいており、それらの各教材アプリを使って勉強した結果は自動的にスタディプラスに投稿されます。

スタディプラスは、ユーザには自学自習を支援しながら勉強友だちを見つける場を提供し、教材アプリの開発者には利用継続率の向上効果や露出の場を提供する、まさに学習管理プラットフォームという位置づけのサービスです。

ビジネス開始の最初期には VPS を利用してサービスを運用していました。しかし、日々の仮説検証サイクルを回すための MVP を素早く構築/破棄することが難しかったり、サービス自体の成長が加速して安定した規模の見積が難しくなってきたり、といった問題が次第に生じてきました。

こうした問題に伴い、新たなインフラとして別の VPS やオンプレミスとの比較検討も行いましたが、当時、当社には基本的にインフラエンジニアがいなかったため、ハードの選定や固定的なサーバーの維持管理などの経験、勘所はまったくありませんでした。

その頃、AWS のスキルを持つエンジニアが join したこともあり、AWS クラウドの導入検討を開始しました。

検討した結果、AWS であれば、自分たちの得意分野であるプログラマブルな制御をすることができ、スペック・台数をいつでも柔軟に変更することができるという点で、技術的に大変魅力的だと感じました。料金面でも、どちらの方向にどれだけ転ぶかわからないビジネスを前に、まずはカジュアルに最低限の投資でスモールスタートすることができる点を評価しました。AWS を検討すると同時に他社のクラウドサービスとの比較も行いましたが、サービスローンチ時点では機能の豊富さや情報の多さ、自社メンバーのスキルセットなどから見て、AWS の方がメリットが大きいと判断し、採用することを決定しました。

AWS の利用歴としては約 3 年ですが、中でもスタディプラスのシステムには全面的に AWS を使っています。現在、AWS 上では、Linux, Scala, Ruby on Rails, MySQL, Redis, Solr などを使用してシステムを運用しています。

jp_diagram_studyplus_1024x1018

まず「スタディプラス」の傾向として、毎日のアイドルタイムとピークタイムの時間帯が規則正しく、またその幅がかなり大きい(アイドル:ピークのインスタンス数比は 1:10 ほど)ということがあります。そこで非常に大きくコスト削減に効果を発揮するのが Auto Scaling やリザーブドインスタンス、スポットインスタンスの活用でした。ある程度ユーザー数が増え、そういったサービスの傾向が見えてくるまではインスタンス数も固定(常に n 台起動)で使っていた時期がありましたが、今ではとてもそんな運用は考えられません。

このような利用方法にしてから、実際に 2014 年 10 月時点でのサービス規模において、仮にリザーブドインスタンスや Auto Scaling 等を全く使わない場合とフル活用した場合とで比較すると、月額にして実に数十万円~100 万円超の差になります。我々のようなスタートアップにとって、これはまさに死活問題といえる非常に大きな額であり、活用しない手はないと考えています。

また、Auto Scaling は可用性の面でも大いに役立ってくれています。過去に AppStore の特集枠で iOS 版スタディプラスを数週間取り上げていただいた際に、それまでの数倍以上のペースでユーザ数が増える現象が起きたことがあるのですが、当初懸念していた負荷的な心配についても、結果的には普段通りの Auto Scaling 設定に最大インスタンス数を増やす程度で対応することができました。

 

素早いリリースサイクルを実現

AWS を利用してから、サービスリリースも素早くできるようになっています。現在、当社のシステム構築方法は大きく分けて AWS Elastic Beanstalk を使うパターンと、自前の設定管理ツールを使って Amazon EC2 上のインスタンス群に直接アプリケーションをデプロイするパターンの二つがあります。そのどちらにも言えることですが、パターンとしての再利用性、汎用性が非常に高いので、新しいサービスのリリースを行う際も、インスタンスタイプや Auto Scaling のパラメータを要件に応じて調整する程度の環境構築で済むため、リリースまでの時間をとても短くすることができます。

さらに、Amazon S3 の静的 Web サイトホスティング機能と Amazon Route53 の組み合わせを先日初めて使う機会があったのですが、独自ドメインでのサイト公開までが非常に簡単で驚きました。各種の企画で静的なページを公開する機会がしばしばあるのですが、同様のアーキテクチャ(Amazon S3 + Amazon Route53)を使えば、文字通り数分の作業時間でサーバサイドの諸々が準備できるようになり、大変助かりました。

 

現在、Redis, Solr などを Amazon EC2 インスタンス上に自前で起動して使っていますが、今後これらを Amazon ElastiCache, Amazon CloudSearch などのマネージドサービスに移行していきたいと考えています。その他、Amazon Redshift, AWS Directory Service などの利用を検討中です。

 

- スタディプラス株式会社 CTO 塚田 朗弘 様