世界の測量

Sibling of "Relevant, Timely, and Accurate, " but much lighter and shorter ※自らの所属する組織の見解を示すものでない

MapReduce的ベクトルタイル作成(地価公示)Pt. 3

データをAWS S3にputする。

データの作成

これまで作成したプログラムmap.rb及びreduce.rbを使って、次の通りズームレベル14〜18のGeoJSONベクトルタイルを作成した。

$ ruby map.rb 14 | sort | ruby reduce.rb
$ ruby map.rb 15 | sort | ruby reduce.rb
$ ruby map.rb 16 | sort | ruby reduce.rb
$ ruby map.rb 17 | sort | ruby reduce.rb
$ ruby map.rb 18 | sort | ruby reduce.rb

データの転送

作成したファイルの作図を確認すると数百MBの程度であったので、すべてAWS S3にputした。
事前に、AWS S3コンソールにs3://www.handygeospatial.info/2014/01/22/を作成している。

$ s3cmd sync 14 s3://www.handygeospatial.info/2014/01/22/
$ s3cmd sync 15 s3://www.handygeospatial.info/2014/01/22/
$ s3cmd sync 16 s3://www.handygeospatial.info/2014/01/22/
$ s3cmd sync 17 s3://www.handygeospatial.info/2014/01/22/
$ s3cmd sync 18 s3://www.handygeospatial.info/2014/01/22/

転送後、AWS S3コンソールでmake publicにして終了。例えば、次のようなデータが上がっていることが分かる。
http://www.handygeospatial.info/2014/01/22/14/14001/6955.geojson
国土数値情報(地価公示データ) 国土交通省

ホスト料金の相場観

必要コストの規模感を共有するために、1/22時点の1月のBillsから、AWS S3(Tokyo)のBillsの数値を共有する。

  • $0.005 per 1,000 PUT, COPY, POST, or LIST requests 36,312 Requests $0.18
  • $0.004 per 10,000 GET and all other requests 31,361 Requests $0.01
  • $0.100 per GB - first 1 TB / month of storage used 0.771 GB-Mo $0.08

これらの合計で$0.27。約27円をかけている。これらが、先日のバス停、バスルートや小学校区のベクトルタイルをホストする場合のおおよそのコスト感になる。
PUTのコストについては、EC3から転送することで圧縮できることが知られているが、いずれにせよ小さい金額なのでここの改善はしていない。EC3インスタンスをupしたまま放置してしまってコストをかけてしまうリスクもある。しかし、そのうち改善するかもしれない。つまり、転送のタイミングで起動するEC2インスタンスに圧縮ファイルなりで一旦転送し、EC2インスタンスで展開しながらS3にアップロードし、自動的にEC2インスタンスを停止させるような方法を試すかもしれない。VagrantでEC2を起こす方法があるらしいので、それを使うかもしれない。
c.f. Vagrant 1.1 で EC2 を vagrant up - naoyaのはてなダイアリー