Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

「年末年始の高負荷」をどう軽減するか? モンストがアプリ・インフラ両面から挑戦した負荷対策【デブサミ2019】

【15-A-3】 モンスターストライクにおける負荷対策 ~エンジニアリングチームの挑戦~

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/03/20 12:00

 人気スマートフォンゲーム「モンスターストライク(以下、モンスト)」は、ゲーム内のイベントやキャンペーン開催時に、サーバーが高負荷になりやすい課題を抱えていた。特に年末年始においては、新年を迎える深夜0時のタイミングでアクセス数がピークを迎える。この課題を解消すべく、モンストのエンジニアリングチームは2019年元旦の高負荷に備えるための負荷対策を実施したという。本セッションでは、株式会社ミクシィ モンスト事業本部 開発室 室長 白川裕介氏が、彼らの取り組んだ施策の詳細を解説した。

目次
株式会社ミクシィ モンスト事業本部 開発室 室長 白川裕介氏
株式会社ミクシィ モンスト事業本部 開発室 室長 白川裕介氏

負荷対策のため、エンジニアリングチームがやれることを全部やる

 セッション冒頭では、モンストのアーキテクチャ構成についての説明がなされた。

 下図のとおりモンストでは、ユーザーからのリクエストを受け付けるロードバランサーがあり、後段にアプリケーションサーバーが配置されている。データベースはmaster・backup構成。非同期処理にはRedis+batchが用いられている。

モンストのアーキテクチャ構成
モンストのアーキテクチャ構成

 キャッシュ処理のためにMemcachedが多用されており、パケットをリレーするTurnサーバーによってマルチプレイが実現されている。監視システムとしては、Nagiosによるサーバー監視、Kibanaによるログ監視、CloudForecast、Grafanaによるモニタリングが行われている。

 自社データセンターのサーバーと複数のクラウド事業者のサーバーを併用するハイブリッド構成になっていることも特徴である。通常時、本番環境の稼働サーバーは約1000台もの規模というから驚きだ。また、自社データセンターを冗長構成にすることで、高い可用性・耐障害性を実現している。

 モンストのエンジニアリングチームはなぜ負荷対策を実施したのか。その理由を白川氏はこう語る。

 「モンストでは、コラボイベントや限定クエスト、限定アイテムの配布などのタイミングでサーバーが高負荷になります。事前にユーザーへの告知をしているため、そのタイミングで多くの方がログインされるからです。

 例年ですと、1年のうち、もっともアクセスが増えるタイミングは年末年始です。ちょうど新年を迎えたタイミングでアクセス量のピークを迎えます。なぜなら、0時から始まるガチャで強いキャラが出現することが、ユーザー間で認知されているからです」

 過去2年間の年末年始では、モンストのエンジニアリングチームは苦い思いを味わってきた。2016年末では、サーバー高負荷によってデータベースのスロークエリが発生してしまい、緊急メンテナンスを実施。2017年末では、緊急メンテナンスは免れたものの、アプリにつながりにくい状態が2時間程度も続いてしまった。

 「年末年始のタイミングで、ユーザーの方々にご迷惑をおかけしたくありません。これまでの反省を踏まえて、エンジニアリングチームでは2018年の年末に向けてやれることを全部やると決めました」


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:【デブサミ2019】セッションレポート

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5