事例紹介1

事例紹介1

  1. 案件

    システム基盤:ソーシャルゲームインフラ

     

  2. 概要

    今回弊社にて担当させて頂いたゲームは某プラットフォームにて短期間でランキング上位を獲得したゲームです。ゲーム開発初期であるプランニング段階より弊社はゲームインフラを任されることが決まっており、クラウド基盤選定より一任されました。当ゲームはリリース後、短期間で上位にランクインおよび安定的に月間数百万PVを超えており、同プラットフォームでは有数のヒットゲームとなっております。 

     

  3. クラウドインフラ選定までの経緯

    ソーシャルゲームのインフラを構築するにあたり特に求められた条件は、変化に対して迅速に対応できるかという事です。
    サービス開始前にはゲームのヒット性に依存するトラフィック量を予測する事が難しく、サービスインした後もイベントの開催や外部出稿による突発的なトラフィックの増大に対応しなければなりません。また、ソーシャルゲーム独特の性質として仕様の変更が激しいという特徴があります。この様な環境下でも極力ゲーム開発担当者には負担をかけず、変化に対して容易に対応できるインフラ基盤の選定が必要でしたが、結果的にAWSを選択することとしました。 

     

  4. 当ゲームインフラのポイント

    • 現在、数十台のゲームサーバーはElastic Beanstalkにより管理されています。サーバー負荷により予め設定したルールでオートスケールするゲームサーバに対し、ゲーム開発者は意識する事無くアプリケーションのデプロイを行う事が可能となりました。

       

    • このサービスではRDBを一切使用せずにNoSQL DBによりユーザーのデータを管理しています。AWSが提供するフルマネージドのNoSQL DBであるDynamoDBは、予めスキーマを定義する事はありません。ソーシャルゲームの様に仕様変更が多い場合、サービス提供中にスキーマの変更を行うことは容易ではありませんが、DynamoDBであればセーブデータの項目を増やすだけで実現可能です。また、保存データの自動分散や数ミリ秒台のレイテンシーの保証など、ソーシャルゲームのバックエンドとしては有効的です。

       

    • その他にも静的コンテンツを配信するCloudFront(CDNサーバ)、頻繁に使用されるデータをメモリ上にキャッシュするElastiCache(memcachedサーバ)など多くのAWSプロダクトをユーザビリティ向上の為利用しています。

       

    • 開発当初は開発会社内のPCリソースを使用し行っていたログ解析でしたが、ユーザーの増加に伴い処理時間が増大していました。そこでElastic MapReduceを利用して構築したHadoopクラスタ上でMapReduceを実行し、大量のログデータを処理するようにしました。Elastic MapReduceを選択することで、ユーザー数に応じて必要な数のマシンを必要な時間のみ解析に利用することができます。