法務省地図XMLアダプトプロジェクトにおけるIPFS使用事例のご紹介

はじめに

法務省が公開した地図XMLファイルを、アダプト・ア・パークのようにアダプト(里親)する「法務省地図XMLアダプトプロジェクト」です。
今回は、IPFS(InterPlanetary File System; 惑星間ファイルシステム)を用いた、地図データの効率的な共有とアクセスを実現する仕組みをご紹介します。

IPFSとは

IPFSは、CID(Content ID; コンテンツID)を使用してデータセットやサイトを識別し、URLではなくCIDがコンテンツを特定する分散型ファイルシステムのプロトコルです。このハイパーメディアプロトコルは、HTTPプロトコルの代替として、ピアツーピアネットワーキングとコンテンツベースのアドレッシングの原則に基づいて構築され、分散型、かつ信頼性のあるデータストレージとデータ配信ネットワークを提供します。

IPFSでは、ユーザーはCIDを用いてコンテンツをリクエストし、システムが指定されたコンテンツの最も近いコピーを見つけ、それを配信します。ひとつのCIDが与えられたコンテンツは不変(イミュータブル)であり、中央集権的な配信ソースへの信頼を必要とすることなくコピーを配信します。IPFSは、より効率的なコンテンツ配信だけでなく、セキュリティの向上、コンテンツの整合性、第三者による改竄への耐性も提供します。

IPFSは、地理情報を含むさまざまな種類のデータを、分散化されたセキュアな環境で共有し、高いセキュリティ、信頼性、可用性を提供します。法務省地図XMLアダプトプロジェクトでは、この革新的なプロトコルを活用して、地図データの効率的な共有とアクセスを実現しています。

法務省地図XMLアダプトプロジェクトではIPFSをどのように使っているか

国連スマート地図バザールを活用

法務省地図XMLアダプトプロジェクトでは、全国の地図XMLデータをクラウドネイティブなフォーマットに変換して配信しています。全国分の地図XMLファイルはクラウドネイティブなフォーマットに変換しても65GBを超える大きさのデータになります。

これだけの大きさのデータをコスト効率よく配信するため、IPFSの強力な特徴を活用し、地図データの効率的な共有とアクセスを実現する国連スマート地図バザールというプロジェクトを活用しています。この国連スマート地図バザールプロジェクトは、IPFSをデータの保存、配信、共有の基盤として活用することで、新たな地理情報活用の可能性を広げることを目指すプロジェクトです。

国連スマート地図バザールのGitHub

国連スマート地図バザールの仕組み

IPFSは、コンテンツアドレス指定によってデータを識別し、ピアツーピアのネットワークで効率的に配信する仕組みです。法務省地図XMLアダプトプロジェクトが活用している国連スマート地図バザールプロジェクトでは、IPFSを使用して地図データをネットワーク上に配置し、ユーザーが容易にアクセスできる環境を構築しています。国連スマート地図バザールがIPFSのアプリケーション、法務省地図XMLアダプトプロジェクトが国連スマート地図バザールのアプリケーション、という関係になっています。これにより、地図データの取得や共有が中央集権型のアプローチに比べて安価・迅速かつ効率的に行えるようになります。

国連スマート地図バザールの具体的な構成は下図の通りです。

smb-architecture

図の中央にある緑色のIPFSノードが地理空間情報を保管し、送信します。IPFSノードはインターネット上のどこにあってもよく、安価なストレージやハードウェアを積極的に活用可能であると思っています。このプロジェクトでも、最も安価なクラスのUSB HDDやRaspberry Pi 4Bを活用しています。

組織ネットワーク等の管理されたネットワークからIPFSノードにアクセスする場合には、図の下にあるjump hostを経由してアクセスします。組織ネットワーク等ではIPFSのようなP2Pプロトコルの使用が必ずしも認められてはいないかもしれませんが、IPFSノードをゲストネットワークに置いてjump hostで中継するアプローチをとることにより、組織ネットワークに制約されることなくIPFSを使用できる可能性が広まります。

