3周年当時の失敗を受け、4周年を迎えるときは一連の問題に対策してイベント開催に挑んだ。例えばシステムを動かす前に必要なデータを圧縮することでサーバに掛かる負荷を減らした他、CDNのリクエスト数の上限も拡大した。
当時講じた対策は他にもある。まず、ゲーム内でユーザーがアイテムを受け取る「プレゼントBOX」について、履歴を削除する操作を一時的に無効化した。サーバへの負荷が大きく、障害の原因になる可能性があったという。
負荷分散を行えるAWSのロードバランサー「Elastic Load Balancing」も使用した。通常は負荷の上昇に合わせて段階的に負荷分散していくところ、事前にAWSと相談し、あらかじめ許容量を上げて挑んだ。
しかし、4周年当日も、3周年当日と同様、アクセス障害が発生。緊急メンテナンスを実施せざるを得なくなった。原因は「想定外の見落とし」だったと常山さん。対策とは関係のないところに、問題が隠れていたという。
Craft Eggが見落としていた問題、それは過去に実施した不具合修正のミスだ。バンドリのiOS版では過去に、ゲーム向けソーシャル機能「Game Center」が原因で、データの引継ぎができない不具合があった。
この不具合を修正した時に、データベースから特定の情報を検索する「インデックス」を設定し忘れており、結果としてデータを取り出す処理に問題が起きていたという。当時の障害は、このインデックスを設定し直すことで解決した。
常山さんは2度の障害について、根本的な原因は負荷試験の体制にあったと振り返る。そもそも3周年の時点では、開発チームに入ったばかりの人が多く、AWSでの負荷試験の経験者がいなかった。負荷試験の環境も整っていなかったという。その上で、ゲームの開発も並行して進めなければならず「頑張って進めることになった状態だった」(常山さん)。
結果として、負荷試験自体はできたものの、本番を想定した負荷を再現できず、アクセス障害につながった分析している。
4周年の時点では「端末引継ぎというノーマークだったところにボトルネックがあった。ガルパはリズムゲームなので、iPadやiPhoneなど、端末を切り替えて遊ぶユーザーが想定より多かった。全体的に負荷試験を実施しないとダメだと分かった」(常山さん)
一方、これまでの負荷試験は、環境を構築するのにコストや時間がかかり、頻繁な実施が難しかった。「定期的に実施するには、もっと短時間で構築できるやり方を模索しなくてはならなかった」(常山さん)
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR