Amazon Web Services ブログ
ジオテクノロジーズ株式会社の位置情報データレイクにおけるAWSの活用
こんにちは、ソリューションアーキテクトの齋藤です。本稿では、ジオテクノロジーズ株式会社 デジタル本部 ビッグデータ&アナリティクスG マネージャー 加瀬氏と共同でAWSサービスを活用したジオテクノロジーズの位置情報データレイクの取り組みについてご紹介します。
ジオテクノロジーズ株式会社について
カーナビ向けのデジタル地図データ提供から事業を開始したジオテクノロジーズ(旧社名:インクリメントP)株式会社は、1995 年に PC 向けの地図ソフト『MapFan』を提供開始。その後、地図検索サイトを展開するなど、個人から法人までさまざまなデジタル地図サービスを提供しています。2020 年 10 月からは移動するとポイントが貯まるアプリ『トリマ』を提供し、2022 年 3 月末現在で 850 万ダウンロードを獲得するなど注目を集めています。
同社は、精度や鮮度の高い地図データだけではなく、交通情報の生成・予測といった顧客にとって価値のある位置情報サービスを提供することを目指しています。そのためには、所有する様々な地図に関するデータを掛け合わせることが必要になります。
位置情報データレイクのコンセプト
ジオテクノロジーズの所有するデータは、位置情報データ/ログ・地図データベース・POI(地点情報)データ・AOI(エリア情報)データ・住所データ・オルソデータ・走行画像データ・各種検索ログと、多岐にわたり、データ量に関しても位置情報ログだけで1日あたり約10億レコード、総移動距離は約1億kmという1日で日本全国すべての道路を78周も回っている計算となります。これらの位置情報データは、データレイクに取り込む前に個人情報をマスキングする匿名化処理を十分に施す必要があります。このことから、大量のデータを保管できるストレージ容量だけではなく、処理性能においても高いスケーラビリティを持つ位置情報データレイクを構築することが必要でした。さらに、社内の急速なデータ解析ニーズに応じるため、位置情報分析基盤の専門部隊を新設し、高スケーラビリティかつ、実業務に利用するための高可用性・耐障害性を持つシステムを短期間で構築するという難題を解決するため、AWSのマネージドサービスを採用しました。
位置情報データレイクアーキテクチャ概要
ジオテクノロジーズは、容量無制限で高い耐久性を持つ Amazon S3 を位置情報データレイクのプライマリストレージとして利用しています。位置情報ログを高速に分析するためにスピードレイヤが構築されており、このスピードレイヤには、アプリ側に負担をかけない、コストパフォーマンスも高いといった理由から DynamoDB streams を採用しています。位置情報データの匿名化処理等のETL処理では、膨大なデータを処理する必要があるため、AWS Glue (Apache Sparkのマネージドサービス) を利用して分散処理させています。また、一連の処理の中で、分析や加工時に、データを一元管理できるようGlueデータカタログでカタログ化し、Parquet形式に変換しています。分析については、SQLを使用した簡単な分析には Amazon Athena、複雑な分析や地図上で可視化には Amazon SageMaker と用途に応じて使い分けています。
図1:アーキテクチャ概要図
図1に記載の各要素について
- Data Source:ユーザーデータなどのAWS上に保存されているもの、及び国勢調査データといった外部データ
- Ingest(batch layer):任意、もしくは設定したタイミングでのデータ取り込み
- Ingest(speed layer):ニアリアルタイムでのデータ取り込み
- Transform:データ整形、変換、カタログ化
- Analyze:保管されたデータに対しアドホッククエリ、ダッシュボード可視化、その他ツールを使った分析、可視化
匿名化処理フロー
以下に、匿名化の処理におけるフローを紹介します。
図2:匿名化処理フロー図
位置情報データはアプリケーション側の Amazon DynamoDB に継続的に蓄積されており、DynamoDB Streams を利用してリアルタイムにデータレイクにデータを取り込んでいます。DynamoDB Streams は、テーブルに新規で追加されたアイテムをキャプチャし、それをトリガーに AWS Lambda を呼び出します。呼び出された AWS Lambda は Amazon Kinesis Data Firehose の配信ストリームにデータを配信し、Amazon Kinesis Data Firehose は設定したインターバル、もしくは設定したサイズのデータが溜まった段階でデータを Amazon S3 バケットに出力・保存します。
匿名化処理は、単一のバッチ処理ではありません。データ同士を連携するためのデータ型の統一、分析を効率的に行うためのメタデータ付与といった前処理を経て、匿名化処理を実行します。さらに、道路単位での分析を可能にするために、位置情報データと道路データを一致させるマップマッチングします。この一連の処理は AWS Step Functions でワークフローとして定義されており、定期実行によって、匿名化されたデータが定期的に Amazon S3 上に保管されていきます。
匿名化が完了したデータは、Amazon S3 内のデータをインタラクティブにクエリできる Amazon Athena をはじめ、Amazon QuickSight でのダッシュボードによる可視化、Amazon SageMaker と kepler.gl を用いた地図上での可視化と多岐にわたる分析に活用されています。
ジオテクノロジーズ株式会社 デジタル本部 ビッグデータ&アナリティクスG マネージャー 加瀬氏は以下のようにコメントしています。
「社内の分析ニーズが高まっていたこともあり迅速に基盤を構築する必要がありましたが、AWSのマネージドサービスを積極的に活用することによって核となる構成は3ヶ月という短期間で構築することができました。しかも、データの取り込みから匿名化までの処理は全て自動化されており、運用に要する工数はほとんどかかっていません。このため分析業務に集中でき、地図データ整備への活用の他、渋滞統計データ・エリア別の滞留人口推計・道路に対する交通量推計といった様々な分析課題に取り組むことができています。」
まとめ
ジオテクノロジーズ株式会社は、AWS上に位置情報データレイクを構築することで、求められていたスケーラビリティ、処理能力、高可用性、耐障害性を持つシステムの実現を短期間で達成されています。大規模データの匿名化処理を元々シングルサーバーのバッチ処理で6か月かかる試算だったものを、AWS Glue Spark ジョブで 250 ワーカーの並列実行することにより1.5日まで短縮を実現されています。現在は、この基盤をベースに位置情報と地図をテクノロジーによって掛け合わせ、様々な社会課題の解決に向けて取り組んでいます。今後は機械学習を取り入れた渋滞予測や事故検知といった課題解決、基盤改善ではMLOps環境の構築に取り組まれる計画しているそうです。
参考:AWSサービスについて
- Amazon S3:拡張性と耐久性を兼ね備えたクラウドストレージ
- Amazon DynamoDB:マネージドNoSQLデータベース
- Amazon Kinesis Data Firehose:ストリーミングデータをデータストアや分析ツールにロードするETLソリューション
- AWS Lambda:イベント駆動型のコンピューティングサービス
- AWS Glue:分析、機械学習、アプリケーション開発のためのデータの検出、準備、結合を簡単に行える、サーバーレスデータ統合サービス
- Amazon Athena:サーバーレスのインタラクティブなクエリサービス
- Amazon QuickSight:サーバーレスBIサービス
- Amazon SageMaker:フルマネージドインフラストラクチャ、ツール、ワークフローを使用して、あらゆるユースケース向けの機械学習 (ML) モデルを構築、トレーニング、デプロイするフルマネージドサービス
本稿が、これからデータレイク、分析基盤の構築を検討されている読者の方の一助となれば幸いです。