한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › L13 サーバー構成と運用

大量のマクロ・ボット Bots and macros

原因ID in-bots · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・ネットワークインフラ

図と実験のあるメインページでこのカードを開く →

ボットは人よりはるかに頻繁にリクエストを送り、サーバーのスループットを食いつぶします。

なぜ 狩り・移動・取引を休まず繰り返すボットが大量に接続 → すると サーバーの処理量とDB負荷が増加 → 画面では 特定の狩場やサーバー全体が重くなる(スローモーション・入力遅延)

症状
スローモーション, 入力遅延
要因
ストール
誰に起きるか
サーバー全体, 特定の場所・チャンネル
いつ
常に, 夜のピーク時間帯
担当
主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・ネットワークインフラ
ゲーム開発チームの対応
ボット検知、アカウント・キャラクターごとのリクエスト頻度の制限。
インフラチームの対応
IPごとの接続・リクエスト頻度の制限(ネットカフェやモバイル回線は複数人が1つのIPを使うので余裕を持たせる)、ファイアウォール・WAFでボットのアドレス帯を遮断。
グラフでは
一部だけ高い · アカウント・IPごとの毎秒リクエスト数
確認箇所
ゲームサーバーのログで、アカウント・キャラクターごとの毎秒リクエスト数の分布と上位リストを確認。コード側のメトリクスがなければ、ファイアウォール・WAFのIPごとのリクエスト数
該当する場合
少数のアカウント・IPが人間には不可能な頻度で休みなくリクエストしており、それらを制限するとサーバー負荷が目に見えて下がる
該当しない場合
リクエストがアカウント間で均等に分散していれば、通常の人数増加側(ティックバジェット超過、オートスケーリングの遅れ)
確認手段
ゲームサーバー・クライアントのログ・メトリクスが必要

出典

  1. Using rate-based rule statements in AWS WAF AWS
    IPなどのキーごとにリクエスト数を数え、決めた時間枠内で多すぎればレート制限
  2. RFC 6269: Issues with IP Address Sharing IETF
    複数の契約者が1つのIPを共有していると、IP単位の遮断・制限がほかのユーザーまで巻き込む

あわせて読みたい原因

同じ層:L13 サーバー構成と運用

同じ症状(スローモーション)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る