0%

DockerでオープンソースPaaS - Part2: HTTP Routing

DockerでPaaSを構築する場合、課題となるのはDockerのネットワーク周りです。
Dockerコンテナはephemeralなので、Dockerホストの外部からアクセスするときのルーティングの仕組みが必要になります。Herokuの場合HTTP Routingがあります。

オープンソースでDynamic HTTP Routingを実現するために、RedisをバックエンドにしているHipacheを使うと良さそうです。DokkuやtsuruでもHipachでHTTP Routingを実現しています。

Build your own platform as a service with Dockerを読んでいると、ワイルドカードDNSの名前解決にNamecheapを使っています。

Namecheapを契約する

Namecheapでドメインを購入します。
パラオの.pwドメインが$3.88/yearでセール中だったので購入しました。
us居住だと.usドメインが$0.98/yearで購入できます。

適当なドメインを購入後に設定をします。

My Account > Manage Domains > 購入したドメイン > Modify Domain > All Host Records

ここでtsuruをインストールしたホストのIPアドレスと、URLリダイレクトの確認用の設定をします。

HOST NAME IP ADDRESS/URL RECORD TYPE MX PREF TTL
@ {tsusuのホストIPアドレス} A (Address) n/a 60
www {リダイレクト先のURL} URL Redirect (301) n/a 60
* {tsusuのホストIPアドレス} A (Address) n/a 60

HipacheとVulcand

tsuruの場合、HTTP RoutingはRedisをバックエンドに持つHipacheを使っています。
リバースプロキシの仕組みはまだよくわかっていないのですが、HAProxy+Serfよりも良さそうな気がします。

ワイルドカードでDNSの名前解決ができれば、Hipachaがリバースプロキシとして機能するので、tsuruで作成したアプリへ動的にルーティングしてくれます。ルーティングの情報はRedisに保存されているので、redis-cliで確認することができます。

Etcdをバックエンドに持つVulcandというのもあり、RedisもEtcdも好きなので、こちらもあとで使ってみようと思います。

まとめ

.pwドメインは、お名前.comで購入すると680円でした。
NamecheapではPositiveSSL Wildcardも$94/yrで購入できます。