最先端の FASTLY CDN を使用して、ほぼ瞬時のグローバル更新を実現した OPENSTREETMAP
Wikipedia はあらゆる人が使用できる百科事典ですが、OpenStreetMap (OSM) はマッピングにおいて同様の役割を果たします。OSM は、世界中の都市や地域を調査する640万人のボランティアによって制作されたオープンソースの世界地図です。インターフェイスから基本的なデータアクセス API まで、プロジェクトの基盤となるソフトウェアを構築し、Wiki
スタイルのコラボレーション編集ツールと GPS ユニットを使用してデータを更新します。マップ画像および基礎的なデータはオープンコンテンツライセンスに基づいて公開され、無償で自由にアクセスして使用できます。
OSM は Fastly のオープンソースプログラムに参加しているため、Fastly のコンテンツ配信ネットワーク (CDN) を活用してコンテンツを配信しています。この記事では、OSM による Fastly CDN の利用についてご紹介します。
課題
OSM のデータは、配達経路管理、宅配便業者、災害対応 (最寄りの病院など)、そしてもちろん地図として、世界中で使用されています。OpenStreetMap の利用の大部分が Map Tile Service 経由によるものです。このサービスを通じて組織は OpenStreetMap のデータを取り込み、自社のアプリケーションや Web サイトで表示することができます。現在、 OSM のデータは何万もの Web サイトで使用されています。Facebook でビジネスディレクトリを確認したり、Uber で乗車料金を計算したりする場合、OpenStreetMap と通信していることになります。
Map Tile Service は、基盤となるデータの変更を定期的にプッシュします。場合によっては、毎分のようにデータを更新します。また、OSM はすべての最新データを「プラネットファイル」として毎週エクスポートし、公開しています。このようなコンテンツの有効な配信に CDN が欠かせないと認識している OSM は、寄付金を活用して独自の CDN 構築に着手しました。
ところが、ソリューションの構築にあたり、最初から困難に直面しました。まず、世界の一部の地域ではサーバーの取得が困難であることが分かりました。また、タイルの読み込みに長い時間がかかるという苦情がマップ編集者からしばしば寄せられました。サーバーの問題の検出や修正に関して、OSM には十分な知識やスキルがありませんでした。2019年に開催されたロンドンマラソンでは、コースに沿って走者を追跡できる新しいアプリがリリースされました。しかし、巨大なトラフィックスパイクが発生し、警告なしに OSM のカスタムビルド CDN がダウンしたため、トラフィックを他のサーバーに再ルーティングする必要が生じました。そこで、OSM は新たなソリューションの検討を開始しました。
最先端の CDN が選ばれた理由
最先端の CDN では、リクエストに応じて変化する真に動的なコンテンツをオリジンではなくエッジから配信することができます。戦略的に配置され、ストレージプールとしても機能する大容量 POP でより多くのコンテンツをキャッシュし、よりエンドユーザーの近くでコードを実行することで、オリジンへのリクエストの多くを完全に排除することが可能になります。
最先端の CDN は、コンテンツを瞬時にパージする機能 (CDN によってはミリ秒単位でパージ可能) や、(全コンテンツを一括パージする代わりに) コンテンツを選択的にパージする機能を備えているため、企業は従来の CDN ではキャッシュできなかった多くのコンテンツをキャッシュできます。
さらに、開発者は最先端の CDN を使用して統計データとログにリアルタイムでアクセスし、API のパフォーマンスをプログラムおよびモニタリングできます。このメカニズムはコンテンツ配信における強力な機能であり、パフォーマンスの向上、オリジンの負荷軽減、全体的なインサイトの提供などを通じて、組織のアプリケーションを多面的にサポートします。
Fastly が選ばれる理由
OpenStreetMap はまず、Fastly が提供するコントロールのレベルの高さに興味を持ちました。Map Tile の形式では、一定のパターンに従わないリクエストが多いため、キャッシュが困難になります。そこで、OpenStreetMap は Fastly の Varnish Configuration Language (VCL) でカスタムロジックを記述し、バックエンドに送信される無効なリクエストを制限することで、404 のエラーページの配信や適切なバックエンドへのリクエストの再ルーティングを実現することができました。もう1つのメリットは、OSM のサーバーの負荷を軽減できたことです。その結果、サーバーをより高度な用途のために利用できるようになりました。たとえば、以前タイルネットワークで使用されていたサーバーの1つをジオコードサーバーとして使用することで、OSM データに対する検索が強化されました。また、特定の古いサーバーを完全に廃棄し、全体的な管理負担を軽減できました。
OSM のセットアップ全体を Fastly のネットワークに移行する前に、OpenStreetMap で財務およびインフラストラクチャを担当する Ian Dees 氏は、テストを実施することにしました。Dees 氏は、デモ用のタイルサービスの前面に Fastly サービスのプロトタイプをセットアップしました。設定の完了後、米国のより多くのユーザー層に Fastly 経由での配信を開始しました。ユーザーの反応は素晴らしく、マップ編集者たちから、パフォーマンスが格段に向上したとの報告を受けました。
「以前の CDN では、マップ画像の一部が読み込み中に停止するという苦情がユーザーから寄せられていました。このような現象から分かるのは、ページの読み込みに5秒、ときには10秒かかっていたという事実であり、あまりに長過ぎます。Fastly では、このようなことは発生しません。リクエストすると、即座にすべてが読み込まれます。パフォーマンスの大幅な高速化を実感できます」とのコメントを Dees 氏から最近いただきました。
また、Dees 氏によると、Fastly との連携によって可観測性も向上し、OSM のチームは受け身的な体制からプロアクティブな体制に移行できたそうです。以前の CDN では、統計データの可視性が最小限に限られていたため、「世界のどこでユーザーがマップを見ているか」というような基本的な統計データしか公開できませんでした。現在は、災害対応マップの情報提供に使用できるカスタムログソリューションに取り組んでいます。
今のところ、統計データは内部でのみ使用されていますが、早期に公開できるようパーサーの構築にも取り組んでいます。さらに Fastly との連携により、想定外の量のアクセスが発生しても、これまで以上に備えることが可能になったと Dees 氏は語っています。独自の CDN を使用していたときは、混乱が生じる可能性に対して受け身であるように OSM のチームは感じていましたが、今では、受動的ではなく計画的かつ先見的に、オリジンへの負担を軽減できるようになったそうです。
今後について
OpenStreetMap は配信の課題を乗り越え、世界地図の作成という本来の目的への取り組みにより多くの時間を費やせるようになりました。OSM のチームは Fastly の CDN を使用することで、地図のローカライズ版を含むプラットフォームのカスタマイズをさらに押し進めることができました。たとえば、以前は英語または特定の国の言語でしかデータを表示できませんでした。
現在は、ユーザーが母国語で全世界地図の詳細を表示できるよう取り組んでいます。最先端の CDN の活用方法については、「最先端の CDN 導入ガイド : 今日の開発者に必要なセキュリティとパフォーマンス」をご覧ください。