2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Open Street Mapの全球データをS3に持ってくる

Last updated at Posted at 2019-12-03

目的

AWSのデータ処理の便利サービスを使って、Open Street Mapの全地球のデータを処理したい。そのためには、まず全球データをダウンロードしなきゃいけない。
でも、いったん自分のローカルPCに落としてそこからS3にあげると、ネットワーク帯域を余計に使うよね。
なるべくダイレクトにS3に持っていけない?

Planet OSM

Planet OSM
Open Street Mapのすべてのデータをひとまとめにしたもの。要は、全球データ。PBFというバイナリフォーマットで、48GB(2019年12月3日現在)ある。現代ではビッグデータというほど大きくないかもしれないが、やはり扱うのが大変なレベルのデータ量。
(むしろ、地球全体のデータを ”たった” 50GBに収められるの?という感想もある)
地球全体のデータを作り、世界のどこでもサービスを提供するためには、避けては通れないデータ。

方法

AWSアカウントがあるのは前提。まず、Amazon LinuxのEC2インスタンスを立ち上げる。ここで、EC2のディスクにいったんダウンロードして、そこからさらにS3にアップロードするのはしたくないので、EC2は適当な小規模なインスタンスで、ディスクも極小にしておく。

インスタンスにログインして、aptなどでcurlとaws-cliが使えるようにして、おもむろに以下のコマンドをたたき、OSM全球データを落としてきたのを、そのままパイプでS3のバケットに投入する。

ダウンロード元のURLは適宜確認すること。自分に近いミラーを使うと早いが、オリジンは可能な限り避けた方がいいと思う。アップする先のバケット名やファイル名も、適宜自分の用途に従い変更する。また、バケットの権限やセキュリティの設定も適宜行うこと。

curl https://ftpmirror.your.org/pub/openstreetmap/pbf/planet-latest.osm.pbf | aws s3 cp - s3://osm-planet-data/planet-latest.osm.pbf

しばらく(自分でやったときは、数時間のオーダー待った)待てば終わるはず。
これでEC2のディスクを汚さずに直接S3に放り込むことができる。
終わったらインスタンスは消してしまおう。
更新されるごとにこれやるのもきついので、差分データをうまく使うことを考えたい。

それだけ?

今日はこれだけ。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?