概要
OpenFreeMapは過去10ヶ月で高い安定性とパフォーマンスを実現。 CloudflareとHetznerの協力で大規模トラフィックにも耐えるインフラ構築。 突如発生したWplace.liveからの膨大なリクエストで一時障害発生。 今後はrefererごとの帯域制限やサーバ設定の改善を計画。 プロジェクト支援をGitHub Sponsorsで募集中。
OpenFreeMapの運用実績と突発的なトラフィック増加
- OpenFreeMap の直近10ヶ月間の運用、安定稼働の実績
- Cloudflare による帯域スポンサーシップ、 Hetzner サーバの高い安定性
- Btrfs でのタイル配信と nginx の優れたパフォーマンス
- 予期しないトラフィック急増、 Wplace.live からのアクセス集中
- nginxログ で「Too many open files」エラー発生、サーバリソース逼迫
- Cloudflareダッシュボード で24時間に30億リクエスト、215TB転送量を確認
- サービス利用料換算で月額600万ドル超のコストインパクト
- ピーク時に毎秒10万リクエスト、驚異的な負荷
問題の原因と対応
- Wplace.live という新規コラボお絵かきサイトがOpenFreeMapを利用
- サイト側で1ピクセル/30秒の制限、ユーザーがスクリプトで大量アクセス
- Cloudflare のキャッシュが効いているため、サービス自体は大部分で稼働継続
- 96%が200 OK、3.6%が206 Partial Content(壊れたタイル)
- サーバ側のキャパシティを超えるアクセスに対し、 Cloudflareルール で一時的に遮断
- 今後のためにrefererやカスタムヘッダによる自動帯域制限を模索
Cloudflareとの連携と今後の改善
- Cloudflare が迅速に帯域スポンサー承認、技術サポートも提供
- CDNキャッシュ率99.4%、自前サーバも毎秒1,000リクエストを処理
- Wplace.live 開発者と連絡、2日で200万ユーザーの急成長を確認
- 自己ホスト型OpenFreeMap導入を提案、負荷分散とコスト削減を両立
- 3億リクエスト/200万ユーザー=1人あたり1,500リクエスト、通常ユーザーの数十倍
- サイト側の仕様がスクリプト乱用を助長している可能性
今後の課題と支援のお願い
-
refererごとの帯域制限 をCloudflareで実装予定
-
ネイティブアプリにはカスタムヘッダで識別を依頼
-
サーバ設定の見直しで空タイル問題を根本解決へ
-
OpenFreeMapのインフラ費用は月額約500ドル、全額寄付で運営
-
開発リソースは限られており、 GitHub Sponsors での支援を呼びかけ
- スポンサーはこちら: https://github.com/sponsors/hyperknot
学びと今後の展望
- 突発的な大規模アクセスにも耐えるアーキテクチャの重要性
- 事前連絡や協力体制の有無がプロジェクト全体の安定運用に直結
- サービスは引き続き無料・登録不要で提供、ただし健全な利用のための制限導入予定
- 新たな課題や学びについては今後も発信予定