1 ポイント 投稿者 GN⁺ 2025-09-23 | 1件のコメント | WhatsAppで共有
  • 今月、ダウンロードサーバーのインフラアップグレードにより、より高速なダウンロード体験を提供
  • “…latest” ファイルのリクエスト方式が HTTP リダイレクトに変更
  • すべての利用者が便利に最新の OSM データへアクセスできるよう取り組んでいる
  • 大容量ファイルを繰り返し過剰にダウンロードする異常な利用例が、サービス全体の性能低下につながっている
  • 効率的で責任あるダウンロードのために、3つの具体的な推奨事項を提示

ダウンロードサーバーの更新と責任ある利用のお願い

今月は、ダウンロードサーバーのインフラ強化作業を実施した。
これにより、ダウンロードをより速く、より早く提供できる環境の構築が可能になった。
技術的な変更として、“…latest” ファイルを要求した際、従来の直接配信方式ではなくHTTP リダイレクト方式で最新バージョンのファイルへ案内するようになった。

責任あるダウンロードが必要な理由

すべての利用者が快適に最新の OSM(OpenStreetMap) データへアクセスできるよう、サーバーを運用している。
しかし、一部の利用者が同じ大容量ファイル(例: 20GB)を1日に数百〜数千回繰り返しダウンロードするケースが発生している。

  • 例として、ある利用者が24時間以内に italy-latest.osm.pbf ファイルをほぼ10,000回ダウンロードした事例があった。
  • また別の利用者は、サーバー内のすべてのファイルを毎日すべてダウンロードする行為を繰り返している

このような行動は、サーバーの帯域幅の限界により、利用者全体の速度低下を引き起こす。
IP帯域の遮断が避けられない場合、無関係な利用者まで被害を受ける可能性がある。

サーバー利用者への3つの具体的な推奨事項

  1. 全世界のデータが必要なら、サーバーから分割して受け取るのではなく、planet.openstreetmap.org から planet ファイルを一度に取得する方法を推奨する。
  2. 大陸または広域データ(例: Europe, North America)を毎日更新したい場合は、pyosmium-up-to-date プログラムを使用して差分のみを取得すれば、全体トラフィックの 98% を削減でき、速度も向上する。
  3. 自動化スクリプトを活用する場合は、何がダウンロードされているかを監視するか、適切なエラー処理を入れて、同じファイルを無限に繰り返しダウンロードするようなミスを防ぐ必要がある。

結論

より責任あるダウンロード習慣を通じて、誰もが快適に最新データを利用できる環境づくりへの協力をお願いしたい。

