秒間 10,000 リクエストを "簡単に" いなすゲームサーバーを Laravel で作る設計 by やまゆ

PHPカンファレンス福岡2023
採択
2023/06/24 14:35〜
Fusicホール
レギュラートーク(30分)

秒間 10,000 リクエストを "簡単に" いなすゲームサーバーを Laravel で作る設計

akai_inu やまゆ akai_inu

1秒間に PHP が受信する HTTP リクエストが最大 10,000 回以上———

そんな世界が存在します。その一つが 「ソーシャルゲーム」 です。メンテナンスが明けた瞬間、イベントが始まった・終わる瞬間、様々なタイミングでゲームサーバーは瞬間的に高負荷になります。もちろん、サービスをリリースし PR をたくさん出し始めたその瞬間が、プロジェクトで最も高負荷となるでしょう。それらに耐えうるサーバー構成が求められていますが、「リリース直後にサーバーがダウンした」「限定イベントが始まったらすぐ緊急メンテナンスが始まった」という話はちょくちょく聞こえてきます。その 瞬間的な高負荷(いわゆる "スパイク") を耐えるには、事前準備を怠らないことが重要です。
ソーシャルゲームにおいては、他の Web アプリケーションに比べ 書き込みヘビーなワークロード であることが多いです。読み込みは比較的簡単に分散出来ますが、書き込みを分散することは容易ではありません。
そういった要件を達成するため、私のチームで行っている、 Laravel による高負荷を耐えるサーバー設計をご紹介したいと思います。

ターゲットユーザー

  • 高負荷案件でも Laravel は使えるの?と疑問に思う方
  • どのようにスパイクをさばいているのかを知りたい方