古戦場とともに成長してきた「グラブル」のシステム管理
「グラブル」の愛称で親しまれ、多くのファンを持つ「グランブルーファンタジー」。いわゆる「王道スマホ系RPG」として、2014年3月のローンチ以来、累計登録者数は2500万人を超え、成長し続けてきた。頻繁にアップデートが行われ、仲間のキャラクターは590人以上、武器は2000種類以上を実装し、イベントも定期的に開催している。イベントの中でも定番になっているのが「決戦!星の古戦場」と呼ばれるイベントで、このイベントは期間限定で登場する「イベントボス」を撃破して獲得した貢献度と呼ばれるポイントを競い合うもの。勝敗に応じて勲章などの報酬が与えられるため、集中してゲームを行う人も増える。
そんな人気ゲームのサーバーは一般的なLAMP環境で運用されており、1日15億ものリクエストに応え続けてきた。小松氏は「私たちは安定したサービス環境を提供するためにさまざまな工夫を行ってきた。それはユーザーに快適に楽しんでほしいとの一念によるもの」と語る。
ちなみに1日15億という数字が生み出されるのは、「グラブル」がユーザーの操作のたびに通信が発生する「ブラウザゲーム」であることも大きい。
とはいえ、1日15億リクエストという数字は、あくまで平常運転時のもの。先述した「決戦!星の古戦場」など人気の定期開催イベントでは、1日に40億リクエストを超えることも少なくなく、瞬間的には1秒間に28万リクエストに上ることもあるという。
この「決戦!星の古戦場」開催時の状況をサーバー側から見てみると、イベント開始直後からリクエストが急増し、イベントのピークタイムでは28万リクエスト/秒に達している。この時は想定以上のリクエストの集中で、ロードバランサーのCPU使用率が100%に到達し、急遽L7のロードバランサーからL4に切り戻して対応することとなった。また、発行クエリが多すぎて、MySQLのメモリが枯渇しそうになる危機にも陥るなど、さまざまな問題が次から次へと起きる状況下で「古戦場」とともに成長してきた。
小松氏は「思いも寄らない問題に対し、『観測と予測』によって少しでも早くトラブルに気づき、できるだけ早くボトルネックを取り除くことが大切」と運用のポイントについて語った。
想定以上を乗り切るための「サーバー運用の3本柱」とは
それでは具体的にどのような運用体制で、秒間28万リクエストにもなるイベントを乗り切るのか。小松氏は、「万全の準備」「見守り(モニタリング・挙動確認)」「トラブル対応」の3つを三本柱として挙げ、「どれが欠けても十分な対応ができない」と強調する。
まず「万全の準備」については、「変化を予想し、備えること」が大切だ。前回のイベントで乗り切ったとして、そのまま次を迎えてはならないという。つまり、前回観測された各種情報(ユーザー数の変化や遊び方の変化など)を見て、過去6年間の傾向から変化を予測し、必要な対応を決める。そして、その想定値に対し、計測を交えながら検証を繰り返し行っていく。
例えば、次のイベントの最大リクエスト数を予測するにあたっては、前回開催のリクエスト数とユーザー数と比較し、現在のユーザー数やユーザー層などの差異、日程・ゲーム編成の差異によるサーバーの負荷の変化などを加味して考えていく。
次に「見守り」については、開催中のモニタリングであり、挙動確認のことだ。ここで最も大切なのは「課題を見落とさないこと」だという。まず、機能面の見守りとしてサービスの不具合に気づくこと。そして、負荷の見守りとして、瞬間的な事象やトレンドの観測を行い、不具合の迅速な修正や改善点の報告へとつなげていく。
どのようにして課題を見落とさないようにするのかについては、長くなるため割愛するとして、参照記事として「Developers Summit 2017」の講演「監視・解析ツールから読み解く!トラブル対応&負荷対策」のレポートが紹介された。
なお具体的には、下記のツールが実際に見守りに使われているという。
サーバー全体は「Mackerel」、エラーの傾向などは「Kibana」、APIごとのトレンドや詳細などは「New Relic」、データベースの瞬間的な動向は「Percona Management Monitor」を活用している。また、ある程度自動化し、課題を見落とさないようにしているという。
そして、3本目の柱「トラブル対応」について、小松氏は「どうしても予測できないトラブルはあるが、ユーザーさまにゲームを楽しく遊んでいただくことを重視し、たとえ障害発生時でもユーザーへの影響を最小にし、迅速に障害を取り除きたいと考えている」と語る。
そのために、「事象・ユーザー影響の把握」「チーム内での情報の共有」「問題の切り分け」「作業の分担」といった4つのステップをスムーズに行うことに心を砕いているという。「当たり前のことを徹底的に行うことが何より重要」と小松氏は力を込めて語った。