1件のコメント

 
GN⁺ 2025-09-23
Hacker Newsの意見
  • 似たような問題を見るたびに、なぜBitTorrentがもっと使われないのか不思議に思う。コンテナレジストリやパッケージリポジトリなど、もっとさまざまな場所で標準プロトコルとして使われてほしい
    • BitTorrentには世間的にあまり良くないイメージがあり、たいていは単なる違法ダウンロードと結び付けられている<br>ファイアウォール設定がHTTPより面倒で、ネットワーク管理者にそうした設定を求めると変な目で見られがち。特にBitTorrent自体への拒否感があるため<br>BitTorrentクライアントはHTTPクライアントよりずっと複雑で、たいていの社用PCやCIパイプラインには入っていない。多くの人は単に curl コマンド一発で済ませたいと思っている<br>シードしなければならないという誤解が非常に多く、そのせいで不安を感じる人も多い<br>結局、イメージの悪さと curl だけで何でも済む現状のせいで、BitTorrentが過小評価されているのは残念だ<br>ビデオゲームクライアントが更新にBTを使ったり、PeerTubeがwebtorrentを使ったりする例はあるが、それでもまだあまり広く使われていないのが惜しい
    • Amazon、Esri、Grab、Hyundai、Meta、Microsoft、Precisely、Tripadvisor、TomTomなど数十社が、OpenStreetMapデータをParquet形式でS3上に無料提供している。これにより、数TB級データセットの中から必要な情報だけをクエリして分析でき、使う帯域幅はMB単位で済む<br>詳細 参照<br>ArcGIS Proユーザーはこのプラグインも利用できる
    • 数年前に「動的コンテンツを持つトレント」という概念を見た記憶があるが、実際にはあまり使われなくなった これが実現してほしかったが、セキュリティ問題のような致命的な課題があったのか気になる 参考リンク
    • HTTPと比べると、BitTorrentにはどこでも使える「汎用クライアント」が足りなかったのだと思う。SSHやSCPほど親しまれているわけでもなく、インストール・設定・トラッカー構成まで手間がかかる 一般に、大容量ファイルを頻繁にダウンロードする需要があってこそ、この仕組みに意味がある。信頼性やシーディング量の問題まで考えると、結局はツールの開発・保守コストに見合う利益があるかに帰着する Git LFSのようなものが助けになるのかもしれないが、そこまでが自分の知っている範囲だ
    • 以前勤めていた会社では、毎週すべての開発者に大容量ファイルを配布する必要があった。最初はrsyncで同時に無理やり受け取っていたが、BitTorrentに切り替えてからは速度向上がものすごかった
  • Geofabrikのような会社があるおかげで、私たちが時々すばらしい体験をできることにいつも感謝している APIを直接運用していると、開発者の軽率さや無知に本当に驚かされることが多い。それほど奇妙なリクエストが頻繁に来る 自分で経験していなければ、誰かにこんな話を聞かされても誇張だと思っただろう ただ一方で、API開発者側も複数件処理を想定していないことが多い。たいてい単一エンティティ操作しか提供せず、実際のユースケースでは複数操作が必要なのに700回もリクエストを投げるしかないことがある
    • 開発熟練度が低い人には、どの職業でも無責任さや無知はあり得る すべての開発者がAPIをむやみに叩くわけではないと確信している プログラミングは誰にでも開かれており、最近は「vibe-coding」の傾向もあるので、大きな流れとしては仕方ないとも感じる レスポンスに429 (Too Many Requests) を返したり、leaky-bucketアルゴリズムを適用したりすれば、ジュニアや入門レベルの開発者でもすぐに自分で問題に気付くだろう
    • S3の「downloader pays」機能がなぜもっと広く導入されないのか理解しづらい。AWS外でもこうしたモデルがあれば、非効率な利用者に自分のコスト分だけ負担させられるはずだ 欠点は、支払い手段のない人にはアクセスしづらくなるかもしれないことだが、その場合は無料だが速度制限付きの選択肢を残せるのではないかと思う
    • 20GBのファイルを1日に数千回も受け取る利用者がいるというが、なぜ単純にRate Limitで制御しないのか不思議だ
    • 双方にもっと共感力が必要だと思う。クライアントはインフラを尊重すべきだし、API開発者はユーザー視点でもっと広く考えるべきだ
  • 「1人のユーザーが24時間以内に italy-latest.osm.pbf ファイルをほぼ1万回ダウンロードした」という事例は、コードに問題がある可能性が高い。IPごとの制限をかければ済む話で、VPN利用者でも同じだ
  • おそらく人々はCIパイプラインでmapデータファイルをダウンロードしているのだろう。しばしば本人も気付かない意図しないダウンロードだ<br>そのため、多くのサービスが非会員による自動ダウンロードを禁止するようになった<br>cURL でファイルを受け取るにはまず会員登録を求め、過度にダウンロードするユーザーは遮断するか課金するのがよいと思う
    • CIという概念は、コンピューティングリソースを浪費する最悪の発明の一つだと思う。ただ、地図データがコードライブラリのように乱用される形で大量ダウンロードされる理由はよくわからない
    • WebアプリがGPKGファイルを「クエリ」しているのではないかと疑っている。Parquet形式なら欲しい部分だけ効率よくクエリできるが、GPKGでも同じことが可能なのかはよくわからない
    • CIサーバーからのリクエストを信頼性高く見分けられるのか気になる
    • 簡単な認証(例: APIキーやメールベース)だけでも、よい折衷案になりそうだ
  • 「同じ20GBのファイルを数日間、1日に数百回ダウンロードするユーザーがいる(24時間以内に1万回ダウンロードしたユーザーもいる)。サーバー上の全ファイルを毎日ダウンロードする人までいる」という事例は、rate-limitingだけで簡単に防げそうだ<br>24時間のファイルダウンロード回数をすでに数えているのに、なぜ制限を設けないのか不思議だ 彼らが (a) サーバー運営者の警告文を読み、(b) 行動を改めるとは思えない
  • 数年前は「まさか誰かがビルドスクリプトで毎回100MB超のものをダウンロードしたりしないだろう」と思っていたが、Dockerを経験してからは、そういうケースが非常に多いと気付いた
    • コンテナの中に入ると、まるで魔法のように無料だと錯覚してしまう例を時々見る
    • Dockerはレイヤーキャッシュをサポートしているのだから、毎回すべてを新しく受け取り直す必要はないのでは?
    • だから私は、プロジェクト専用イメージを事前にCIで作っておき、CIでのみ使っている。毎回 apt-get でセットアップすると時間の無駄が大きすぎる
  • 過剰にダウンロードするユーザーには個別にメールを送っているのか気になる。2012年に無料のNominatim APIを使っていたときはメールアドレスが必須で、キャッシュなどでリクエスト量を減らすよう案内するメールを実際にもらったことがある
    • ログインがない状況ではメールアドレスを取得できないので、メールは送れない
  • 私は italy-latest を8秒おきにダウンロードしているそのユーザーではないが、私が所属するイタリアのスタートアップはGeoFabrikをよく利用している。チームの誰かがコンテナの実験中にダウンロードしすぎた可能性はある<br>以前geofabrikからブロック(BAN)されたことがあるが、いまだに原因がわからず、今後こうしたことが繰り返されないことを願っている<br>geofabrik.de の連絡先に電話やメールも試したが返答がなかった。もしこの問題の解決方法や連絡手段を知っている人がいれば教えてほしい
  • こういう形で過剰にファイルをダウンロードする人たちは、そもそもこうしたブログ記事を読まない気がする
  • bittorrentが向いているユースケースだと思う
    • データが変更された場合、トレントクライアントがどうやって自動的に差分だけ取得できるのか気になる