1000万ダウンロード規模の「ロマサガRS」が障害を回避できた理由:「負荷テスト」や「自動復旧」を活用(1/3 ページ)
アカツキでエンジニアを務める駒井祐人氏が、スマートフォンゲームアプリ「ロマサガRS」でどのように障害を回避したのか紹介した。
2018年12月にスクウェア・エニックスからリリースされたスマートフォンゲームアプリ「ロマンシング サガ リ・ユニバース」(以下、ロマサガRS)。リリースから約3週間で1000万ダウンロードを達成したロマサガRSは、Amazon Web Services(AWS)のサービスをフル活用して構築。障害を回避して運用できているという。
ロマサガRSではどのようにシステムを設計し、どのように障害を回避したのか。ロマサガRSを開発したアカツキのエンジニアである駒井祐人氏が「AWS Summit Tokyo 2019」で語った。
ロマサガRSのアーキテクチャ
「ゲームシステムは最大ピークを見積もりづらい。公開されてからどれくらいのプレイヤーに遊ばれるか分からないからだ。これはサービス開始後も同様だ。例えば、ある日の正午にイベントが始まった結果、一時的にアクセス数が2倍に跳ね上がることもある。イベントなどに伴う急激なプレイヤー数の増加に合わせてスケールできるAPIやデータベース(DB)などを設計する必要がある」
駒井氏はゲームシステム開発の特徴について説明した後、ロマサガRSのアーキテクチャを振り返った。
ロマサガRSではサーバで実行する言語やミドルウェアなどの全プロセスをDockerコンテナで構築し、それらを「Amazon Elastic Container Service(ECS)」で運用している。
サーバはそれぞれ、イベント通知用のお知らせサーバ、ロジックを管理するゲームサーバ、認証用の認証サーバを用意。ゲーム内のプレイヤーデータはマネージドリレーショナルデータベースの「Amazon Aurora」を水平分割し、認証データは「Amazon DynamoDB」に保存、キャッシュには「Amazon ElastiCache(のMemcached)」を採用している。
「Kubernetesを実行するマネージドサービスの『Amazon Elastic Kubernetes Service(EKS)』を採用しなかったのは、構築当時に東京リージョンで正式リリースされていなかったからだ。一部のサービスではサーバレスでコンテナを実行できる『AWS Fargate』を採用したが、ロマサガRSのリリース当時のFargateは、スケールアウトにかかる時間が『Amazon EC2(Amazon Elastic Compute Cloud)』と変わりなく、ログ管理も『Amazon CloudWatch Logs』のサポートのみだった。運用のしづらさもあり、最終的にFargateをやめ、EC2とECSを活用する形を採った」
サーバサイドの開発言語はElixirを採用。並列性が高く、ゲームAPIを実現するには十分に高速だという。インフラ構成管理は「AWS CloudFormation」を、Ruby製のラッパーツール「Kumogata2」を用いて管理し、AWSで運用する各種サービスのインフラ環境を自動構築している。
「ゲームシステム開発では、『バトルの難易度調整用』環境など、複数の開発環境を用意する必要がある。ロマサガRSの構成だと、コマンド1つで同じ環境を構築できるため、環境間の差分が発生せず、構築に関する大きな問題も起きずに済んだ。Kumogata2を利用するのは、CloudFormationで条件分岐などのコードを書けるからだ。例えば、『ステージングと本番環境は冗長構成で、開発環境はシングルノードで十分』というときなどに、条件を変えて構築できる。構成管理がレガシーだと、環境変数の設定がおかしいままサーバを起動して運用しているケースも少なくないだろう。この構成ではそのような状況も起きないため、デプロイやスケーリングが安定している環境といえる」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 徳丸浩氏が誤解を指摘――Webサービス運営者が知らないと損害を生む「パスワード保護の在り方」
サイバーセキュリティの世界で取り上げるべきトピックは多々あるが、「基本的な守りを固める」ことも重要だ。2019年6月26日に行われた「@ITセキュリティセミナーロードショー」の中から、その際に役立つセッションの模様をレポートする。 - 青山Pが振り返る「ドラゴンクエストX」3つの失敗――消すつもりのコードが本番環境に
スクウェア・エニックスでドラゴンクエストXのプロデューサーを務める青山公士氏は「ドラゴンクエストX」の3つの不具合を振り返り、サービス開発、運用時の教訓を紹介した。 - 総視聴数7400万でも障害ゼロ、AbemaTVが72時間のライブ配信に成功した理由
AbemaTV社が開催した「AbemaTV Developer Conference 2018」で、サイバーエージェント 技術本部 インフラエンジニアの柿島大貴氏は、2017年11月に配信した「72時間ホンネテレビ」を障害なく実現するため、開発本部が取り組んだ施策について説明した。