モバゲーオープンプラットフォームに挑戦!――面白法人カヤック流モバゲーオープンプラットフォーム企画と開発のイロハ

第3回 安心!お手軽!クラウドで始めるモバゲーアプリ AWSの魅力

この記事を読むのに必要な時間:およそ 3 分

モバゲーアプリの話のはずなのに。。。突然質問“AWS”ってご存じですか?

AWS(Amazon Web サービス)とはAmazonが提供する開発者向けサービスの総称です。

AWS
URLhttp://aws.amazon.com/

AWSには各種のサービスが提供されていますが,ここでは主に「クラウド」として知られるEC2などのサーバ関連技術に関して説明したいと思います。

EC2は簡単に説明すると「サーバの時間貸し」のようなもので,初期費用0円で必要な台数を必要なだけいつでも数分のうちに借りることができるという画期的なシステムです。

携帯サービスの強い味方!AWSの魅力

「なぜモバゲーアプリの説明にAmazonの説明が出てくるのか?」と思う方もいらっしゃるかもしれませんが,現状1から巨大な携帯サービスを立ち上げる際のサーバ環境として,AWSという選択肢は非常に有力なものになっています。

その理由として携帯サービスの場合,ヒットした際のサーバ負荷がPCサービスと比べて逼迫する場合が多く,⁠サービスがヒットするとサーバリソースが不足し,サービスがヒットしないと確保していたサーバが無駄になる」という状況に陥りやすくなります。

また,⁠公開初日は日に1,000万PVあったが,一週間後は日に100万PVしかない」という状況になった場合,既存のレンタルサーバでは「増設を依頼している間にPVが下がってしまい,結局増設したサーバが無駄になった」ということも発生してしまいます。

この点AWSを使用するのであれば「公開の数時間前に100台用意して,公開後様子を見ながら1時間ごとにサーバを減らす」といった対応が可能となり,サーバリソースに関しては事前見積もりの必要性が大きく下がります。

また,AWSの利点として,サーバの内部に関しては通常のレンタルサーバ等と近い環境であるため,GAEなどと比べて「既存の開発手法を流用しやすい」⁠他に魅力的なサービスが出てきたときに移行しやすい」と言う点も上げられます。

AWS自体,通信速度等において既存のサービスと比べて問題となる点はありますが,一方で内部のサービスが既存のアプリケーションと近い構成で開発できるため,他の魅力的なサービスが登場した場合そちらにまるまる移行するといった対応が行いやすくなります。手軽で簡単に導入できるとはいえ,ゲームの内容如何により使用するサービスが異なったり,いざ導入しようとすると企業によっては見積もりの算出が必要だったり,という課題も浮上します。

そこで実際にAWSでWebサービスを構成する場合に検討すべきサーバの基本構成から,クラウド導入時に問題となりやすい費用計算,そのほかAWS特有の問題点を紹介します。

実際何を選べばいい?Webサービスを提供するときの基本構成

まずはAWSで選択できるサーバに関して紹介します。

AWSでは必要に応じて使用するサーバを選択でき,性能に比例して1時間あたりにかかる費用も高くなっていきます。サーバには大きく分けて32bitと64bitが存在し,同じbit数のサーバであれば比較的簡単に別の性能のサーバに乗り換えることができます。

32bitサーバ
Small
High-CPU Medium
64bit
Large
Extra Large
High-CPU Extra Large
High-Memory Double Extra Large
High-Memory Quadruple Extra Large
各サーバの具体的な性能,価格に関してはAWSのEC2ページをご覧ください。

それでは実際にサービスを提供する場合,各役割ごとに選択肢となるサーバの構成を紹介します。

Webサーバ

構成が単純なゲームの場合32bit High-CPU Medium,複雑なゲームの場合64bit High-CPU Extra Largeをおすすめします。単純なゲームは後々PVが下がっていく可能性が高く,状況に応じて32bit Smallでの運用に切り替えて費用を抑えることもできる32bitは小回りがきく点で魅力となります。

構成が複雑なゲームの場合,32bitではCPU負荷的に台数が多くなりすぎるため64bitでまとめてしまった方がいいでしょう。

DBサーバ

弊社では簡単サービスの場合は1台のRDSに共存,複雑なゲームの場合は64bit High-Memory Double Extra Largeをマスターとするレプリケーション構成で使用しています。

RDSとはAmazonの提供するMySQLのクラウドサービスのことで,通常のEC2サーバにMySQLを導入する場合に比べて容易にMySQLサーバを立ち上げることが可能です。

RDSの利点として,⁠設定が容易なこと」⁠⁠AWSのSecurity Groupsと連携できること」⁠⁠容易にスケールアップができること」⁠⁠バックアップ,スナップショット等の環境が用意されていること」等があげられますが,⁠OS自体のエラーログが見られない」⁠⁠レプリケーションができない」⁠⁠設定の変更にInstance rebootが必要」⁠⁠バックアップが遅い」⁠⁠週一のメンテナンス時間が必須で無停止にできにない」等の問題があるため,DBが重要となるゲームにはあまりおすすめしません。

memcached

複雑なゲームの場合でも32bit Smallの複数台構成で運用可能です。

memcachedはCPUの要求が低く,32bit Smallでも1.7GBのメモリがあるため,かなりのPVであっても32bit Small数台である程度カバーできます。

ロードバランサ

弊社ではすべてElastic Load Balancerを使用してWebサーバをバランスさせています。

Elastic Load BalancerとはAmazonの提供するロードバランサのことで,通常のEC2サーバにApache等を導入してロードバランサとして利用する場合に比べて容易にロードバランスを利用することが可能です。

大きなサービスの場合Webサーバのメモリ使用量を減らすため,静的なファイルを配信するhttpdと動的な内容を処理するhttpdを分ける場合もありますが,携帯サービスの場合静的なファイル量が多くないことや必要に応じてS3やCloud Frontを使用することで対応は可能となります。

著者プロフィール

吾郷協 (あごう きょう)

面白法人カヤック技術部JavaScript系プログラマ。主にPC版mixiアプリのJavaScript,AWSを利用したインフラ周りを担当。http://tech.kayac.com/ではagoで執筆。

URL:http://www.kayac.com/member/ago

twitter:http://twitter.com/kyo_ago

コメント

コメントの記入