LoginSignup
6
7

More than 5 years have passed since last update.

続: H2O をいじくって OpenStreetMap の(ry : デモ環境の構築

Last updated at Posted at 2015-05-10

概略

前回投稿したH2Oにちょっと手を加えて、OpenStreetMap 用のタイルサーバにしてみた話の続き。

今回は、デモ環境を作る用のかんたんな shell script を書いたのでご紹介。
なお、出来上がるデモサイトは、基本的には昨日公開したここと同じものになるハズだ。

で、どうやって使う?

GitHub の INSTALL.md に簡単な説明を書いたので、そちらを見よう。
中で何をやっているかは、 スクリプト自体 のコメントに書いてある。

ここにスクリプト全部貼り付けて解説を書いていこうかとも思ったのだが、「DRY とゆう言葉をしらねーのかよこの static おじさんが!」と言われそうなのでやめる。

代わりに、スクリプト冒頭の長い説明だけ要約する:

想定環境

Debian jessie 64bit でしか試してない。
Ubuntu でも apt のパッケージ名を調整すればいけるかも。ただ、特にフォント系のパッケージ名は違いが激しく、つらい。
RHEL 系は、主に gcc が古いとかの理由でつらみしかないかも。ただし試したわけではない。度胸でなんでもやってみるのも悪くない。

  • ストレージ 50GB,
  • メモリ 4GB,
  • コア2

ぐらいはできれば欲しい。

インターネッツに公開する時の注意

  • 22, 8080 以外のポートは開けるんじゃないぞ。絶対だぞ
  • なくして困る自分のデータとかコードは置くな

これは雑なデモ環境であって、ガチな運用環境ではない。いいね?

下準備

一部の処理は "osm" という名前の一般ユーザ (このスクリプトの最初で useradd する) で実行する。
理由は、OpenStreetMap のツールチェインの一部が、このユーザ名を前提にハードコードしちゃってたりするため。
なので、あらかじめ
$ visudo
で、

    Defaults        timestamp_timeout=-1
    osm   ALL=(ALL:ALL) ALL

と書いておくこと。
このゆるふわすぎるアクセス権は、セットアップが終わったらなかったことにしてもかまわない。

主なデータの場所と、ファイルシステムについて

PostGIS の DB は /var/lib/postgresql/9.4/main の下。これは apt で入れた時のデフォルトがそうなっている。

タイル (画像ファイル) は /opt/osm/tiles の下
+ なので、/opt の空き容量は十分 (20~30GB ぐらい) 確保しよう, そして
+ /optext4 ではなくBtrfs のパーティション を切って、そこに mount することを強く強く訴えていきたい。ナンデ?

Btrfs の薦め

なんでかというと、tiles/ の下にはすっごいたくさんのファイルができるからだ。
最大縮尺まで全部画像にすると、東京周辺だけでも .png ファイルが何百万個とか普通にいく。
ext4 でこれはキツいでしょ。もっと広い領域で何十億個とかになったら絶対無理でしょ。
一方、btrfs は、inode の数をフォーマット時に決めるということをしないし、
小さな画像 (地図はたいていそうだ) はメタデータ領域に詰めてくれる。やったね!

具体的な mkfsmount のやり方は:

$ sudo sudo apt-get -qq install btrfs-tools
$ sudo mkfs.btrfs -O^extref -m single /dev/part/for/tiles
$ sudo vi /etc/fstab # fstab に下の行を追加:
/dev/part/for/tiles  /opt       btrfs   auto,noexec,noatime,autodefrag,compress=lzo,space_cache      0       2
# ただし、ほぼ .png しか置かないので、"compress=lzo" あんまり意味ないかも。

おねがい

このいかにも static 加齢臭ただよう shell script を、Fabric とか Ansible とか Docker とか、イケてる DevOps だぜクラウドでインミュータブルインフラスツラッチャーだぜヒャッハーにしてくれる DevOps な人がほしいです。

6
7
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
6
7