SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2019】セッションレポート (AD)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

次のページ
アプリ・インフラの両面からアプローチした負荷対策

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2019】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11443 2019/03/20 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング