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
460
平成生まれのためのUNIX&IT歴 史講座 ~番外編~
smellman
2
440
掛川城の点群データをiTownsで表示しよう
smellman
0
230
そのJavascript、全部TypeScriptにしちゃえ
smellman
1
180
大容量SSDとOpenStreetMap
smellman
0
98
MapLibreとtile.openstretmap.jpで始めるベクトル地図プログラミング
smellman
1
500
国内向けタイルサーバの構築と運用について
smellman
0
1k
Python/Javascriptで読む点群
smellman
1
4.7k
Pythonで点群を読んでみよう
smellman
1
2.3k
Other Decks in Technology
See All in Technology
My Generation 年配者がこの先生きのこるには/My Generation How elder engineers can survive
kwappa
1
3.8k
オープニング / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
120
不感対策ソリューション
jtes
0
220
OPENLOGI Company Profile for engineer
hr01
1
11k
低コストで実現する社内文書RAG機能を搭載したAIチャットボット開発
takapy
2
180
脆弱性を管理して、ビジネスリスクに備えよう 〜駆け出しエンジニアがCVEとSBOMを可視化してみた〜
ktgrryt
0
160
mcwithcode プロジェクト概要
takunology
0
7.9k
Sansanにおける全社横断データ分析基盤の挑戦と未来 / Challenges and Future of Cross-Organizational Data Analytics Platform at Sansan
sansan_randd
1
210
開発フェーズでのオブザーバビリティ活用やプロファイルのススメ / getting-started-profile-o11y
k6s4i53rx
2
370
Android15(SDK35)から強制される、Edge-to-Edgeに対応しなければならない
sansantech
PRO
0
340
内製化を目指す事業会社が、システム開発会社と共に進める「開発生産性改善」の取り組み事例 #devsumi
yuwji
1
350
Kubernetesって何? -大規模なKubernetesを運用するKubernetes as a Serviceチームの話を添えて-
lycorptech_jp
PRO
13
4.3k
Featured
See All Featured
Faster Mobile Websites
deanohume
304
30k
Code Reviewing Like a Champion
maltzj
517
39k
Building a Modern Day E-commerce SEO Strategy
aleyda
36
6.8k
Automating Front-end Workflow
addyosmani
1365
200k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Atom: Resistance is Futile
akmur
261
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
Fontdeck: Realign not Redesign
paulrobertlloyd
80
5.2k
Unsuck your backbone
ammeep
667
57k
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
620
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
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の新しいやつでないかなぁ(何 まとめ