Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
日本のCommunity向け タイルサーバの現状
Search
Taro Matsuzawa aka. btm
November 07, 2020
Technology
0
2.6k
日本のCommunity向け タイルサーバの現状
State of the Map Japan 2020での発表
Taro Matsuzawa aka. btm
November 07, 2020
Tweet
Share
More Decks by Taro Matsuzawa aka. btm
See All by Taro Matsuzawa aka. btm
OpenLayers ext TypeScript declarationの開発
smellman
0
520
平成生まれのためのUNIX&IT歴 史講座 ~番外編~
smellman
2
470
掛川城の点群データをiTownsで表示しよう
smellman
0
260
そのJavascript、全部TypeScriptにしちゃえ
smellman
1
190
大容量SSDとOpenStreetMap
smellman
0
120
MapLibreとtile.openstretmap.jpで始めるベクトル地図プログラミング
smellman
1
550
国内向けタイルサーバの構築と運用について
smellman
0
1.2k
Python/Javascriptで読む点群
smellman
1
4.9k
Pythonで点群を読んでみよう
smellman
1
2.4k
Other Decks in Technology
See All in Technology
あなたはJVMの気持ちを理解できるか?
skrb
5
2.1k
クラウドネイティブ時代を乗り越えるためのオブザーバビリティ(可観測性)ことはじめ_CloudNative-Observability
tkhresk
0
110
[2025-02-07]生成AIで変える問い合わせの未来 〜チームグローバル化の香りを添えて〜
tosite
1
130
パフォーマンスとコスト改善のために法人データ分析基盤をBigQueryに移行した話
seiya303
1
110
private spaceについてあれこれ調べてみた
operando
1
210
Ask! NIKKEIの運用基盤と改善に向けた取り組み / NIKKEI TECH TALK #30
kaitomajima
0
160
Creative Pair
kawaguti
PRO
1
140
サーバーレスで楽しよう!お気軽に始められる3つのポイント / Have fun with Serverless!
_kensh
2
270
自動と手動の両輪で開発するデータクレンジング
estie
2
130
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
290
ココナラのセキュリティ組織の体制・役割・今後目指す世界
coconala_engineer
0
230
Kubernetes x k6 で負荷試験基盤を開発して 負荷試験を民主化した話 / Kubernetes x k6
sansan_randd
0
480
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Code Review Best Practice
trishagee
65
17k
How GitHub (no longer) Works
holman
313
140k
Rails Girls Zürich Keynote
gr2m
94
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
Making Projects Easy
brettharned
116
6k
Building Your Own Lightsaber
phodgson
104
6.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
A Modern Web Designer's Workflow
chriscoyier
693
190k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
11
910
Adopting Sorbet at Scale
ufuk
74
9.2k
Transcript
State of the Map Japan 2020 松澤太郎(タイル三兄弟) 日本のCommunity向け タイルサーバの現状
自己紹介
タイル三兄弟の一味 Twitter: @smellman Georepublic シニアデベロッパ、日本UNIXユーザ会理事、OSGeo日本支部理事、 OpenStreetMap Foundation Japanメンバー React NativeとかRuby
on RailsとかPythonとかやってる地理系プログラマー ブレイクコアクラスタ 自己紹介
A Location Technology Company
None
None
Open Source GISを得意とする会社 東京、神戸、ミュンヘンにオフィスがあります 神戸オフィスはちょっとエモいので神戸に来たら遊びに来るといいよ さまざまな国や地域のエンジニアが参加 お仕事待ってます(^^ Georepublic
弊社社長が政府CIO補佐官に 政府がハックされる事態に 乞うご期待! News
現在のコミュニティ向けサーバについて 新しいコミュニティ向けサーバについて 今日のお題
Community 向け地図サーバ
OpenStreetMapの国内向けサーバ GMO お名前.com VPSを提供してもらっている 日本の単位でアップデートをかけている 日本以外の地域は国際サーバにProxyをしている 竹島対策なんかもしている tile.openstreetmap.jp
インフラがかなり古い Ubuntu 12.04 地図のレンダリングスタイルも古いまま CartoCSSに移行できなかった ラスタタイルのみしか提供ができていない 老朽化
新しいコミュニティ向け サーバ
さくらインターネットから「さくらのクラウド」月10万円分提供してもらっている 2018年から研究を開始 現在は OSM Japan コミュニティサーバは移行済 tile2.openstreetmap.jp が現在構築中 今日はこれの戦いがメイン 新しいインフラ
ベクタータイルへのFirst step ダイレクト配信へのチャレンジ 挫折 新しい希望 現在の体制 戦いの歴史
元々仕事で「さくらのVPS」とtileserver-glを使ったベクター/ラスタタイル配信は実現済 その構成をそのまま持ってこれた nginx (フロントエンド) Varnish Cache (キャッシュ) tileserver-gl ベクタータイルのFirst Step
日本のエリアだけ作成するのであれば問題はない tile.openstreetmap.jp がProxyとはいえ世界中を対応しているので、ベクタータイルでも やりたい Planet(世界中)をインポートするには最低1TBのストレージが必要 PostgreSQLだけで600GB消費! やりたいこと
だったら、インポートしたベクタータイルをPostgreSQLから直接配信すればいいのでは? PostServeというプログラムがOpenMapTilesにあってそれがそのまま使えそう Varnish Cache挟めばよくね? PostgreSQLのデータを差分更新すればよくね? やってみた ダイレクト配信へのチャレンジ
構成図 Varnish PostgreSQL Postserve Varnish tileserver-gl tileserver-gl tileserver-gl vector.openstreetmap.jp tile2.openstreetmap.jp
nginx OpenMapTiles ࠩߋ৽
1TB+差分更新をしようとしたら差分更新が間に合わないというオチが発生 差分更新がどんどん遅れる 差分更新は日本の単位でもギリギリ では、PostgreSQLを2系統用意してスイッチすればいいのでは? 最低2TB必要 挫折(1)
構成図 Varnish PostgreSQL Postserve Varnish tileserver-gl tileserver-gl tileserver-gl vector.openstreetmap.jp tile2.openstreetmap.jp
nginx OpenMapTiles PostgreSQL Postserve Πϯϙʔτ
2TBにしたらその分マシンのスペックが落ちるので破滅 2TB=66,000円 インポートも終わらんようなスペックになって壊滅した 挫折(2)
Varnish + PostServe もおかしい動きをする PostServeが変な動きをしていたが、それは途中でupstreamで修正された そもそもスペックがラスタ配信にとって厳しすぎる その他の挫折
試行錯誤しているうちにOpenMapTilesのコントリビュータに 夜中3時の打ち合わせとかも出るようになった 気づいたらPostGISとpgRoutingのDockerにパッチ書いてた pgRoutingの方はメンテナーになっていた(いや、社内だけどな!) がんばったんだよ
そもそも配信とタイル作成はサーバを分けるべき では、タイル作成サーバをどうやって調達するべきか… 僕が行き着いた先は… 新しい希望
AMD Ryzen
Ryzen 5 3400G + Deskmini 300A + 32GB Memory +
Intel m2 SSD 1TB 実家に置きました 電源をスマートスピーカー経由で操作可能にした Raspberry Pi 4から「自宅」にVPNを貼り、外出先から「自宅」経由で「実家」のサーバにロ グインできるようにした 誤実家サーバ(何 サーバ組みました(てへ
PostgreSQL 9.6, 10, 11, 12, 13(リリース前)をテスト postgresql.conf を読み込むように調整 Mapnikベースのtileliveから、OpenMapTiles Tools
5.3で導入予定のpgqueryに変更 OpenMapTilesの最後のタスクであるベクタータイル作成が2倍以上パフォーマンスアップ チューニング
tile2.openstreetmap.jp Spec: 20Core CPU / 64GB Memory / 500GB SSD
現在は日本地域に対応、Planet単位は現在実家サーバで構築中 nginxのログをfluentd+elasticsearch+grafanaで可視化してる 現在の体制
構成図 Varnish tileserver-gl tileserver-gl tileserver-gl tile2.openstreetmap.jp nginx OpenMapTiles ࣮Ոαʔό
ਐḿͲ͏Ͱ͔͢ʁ
だめでした
Planetの構築が無事できたら正式公開 失敗してるのでまた一ヶ月ぐらいスケジュールが遅れます(てへ 構築手順などは公開予定 Planetのタイル自体も公開する予定なので自分たちでタイルサーバ作れますよ ログとかはさくらインターネットさんに共有しようと思っている 正式公開
ՄࢹԽͯ͠ΔΑʂ
とりあえず作ってるけど遅れてるよ>< 日本の範囲だけなら公開できるけどする? Planet単位じゃないと竹島及び北方領土対策できなそうなんだよなぁ(汗 Ryzenの新しいやつでないかなぁ(何 まとめ