#概要
MapServerでWMS配信している地図を、PaaSのGoogle App Engineでタイルキャッシュしてみる
#やりたかったこと
- 小縮尺で処理が重く、表示に時間がかかるのをなんとかしたい
- XYZ方式のAPI
- サーバー管理不要
#制約
MapServer自体(サーバ含む)には手は入れたくない。
正攻法ならMapProxyなどが第一選択だと考えられるが、
新たにサーバを立てるのは管理上・コスト上回避したい
#コード例
https://github.com/yutakarmc/gae-map-tile-cache
(ツッコミどころは多いと思います。ぜひ遠慮なくよろしくお願いします)
- Google CLOUD CDN
- Memcache
- Google Cloud Storage
- オリジンサーバのWMS
上からヒットしたところで返してくれる。
1-2ならかなり高速。3は意外に時間がかかる。
でも、狙い通り小縮尺では4よりかなり高速。
#利点
- サーバー管理不要
- アクセスが集中しても、
- どんどんスケールアウトしてくれる
- CLOUD CDNが結構面倒を見てくれる
- 無料枠がある(Google App Engineのインスタンス、Cloud Storageとも)
- GoogleやFirebaseの認証がつけられる
#欠点
- CLOUD CDN のキャッシュはお任せ(消去する方法が…?、キャッシュ期間は計画的に?)
- ロックイン?
- GAE-オリジンサーバ、GAEは容赦しない
#今後
- AWS Lambdaなどでのサーバーレス構成も試してみたい