「輪番アクセス」で予測不能な高負荷に備える
セッションの最後に廣田氏は、「輪番アクセス」の提案を行いました。システムの規模が大きくなると、新しい機能を追加する際の負荷テストが難しくなります。理想をいえば、本番環境と同じシステムがもう一つあれば、同じ条件での負荷テストを実施できます。しかし、コスト的にも運用管理的にも現実的ではありません。
現実的には、スケールダウンした環境で負荷テストを行い、その結果に係数をかけるのが一般的だと思われますが、規模が大きくなると単純計算では成り立たなくなると廣田氏は指摘します。このため、新しい機能の追加やイベントを実施するときの負荷予測は難しいものがあるのです。
最近では、過去の実績や各種パラメータ(CPU Usage、Disk I/O、DBサイズ、バイナリログなど)から総合的に判断して既存のシステムで対応できるか、システム増強を行うかを判断しているという廣田氏。こうした経験を重ねていった結果、リリース直後にパンクするようなケースは大分減ったといいます。しかし、それでも予測できなかったケースはあります。
そういった不測の事態が発生したときのために、輪番アクセスの仕組みを仕込んでいるといいます。輪番アクセスとは、エンドユーザーをIDからいくつかのグループに分け、定期的に利用できる範囲を変えていくという方法。この仕組みによって、サービスの開放率をコントロールできるようになります。
ゲーム全体へのアクセスだけでなく、特定の機能などに輪番アクセスの仕組みを導入するケースもあります。システム上の何かがパンクした場合、ボトルネックとなっているパラメータのグラフを見ながら、この開放率をコントロールしてピークをしのぐことができるのです。
まとめ
以上、Developers Summit 2012で講演されたソーシャルゲーム制作・運営における技術ノウハウの一部をご紹介しました。大規模ソーシャルゲームの裏側が、実に着実な技術の積み重ねて構築されていることがご理解いただけましたでしょうか。ソーシャルゲーム業界は、現在もっともエンジニア魂を刺激する技術的なチャレンジの尽きない領域の一つだと言えるでしょう。