世界を動かす技術を、日本語で。

責任を持ってダウンロードする

概要

  • OSMダウンロードサーバー のインフラ強化による高速化
  • 技術的変更 として「…latest」ファイルがHTTPリダイレクトに
  • 無責任な大量ダウンロード による影響と注意喚起
  • 利用者への具体的なお願い と推奨ツール紹介
  • サービス継続のための 責任ある利用 の重要性

ダウンロードは責任を持って!2025年10月9日 | Frederik Ramm

  • 今月、 ダウンロードサーバーのインフラ強化 による高速化・早期公開の実現
  • 「…latest」ファイルリクエスト時、HTTPリダイレクトで特定バージョンへ誘導する技術的変更
  • サービス継続のため、 「責任あるダウンロード」 を利用者へ要請
  • 全利用者が 最新のOSMデータへ簡単にアクセス できる環境維持を目指す運営方針

無責任な利用の事例と影響

  • 同一クライアントによる20GBファイルの数百回ダウンロード などの過剰利用事例
  • 例: italy-latest.osm.pbfファイルを24時間で約10,000回ダウンロード したユーザーの存在
  • 全ファイルを毎日ダウンロードするユーザー による帯域圧迫問題
  • ネットワーク帯域に限界 があり、過剰利用は全体の速度低下を招く
  • IP範囲のブロック時、無関係な第三者にも影響が及ぶリスク

利用者への具体的なお願い

  • 全世界データが必要な場合、分割ダウンロードではなくplanet.openstreetmap.orgのplanetファイル利用を推奨
  • 大規模地域(例:Europe, North America)を毎日更新したい場合、pyosmium-up-to-dateプログラムの利用を推奨
    • ローカルファイルの更新状況を自動判定し、 最新変更分のみダウンロード
    • 新規ダウンロードと比較して約98%の通信量削減、処理も高速
  • 自動化スクリプト利用時、動作監視やエラー処理の実装を徹底
    • 例: ディスク容量不足等で同一ファイルを何千回もダウンロード しないような設計
  • 全利用者の利便性維持 のため、節度ある利用の徹底

まとめ

  • ダウンロードサーバーの高速・安定運用 のためには、全利用者の協力が不可欠
  • 責任ある利用 が、誰もが便利にOSMデータを活用できる未来への鍵

Hackerたちの意見

確かに、BitTorrentの使い道はあるよね。

データが変わったら、トレントクライアントはどうやってそれを拾って変更をダウンロードするんだろう?

誰かがCIパイプラインでダウンロードしてるみたい。多分、知らずにね。だから、ほとんどのサービスは認証されていないユーザーの自動ダウンロードを禁止したんだよ。URLをcurlで使いたいなら、サインアップさせればいいし、ダウンロードしすぎるユーザーはブロックするか課金すればいいんじゃない?

CIは計算リソースの無駄遣いの一つだと思うけど、地図データがライブラリや他のコードと同じように乱用されるとは思えないな。

CIサーバーからのリクエストを確実に特定できるのかな?

GPKGファイルを「クエリ」するウェブアプリがあるんじゃないかな。Parquetは精密にクエリできるけど、GPKGでも同じことができるかはわからないな。

何か軽量な認証(APIキーとか、メールベースでも)を持つのはいい妥協だと思う。

ヘビーユーザーにはメール送ってるのかな?2012年に住所のジオコーディングにNominatimの無料APIを使った時、メールアドレスが必須パラメータだったんだ。そしたら、結果をキャッシュしてリクエスト数を減らすようにってメールが来たよ。

ログインがないから、メールアドレスも持ってないよね。

こういう問題を読むたびに、なんでみんなもっとBitTorrentを使わないのか不思議に思う。なんでもっと多くのものの基盤プロトコルになってないんだろう?コンテナレジストリとか、パッケージリポジトリとか。

いくつか考えられる理由があるね。1. BitTorrentは悪いイメージがある。ほとんどの人は違法ダウンロードと結びつけて考えてる。2. ちょっと複雑なファイアウォールのルールが必要で、ネットワーク管理者にそれを設定してもらうのは、理由1のせいでちょっと抵抗があるかも。非常に制限の厳しいネットワークでは、BitTorrentのせいで全く許可したくないってこともあるし。3. BitTorrentクライアントはHTTPクライアントよりも複雑で、ほとんどの会社のコンピュータやCIパイプラインにはインストールされてない(必要がないから、そしてまた理由1)。多くの人はただcurlして終わりにしたいんだよね。4. 多くの人がシードする必要があると思ってて、なぜかそれが怖いみたい。全体的に見て、理由1と、単にcurlしてすべてが動くっていう事実が大きいと思う。BTがどれだけ優れたファイル転送プロトコルか、そしてそれがどれだけ使われていないかを理解していないのが悲しいな。確か、あるゲームクライアントが裏でBTを使ってアップデートしてたのを覚えてるし、peertubeはwebtorrentを使ってるけど、残念ながらBTはあまり人気がないね。

単にhttpが持ってる「ユニバーサルクライアント」がないからだと思うし、devたちがssh/scpで持ってることが多いんだよね。そんなクライアント(自動化されたスクリプトCLIクライアントでも)を設定するのが難しいわけじゃないけど、トラッカーも必要になるし、それを維持するためのツールも必要だし。直感的に言うと、これらは不可能じゃないし、数カ所の難しいところを除けば、そんなに難しくもないと思う。要は、非常に大きなファイルやセットの頻繁なダウンロードに対する需要がどれくらいあるかってことが問題なんだよね。それが信頼性やシーディングのボリュームの問題につながって、ツールを開発して様々なRCSやファイル同期サービスと統合するための労力と対比されることになる。Git LFSみたいなものが役立つかな?ここら辺は私の理解の限界だわ。

Hacker Newsで議論の続きを見る