地理空間情報の配信を受けるユーザーのIPFS対応レベルはどうでしょうか。IPFSにネイティブに対応できる先進的なインターネットユーザーであれば、もちろんIPFS経由で直接地理空間情報を利用することができます。他方で、ユーザーも組織ネットワークの制約のもとでIPFSが使えない場合があるかもしれません。

この制約に対応するため、国連スマート地図バザールでは、Code for Japanを通じてさくらインターネットから現物提供されたサーバを活用させていただいています。上の図では、IPFS GWと記載されたサーバです。

このサーバは、ipfs swarm connectコマンドを用いて、国連スマート地図バザールに参加するIPFSノードから接続を受けることにしています。そうすることで、国連スマート地図バザールに参加するIPFSノード間のデータ交換がよりスムーズになることを狙っています。加えて、このサーバは国連スマート地図バザールの HTTPSゲートウェイとしてもセットアップしてあります。これにより、組織ネットワークの制約のもとでIPFSが使えないユーザに対しても、国連スマート地図バザールで流通するデータを提供することが可能となります。

さくらインターネットのサーバは、データ転送量に対して課金しないモデルになっているため、国連スマート地図バザールを運用するにあたり非常に安心感があります。ありがとうございます。

国連スマート地図バザールを通じて提供されるIPFSの分散型データ共有インフラストラクチャは、法務省地図XMLアダプトプロジェクトにおいてもその役割を果たしています。法務省地図XMLアダプトプロジェクトのうち、ベクトルタイルを配信するamx-project/a、これを国連スマート地図バザールによりネイティブ対応させたamx-project/ab、およびFlatGeobuf形式のデータをQGIS向けに配信するamx-project/fはIPFSを活用して地図データを提供しています。これにより、地図情報の有用性が最大限に引き出され、地理情報の利活用が進むと同時に、国連スマート地図バザールの運用実績を積むことを通じて、国連の活動にも貢献することが期待されています。

IPFSを活用することで、法務省地図XMLアダプトプロジェクトは地理情報データの共有と利活用を効果的に行い、より包括的で持続可能な地理情報の展開を推進しています。

IPFSを活用してベクトルタイルを配信するamx-project/a

IPFSを使うメリット

IPFSを活用することには多くのメリットがあります。特に、法務省地図XMLアダプトプロジェクトにおいては、地図データの共有と利活用において次のような利点が生まれます。

  1. 分散型データ共有の効率性: IPFSは分散型ファイルシステムであり、データがネットワーク全体に分散して保存されるため、効率的なデータ共有が可能です。法務省地図XMLアダプトプロジェクトでは、地図データが分散されたネットワーク上で効果的に共有され、多くのユーザーが容易にアクセスできる環境を整えていきたいと考えています。
  2. セキュリティと信頼性の向上: IPFSは分散ネットワークを通じてデータを共有するため、中央集権型のシステムに比べて、攻撃や障害に対する耐性が高まります。地図データが複数のノードに保存され、データの取得が冗長性を持って行われるため、セキュリティと信頼性が向上します。
  3. コンテンツの整合性: IPFSではコンテンツがCIDによって一意に識別されます。このため、データが変更されることなく(イミュータブルに)保存されるため、データの整合性が保たれます。法務省地図XMLアダプトプロジェクトでは、地図データの信頼性と整合性を確保するためにIPFSを活用しています。
  4. 改竄への耐性: IPFSが持つ分散型の性質を活かして、第三者によるデータ改竄のリスクを低減します。データが複数のノードに分散して保存されるため、単一の攻撃箇所を持たない構造が築かれ、改竄への耐性が高まります。
  5. 地理情報の高速アクセス: IPFSは近くのノードからコンテンツを取得するため、地図データの取得が高速に行えます。法務省地図XMLアダプトプロジェクトにおいても、ユーザーは最も近いコピーからデータを取得できるため、アクセスの効率性が向上します。

これらのメリットにより、IPFSは法務省地図XMLアダプトプロジェクトにおいて、地理情報データの共有と利活用の質を向上させています。国連スマート地図バザールと連携することで、より効果的な地図データの展開と利用が実現されています。

IPFSを使うデメリットと注意点

