全世界同時リリースする『マリオカート ツアー』の DB に Amazon Aurora を採用
高い品質が求められるゲーム配信基盤の運用工数を、大幅に削減
2020
Amazon Aurora を採用したことで、世界中に『マリオカート ツアー』を一斉リリースする際にも、余裕を持って DB のリソースが確保でき、パフォーマンスを落とすことなく、任天堂が期待する品質で配信することができました
府川 幸太郎 氏
任天堂株式会社
ビジネス開発本部 スマートデバイス事業部 部長代理
兼 事業システム開発グループ グループマネージャー
『マリオカート ツアー』のグローバルローンチに向けて浮上した DB に関する 3 つの課題
「関わるすべての人を笑顔にする」をミッションに、新しい娯楽体験の提供に挑戦し続ける任天堂。現在、基本戦略に「任天堂 IP (知的財産)に触れる人口の拡大」を掲げ、独創的な商品やサービスの企画開発を続けています。スマートデバイス向けゲームの開発も、ゲーム専用機以外の場で任天堂 IP に触れる機会を増やし、お客様との接点を増やすことで同社のビジネスを拡大するための取り組みです。これまで、その目的に沿って、2016 年春にリリースした『Miitomo(ミートモ)』を皮切りに、『Super Mario Run(スーパーマリオ ラン)』、『ファイアーエムブレム ヒーローズ』、『どうぶつの森 ポケットキャンプ』などのタイトルを、DeNA との協業によって開発してきました。
「DeNA との 5 つ目の共同開発になる『マリオカート ツアー』は、世界中のユーザーに最適な体験を届けるという考え方のもと、開発に着手しました」と語るのは、任天堂 ビジネス開発本部 スマートデバイス事業部 部長代理の府川幸太郎氏です。
開発において課題となったのがデータベース(以下 DB)です。大量のアクセスが発生しても快適に遊べるスケーラビリティ、ユーザー体験を損なわないパフォーマンス、サーバーとオペレーションコストの最適化が課題となりました。
「これまでは Amazon EC2 上に MySQL を構築して運用していましたが、スケールアウトやスケールインには人手による対応が必要で、エンジニアの工数が必要でした」(府川氏)マネージドサービスである Amazon Aurora を採用
任天堂と DeNA は DB を検討した結果、フルマネージドサービスの Amazon Aurora を採用しました。DeNA システム本部 IT 統括部の金子俊一氏は次のように語ります。
「Amazon EC2 上での MySQL による運用は、スキルの高いエンジニアにとっても、工数がかかる上に、一瞬も気が抜けないというプレッシャーもあり心理的な負担が高いといわざるを得ない状況でした。今後の展開を視野に入れ、運用負荷の軽減と、MySQL との互換性を重視して Amazon Aurora を選択しました」
DB 領域の開発は 2017 年夏からスタート。1 年ほどで検証を終え、運用テスト、負荷テストなどを経て 2019 年 9 月 25 日に配信をスタートしました。開発のポイントになったのが、スケーラビリティ、パフォーマンス、運用工数の低減でした。
DB のスケーラビリティは、Write と Read に分けて対策を実施。Write に関しては、予測の 3 倍のユーザーが受け入れ可能なクラスタを用意しました。
「想定外のアクセスに備えるために設定したのが 3 倍のキャパシティです。クラウドであれば不要になればすぐに止めることができるので、余裕を持ってリソースを確保することができました」(金子氏)
パフォーマンスについては、書き込み負荷の高いアプリを改修すると同時に、I/O 負荷を下げるチューニングを徹底しました。
DeNA システム本部 IT 統括部の土屋圭氏は次のように語ります。
「最も効果が大きかったのはプレイヤーのレース記録データの保存方法の変更です。データサイズが大きく、更新負荷が高くなるため、データストアを Amazon S3 に変更し、Amazon Aurora からオフロードすることで I/O 負荷を下げました」
運用面ではフェイルオーバーの仕組みを工夫して高速化。ダウンタイム 10 秒未満を実現し、過去のゲームと同等の品質を確保しています。
「Amazon Aurora により、コマンド 1 つでインスタンス操作が可能となり、フェイルオーバーや故障対応も自動化できました。結果として大幅に工数が削減でき、エンジニアは心理的な負担から解放されました」(金子氏)
「Amazon Aurora のサービスチームと AWS のアカウントマネージャー、ソリューションアーキテクトとコンテキストを共有し、付加価値の高いサービスを提供していただきました。活発な議論を交えることで、スムーズにプロジェクトを進めることができました」(府川氏)
リリース当日のクラスタ数は 600
インスタンスは 1,200 台を記録
本番リリース当日に使用した Amazon Aurora のクラスタ数は 600 で、インスタンスは 1,200 台。以降、世界中からトラフィックが集中し、Amazon Aurora 全体の 1 秒あたりのクエリ数は最大で約 30 万を記録、データ量も 1 ヶ月で 30TB まで達しました。「心配していたキャパシティも十分に確保ができ、爆発的にリクエストが来ても Amazon Aurora は安定したレスポンスを返し続けてくれました」(府川氏)。
『マリオカート ツアー』は順調にダウンロード数を伸ばしています。さらに 2020 年 3 月には、最大 8 人で対戦が楽しめる「マルチプレイ」機能を追加するなど進化を続けています。
「リリースから 1 年ほど経った現在もゲームサーバーは安定して稼働しています。新しい機能の追加などでダウンロード数やリクエスト数は急増するものの、問題は起きていません」(金子氏)
その他、DB の保守面やシステムのスケーラビリティで AWS の各サービスが貢献しています。
「Amazon Aurora と Amazon CloudWatch や Amazon Athena を組み合わせることで、監視やログ分析の自動化が進み、負荷の軽減につながっています。マネージドサービスを導入したコンポーネントではサーバーの負荷分散や、ストレージのキャパシティ管理からも解放されるため安心して運用ができます」(土屋氏)さらなる運用効率化に向け、フルマネージド化を目指しアーキテクチャを継続的に刷新
今回、モバイルゲームで初めて Amazon Aurora を採用した任天堂は、今後、作業工数などを考慮しながら、他のタイトルでも移行を検討していく考えです。
「エンジニアを運用作業から解放することで、より面白いゲームを考えるクリエイティブな時間が増えていきます。そのためにもマネージドサービスの力も借りて、アーキテクチャを進化させていきます」(金子氏)
「DeNA、AWS、任天堂の 3 社がワンチームでプロジェクトを進めた結果、希望する品質のゲーム体験を世界中のお客さまに届けることができました。今後も 3 社でさらなる運用効率化を目指していきたいと思います」(府川氏)府川 幸太郎 氏
金子 俊一 氏
土屋 圭 氏
カスタマープロフィール:任天堂株式会社
- 資本金:100 億 6,540 万円
- 設立年月日:1947 年 11 月(創業 1889 年 9 月)
- 社員数:連結 6,200 名(2020 年 3 月末現在)
- 事業内容:家庭用レジャー機器の製造・販売
カスタマープロフィール:株式会社ディー・エヌ・エー
- 設立年月日: 1999 年 3 月 4 日
- 資本金: 103 億 9,700 万円( 2020年 3 月末時点)
- 従業員数:連結: 2,558 名(単体: 1,622 名)(2020 年 3 月末時点)
- 事業内容:AI 事業・研究開発、ゲーム事業、オートモーティブ事業、ヘルスケア事業、ライブストリーミング事業、エンターテインメント事業、E コマース事業、スポーツ事業、新領域・その他
AWS 導入後の効果と今後の展開
- 予測が難しいワークロードであっても、瞬間的なアクセス増大に対応できるデータベースリソースが利用可能(予測の 3 倍のデータベースリソースであっても確保可能)
- DB の I/O 性能を確保するため、プレイヤーのレース記録データのデータストアを Amazon S3 に変更することで DB の I/O 性能を確保といったチューニングのアドバイスを受けることが可能
- Amazon Aurora のフェイルオーバーを 10 秒未満で実現
- ゲームリリース初日のリクエスト急増時も安定したレスポンスを実現
- DB の運用工数削減とエンジニアの心理的な負担からの解放
ご利用中の主なサービス
Amazon Aurora
Amazon Aurora は、MySQL および PostgreSQL と互換性のあるクラウド向けのリレーショナルデータベースであり、従来のエンタープライズデータベースのパフォーマンスと可用性に加え、オープンソースデータベースのシンプルさとコスト効率性も兼ね備えています。
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) は、安全でサイズ変更可能なコンピューティング性能をクラウド内で提供するウェブサービスです。ウェブスケールのクラウドコンピューティングを開発者が簡単に利用できるよう設計されています。
Amazon S3
Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。
Amazon CloudWatch
Amazon CloudWatch は、DevOps エンジニア、開発者、サイト信頼性エンジニア (SRE)、および IT マネージャーのために構築されたモニタリング/オブザーバビリティサービスです。