実名の口コミによるグルメ情報サービスを運営するRetty(レッティ)。2010年に創業し、2016年7月時点で利用者は2200万人を超える。成長の原動力となっているのが、2011年のサービス提供開始から、基盤として利用し続けているAWSの存在だ(図1)。

図1 2200万人ユーザーのグルメサイトを安定運用する工夫を凝らす
図1 2200万人ユーザーのグルメサイトを安定運用する工夫を凝らす
[画像のクリックで拡大表示]

 同社CTO(最高技術責任者)の樽石将人氏は、「利用者数が100万人規模と1000万人規模の時では必要なシステム構成は異なる。利用者の増加に応じて、適切なAWSのサービスやシステム構成を見直し続けてきた」と、成功の秘訣を明かす。

 利用者数が100万人以下だったサービス提供開始当初は、サーバーにEC2を利用していたもののオートスケールの仕組みは無かった。EC2のインスタンス数は「必要に応じて手動で増やしていた」(同)。

 利用者がGoogle検索などから一度表示したHTMLページをキャッシュする機能も、限定的かつ単純な仕組みだった。

障壁(1)
SEO対策が奏効し利用者増 DBやWebサーバーの負荷大

 状況が変わったのは2013年の夏からだ。「WebサイトをリニューアルしてSEO(Search Engine Optimization)対策を実施したところ、半年で利用者が100万人に達した」と樽石氏は話す。

 利用者数の増加に伴い、リレーショナルデータベース(RDB)やユーザー向けサイト用サーバーの負荷が高まった。データベースはEC2にMySQLをインストールした。オートスケールの仕組みは無かった。

 ユーザー向けのWebサイトはPHPで開発。グーグルで利用者がグルメ情報を検索すると、「恵比寿、イタリア料理」など検索ワードの組み合わせから、あらかじめ決められたURLを検索結果に表示する。URLがクリックされると、データベースに対し自動的にSQL文を投げる。

 データベースには最新の口コミや値段に関する情報、お店に行きたいと評価した人の数などのデータが格納されている。SQL文でデータベースから取り出した最新の情報を、HTMLページに埋め込んで利用者の端末に表示する仕組みだ。樽石氏によると、生成すべきページは「当時でも数百万ページはあった」という。

 利用者の急増によって「Webページにアクセスしようとしても正常に表示されず画面が白くなるなど、利用者にも影響が出ることがあった」と樽石氏は振り返る。

 2014年3月には利用者数が200万人に到達した(図2)。「100万人を超えた頃から不具合が増えていたが、200万人に達したところで完全に負荷に耐えられなくなった」(樽石氏)。

図2 AWSを使った継続的なシステム改善の主な経緯
図2 AWSを使った継続的なシステム改善の主な経緯
[画像のクリックで拡大表示]