アイキャッチ

「幾多の修羅場を乗り越えた」ユーザー数4900万人突破の『モンスト』インフラ開発チームが明かす高負荷対策メソッド

ITニュース

    「多くの方々に利用されるサービスの運用に携わっているエンジニアなら、不測の事態に備えて、“奥の手”をいくつか準備しておくべきです。そうでないとユーザーの皆さんの期待を裏切る結果になってしまうかもしれません」

    そう語るのは、ミクシィのXFLAGスタジオが手掛ける人気のスマホゲームアプリ『モンスターストライク』(以下、モンスト)の運用に携わる吉野純平さん。吉野さんは2008年に新卒でミクシィへ入社し、2013年からはインフラ開発グループのマネジャーとして、複数の新規事業開発と並行してモンストの運用に携わるネットワークエンジニアの1人だ。

    モンストのリリースは2013年10月10日。現在までに世界で4900万ユーザー(2019年1月現在)に利用されている。最近ではスマホの画面から飛び出し、アニメやeスポーツの競技種目としても親しまれているモンストだが、これほどの人気を獲得するまでには、いくつもの紆余曲折があったという。

    アクセス集中を乗り切った今回の年末年始

    「モンストの運営にはソーシャル・ネットワーキング サービス『mixi』で培った高度なサーバ運用技術が活かされてはいたものの、爆発的なユーザー数の伸びに対処するのは至難の業でした。サービスの安定稼働を使命とする私たちも、幾度となく大きな“修羅場”に直面しています」

    株式会社ミクシィ 開発本部 XFLAG事業推進室 インフラ開発グループ 吉野純平さん

    特に厳しかったのは、3周年記念イベントがあった2016年の10月だった。

    「モンストのトラフィックは、新キャラクターの登場やガチャイベントなどが重なる周年イベントや年末年始に増大するのですが、この時は、サーバやネットワーク帯域を手厚くしたにも関わらず、事前の予測値を大きく上回るアクセスが集中し、遅延やエラーを頻発させてしまったのです」

    ちょうどこの年の前半、それまでクラウド上で運用していたモンストのデータベースサーバやアプリケーションサーバを自社データセンターに移管し、クラウドとオンプレミスを併用するハイブリッドクラウド体制でサービスを運用し始めたばかりだった。レイテンシの影響度合いの考慮不足やクラウド接続の最適化不足も影響した。

    2016年からは、オンプレミスと複数のクラウドサービスを使いわけるマルチクラウド体制へとサービス運用体制を変更したこともあり、その年の年末年始に向けて用意周到な準備を重ねたという。

    「たとえば、クラウドとの間のレイテンシを下げることに力を入れています。レイテンシの低下は処理するサーバ間の通信時間を短縮し、レスポンス性能に大きく寄与します。多様なクラウドと接続しながらも性能を向上させるために、通常ならネットワーク機器ベンダーしかやらないようなトンネリングを行うパケット変換プログラムも自分たちで書きました。また開発グループやSREグループでは、データベースサーバへの負荷を分散させるテーブル分割やシャーディングも検討実施し、通信回数を減らすなどの技術的な取り組みを実施し高負荷対策に臨みました」

    そうした努力をはじめとし、1つずつ目の前のトラブルに向き合ってきたと吉野さんは明かす。

    「2018年から2019年にかけても一時的にログイン処理が重くなったり、遅延が生じたりした場面がありましたが、過去に潰したボトルネック対策がうまく機能したこと、複数の通信リクエストを 1つにまとめて通信量を減らしたこと、新たなデータベースの分散を実施したことなどの要因から、潤沢な帯域や計算リソースの確保ができたことは良かったです。数年前であれば大晦日から元旦の夜が明けるまでは気が抜けなかったものですが、今回は深夜2時前には、深夜メンテナンスの当番を担ってくれたネットワーク運用メンバーを仕事から解放できたので、まずまずのできだったと思います」

    大切なのは周到な事前準備と冷静さ

    準備に準備を重ねても、想定外のトラブルが起こることもある。吉野さんは増大する高負荷対策に取り組んだ経験を通じて次のようなことを学んだという。

    株式会社ミクシィ 開発本部 XFLAG事業推進室 インフラ開発グループ 吉野純平さん

    「冒頭にも申し上げた通り、事前に起こりうる事態を想定しておき、事前にシステムやプロセスに『これさえやれば危機的な状況を脱することができる』と自信を持っていえる“奥の手”を練り込んでおくことがとても重要です。それがないとどうしても場当たり的な対処しかできませんし、最悪の場合、二次的被害を引き起こしてしまうかもしれません」

    シミュレーションと事前準備は周到に行うべきだが、それに輪をかけて大切なのはトラブルに直面してしまったときの心構えだ。

    「いくら経験豊富なエンジニアでも慌ててしまっては有効な手は打てません。起こってしまったことは仕方がないので、バックエンドエンジニアがサービスを守るためにすべきことは、まずは落ち着くこと。こうしたトラブルに見舞われると一刻も早く復旧しなければと考えがちですが、実際にはユーザーに迷惑をおかけてしまう時間が多少延びたとしても選ぶべき選択肢がある場合も少なくありません。こうしたジャッジを下すには、勇気がいるものなので、やはり冷静になることはとても大事だと思います」

    原因追及は状況が落ち着いたら時間をかけて検証を行い、同じ過ちを繰り返さないことが大事なのはいうまでもない。

    「モンストを楽しんでくださる4900万ユーザーのために、私たちはソーシャル・ネットワーキング サービスやソーシャルゲームで培った技術的な知見やノウハウをモンストに注ぎ込むことで、アクセスが集中しても安定してプレイしていただける環境を実現することができました。とはいえ改善と品質向上には終わりがありません。今後はさらに効率化を進めて、よりさらに優れたサービス品質を出せるよう努力しなければと思っています。具体的には、ネットワーク構成の見直しやピーク負荷に対応するための仕組みの再検討を行いたいと考えています。これから登場する新しいゲームや新規事業にもこうした経験を活用していければうれしいですね」

    ソーシャルゲームに限らないことだが、あらゆるサービスはユーザーに違和感や不信感を抱かせることなく利用してもらうのが一番だ。モンストのよどみない動作と滑らかで美しいグラフィックの裏には、吉野さんをはじめとする多くのエンジニアたちの努力が隠されている。

    株式会社ミクシィ 開発本部 XFLAG事業推進室 インフラ開発グループ 吉野純平さん

    取材・文/武田敏則(グレタケ) 撮影/赤松洋太

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集





    サイトマップ