「地球を喜びで満たそう」をミッションに、地図をコアとしたオートモーティブビジネス、GISビジネス、アプリケーションビジネスを展開するジオテクノロジーズ株式会社。法人向け地図APIサービス「MapFan API」のサービスプラットフォームにAWSを採用してSaaSとして提供している同社は、クラスメソッドの技術支援を受けながらMapFan APIの新機能を開発しました。どのような背景から支援にいたったのかなどを振り返っていただきました。
クラウドネイティブアーキテクチャを活用した地図APIサービス
ジオテクノロジーズは、29年間蓄積してきた位置情報や人流データをはじめとするビッグデータと、地球(Geo)に関わる様々なデータ、さらに最先端技術を融合させることにより、予測可能な“Geo-Prediction”の世界を生み出し、地球を取り巻くさまざまな社会課題を解決していくことを目指しています。個人から法人まで様々なサービスを提供しており、法人向けとしては、2023年8月にβ版をリリースしたスマートフォン向け安全運転促進アプリ「ジオドライブ」が、スマートフォンのみで手軽に楽しく安全運転のモチベーションを高められるとして注目を集めています。
同社が手がけるサービスの1つが、法人向け地図APIサービス「MapFan API」です。MapFan APIは、高品質・高精度な位置情報データを使った地図表示/人流解析/ルート検索/住所検索などの機能をSaaSで提供しています。導入企業は、地図機能や位置情報を使ったWebシステムやWebソリューションを手軽に構築できます。
同社は、長らくMicrosoft Azure上で稼働していたMapFan APIのサービスプラットフォームを、2021年6月に他のサービスと歩調をあわせる形でAWSに全面移行しました。その後は既存機能の継続開発や保守運用に注力してきましたが、2022年10月頃に顧客への新たな付加価値の提供に向けて、新機能を開発することを経営方針として決定しました。
しかし、ここで新たな課題が浮上します。開発チームにはアプリ開発やデータに関する知見は豊富にあるものの、APIをAWS上で開発するための知見が不足していたのです。
「今回は、Amazon EC2ベースの既存のアーキテクチャを全面的に見直し、まっさらな状態からマネージドサービスなどを使って新しい機能を開発する方針としました。しかし、自社にはクラウドネイティブなアーキテクチャのノウハウがないため、外部の力を借りる必要がありました」(山脇さん)
SaaSに求められる要件の実現に向けてクラスメソッドに支援要請
APIをAWS上で開発するうえでの技術要件としては、コスト効率が高く、レイテンシーが低いアーキテクチャとすること、テナントごとに詳細なテナント使用量が追跡できるようにすること、テナントごとにAPIキーを自動発行して管理することなどがありました。
「大規模な地図データや検索データを扱っているため、月1回のデータ更新を簡単にできる構成であることが最重要課題でした。さらに、APIキーの入力場所を明確化するなどの課題もありました」(池田さん)
「既存システムはスケーリングが難しく、コスト構造の高いアーキテクチャでしたので、オートスケーリングを見据えた構成にしたり、マネージドサービスで稼働の保証性を担保することも検討していました」(伊藤さん)
これらの課題解決に向けて、同社は2021年にAWSへの全面移行を支援した実績があるクラスメソッドに技術支援を要請しました。
「ビジネスパートナーとして大切なことは、発注元と受注元の関係ではなく、互いがWin-Winになる対等な関係です。その点、クラスメソッドさんは以前のAWS移行のプロジェクトにおいて、受け身でなく私たちと一緒に悩みながら、信頼に応える対応をしてくれました。アウトプットの品質も非常に高かったこともあり、今回も迷わず声をかけました」(山脇さん)
MapFan API新機能の商用化開発プロジェクトは、2023年1月より正式にスタート 。まずは3月に地図の縮尺変更や回転表示が可能な形式で詳細地図を配信する「ベクター地図」と、指定されたエリア・道路の性別・年代別の通行量などが把握できる「道路通行量」 に認証系機能を加えて新規サービスとしてリリースしました。続けて同年7月にはGPSなどで取得した位置情報の誤差を補正する「マップマッチング」の機能をリリースしています。
コスト効率の高いAWSアーキテクチャをベストプラクティスに沿って設計
クラスメソッドは、APIの各機能のアーキテクチャ設計から構築までを支援しました。具体的にはサーバーレス/マネージドサービスをベースとしたコスト効率の高いアーキテクチャを、SaaSのベストプラクティスに沿う形で設計。パフォーマンス上の問題が表面化しやすい部分にはマネージドキャッシュレイヤーを導入し、APIの使用状況を可視化する仕組みを導入しました。また、テナントAPIキー属性や呼び出しメソッドなどをログとして出力し、使用状況の分析を可能としています。
「サーバーレスでAWS Lambdaを使った際、単体では期待どおりのパフォーマンスが得られず、キャッシュの導入を検討しました。当初はAmazon CloudFrontの活用を考えていましたが、クラスメソッドさんからAmazon API Gatewayでキャッシュがかけられることを教えてもらい、本番環境に実装できました。また、ボトルネックが原因でAWS Lambdaのパフォーマンスが出ずに苦労していた際、ロジックの組み方をアドバイスしてもらいました」(伊藤さん)
プロジェクト中は、週1回の定例会を実施して課題や進捗状況を確認した他、プロジェクト管理ツールのBacklogを活用して随時コミュニケーションを取りながら進めました。
「不明点を突然聞いても、速攻でレスが返ってきました。新規のサービス開発で不安が大きい中、さまざまなシーンでお墨付きをもらいながら進められたので、安心感につながりました」(池田さん)
プロジェクト全体を統括していた山脇さんも、期待を上回るクラスメソッドの支援を高く評価しています。
「今回のプロジェクトの開発メンバーの数が3名と少ない中で、開発が滞っている部分に対しても自発的に提案してくれて、結果としてスピード感ある開発につながりました。実を伴わない理想論を押しつけたり、受け身のパートナーも少なくない中、クラスメソッドさんは理想と現実のギャップに対する落としどころを見据えた提案をしてくれて、非常に助かりました」(山脇さん)
サーバーレスの活用により想定した維持コストの10分の1に収束
クラスメソッドの支援もあり、同社はMapFan APIの新機能である「ベクター地図」と「道路通行量」は実質2カ月、「マップマッチング」は3カ月と、当初予定していた短納期のリリーススケジュールに間に合わせてリリースできました。ランニングコストや日々の運用工数も想定以上に削減が進んでいます。
「ベクター地図の場合、当初はAmazon ECSによる配信を考えていましたが、サーバーレスで実現できたことで、当初想定した維持費の10分の1に収まったと試算しています。」(伊藤さん)
「日々の運用も、マネージドサービスやサーバーレスの活用により工数がかからず、監視体制もAmazon CloudWatchだけで実現しているため、想定より低コストで十分な運用品質を維持できています」(池田さん)
「様々な知識を習得したことで、AWS認定ソリューションアーキテクト-アソシエイトの資格が取得できるレベルまで成長できたと自分自身でも手応えを感じています」(伊藤さん)
既存のAPIサービスを運用しているプラットフォームをモダン化へ
MapFan APIの新機能の開発は、今回の案件で終わりではなく、今後も継続して進めていく予定です。さらに、既存のAPIサービスを運用しているプラットフォームについても、アーキテクチャや運用環境を見直しながら、モダン化や改善を進めていく方針です。
「新機能開発と既存環境改善の両面において、今後もクラスメソッドさんの力が必要となってきますので、その際は力を貸してもらいたいと考えています」(山脇さん)
地図APIサービスの新機能開発をきっかけに、クラウドネイティブなアーキテクチャに向けた第一歩を踏み出したジオテクノロジーズ。クラスメソッドは引き続き、さまざまな技術支援を通してサービスや同社の技術力の進化に貢献してまいります。