IPFSは優れた特性を持つ一方で、いくつかのデメリットや注意点も存在します。法務省地図XMLアダプトプロジェクトにおいても、以下の点に留意する必要があります。

  1. ネットワークの速度と可用性: IPFSの速度や可用性は、ネットワーク内のノードの状態に依存します。ネットワークが混雑している場合や、一部のノードがオフラインの場合、データの取得や共有が遅くなる可能性があります。法務省地図XMLアダプトプロジェクトにおいても、ネットワークの状態を適切に確認し、速度と可用性を確保するための努力を払う余地があります。
  2. データの更新と削除: IPFSはコンテンツをイミュータブルに保存しますが、データが変更されるとCIDも変更されます。また、データの削除はCIDを忘れることで実現することになりますが、IPFSノード管理上はipfs pin rmでガーベジコレクションできるようにすることで初めてストレージを空けることができるようになりますし、IPFSネットワーク上は、CIDが忘れられない限りは必ずしもデータを確実に削除し切れるわけではありません。法務省地図XMLアダプトプロジェクトにおいても、地図データの更新や削除の際に、適切な手順とツールを用いてデータの管理を行う余地があります。
  3. 技術的な知識と学習コスト: IPFSの導入には、一定の技術的な知識と学習コストが必要です。特に新しいユーザーや組織にとっては、IPFSの仕組みや運用方法を理解するための労力が必要です。法務省地図XMLアダプトプロジェクトにおいても、プロジェクトのなるべく多くのメンバーがIPFSの運用方法を十分に理解し、効果的に活用するためのリソースを提供することが重要です。
  4. ネットワークセキュリティと悪用リスク: 分散型ネットワークの性質上、IPFSはネットワークセキュリティの懸念を考慮する必要があります。不正なコンテンツのアップロードや配信、悪用の可能性もあるため、適切な監視と対策が必要です。

このような話にもしご興味のある方がいらっしゃれば、ぜひプロジェクトに参加いただけるとうれしいです。

法務省地図XMLアダプトプロジェクトについて

法務省地図XMLアダプトプロジェクトは、国連スマート地図バザールを取り入れることにより、地理空間情報の効率的な管理と共有を目指す国際的な取り組みにも足を踏み出しました。

国連スマート地図バザールは、IPFSを活用することで地理空間情報のアクセス性を向上させ、新たな地理空間情報の利用方法を提供しています。プロジェクトの活動内容や目的を理解し、参加することで地理情報の未来に貢献するチャンスを手に入れましょう。

法務省地図XMLアダプトプロジェクトは、地理空間情報の利活用を促進し、効果的な意思決定をサポートします。法務省地図XMLアダプトプロジェクトに参加することで、地理情報技術の進化に寄与し、持続可能な地理情報基盤の構築に貢献することができます。

法務省地図XMLアダプトプロジェクトのGitHub

参加募集と参加方法

法務省地図XMLアダプトプロジェクトでは、さまざまなバックグラウンドや専門分野を持つエンジニアや研究者、地理情報に関心のある個人や組織の参加を歓迎しています。参加するには以下のステップをご確認ください。

  1. 関心の表明: プロジェクトに興味や関心がある場合、プロジェクト全体のGitHub IssuesやCode for Japanの Slackにあるproj-地図xmlチャンネルを通じて関心を表明することが第一歩です。
  2. 情報収集: プロジェクトの詳細情報や活動内容を調査し、自身のスキルや関心に合った参加方法を検討します。法務省地図XMLアダプトプロジェクト全体のREADME.mdが情報収集に役立つかもしれません。
  3. コミュニケーション: プロジェクトのコミュニティやメンバーと交流し、意見交換や情報共有を行います。公式コミュニケーションチャンネルを活用して、質問や関心事を共有しましょう。
  4. 貢献: プロジェクトに貢献する方法は多岐にわたります。技術的な貢献やアイディア提供、ドキュメンテーションの作成など、自身のスキルや興味に合わせて参加できます。

法務省地図XMLアダプトプロジェクトへの参加は、地理空間情報技術の進化と国際的なコラボレーションの一翼を担う重要な役割を果たすものです。興味がある方は、GitHubのリポジトリや Slackのコミュニケーションチャンネルを通じて詳細情報を入手し、参加の道を探ってみてください。