Amazon Location Serviceは、地図表示・住所や施設の検索・ルート計算・位置の追跡・ジオフェンスをAWSのAPIとして提供するサービスです。2024年11月に地図・検索・ルートの3つが「リソースを作らずに直接呼べるAPI(V2)」へ刷新され、APIキーだけで呼び出せるようになりました。この記事では、東京リージョンの単価と無料トライアル、認証方式の選び方、MapLibreとPythonで動かすコード、日本で使えない機能、Google Maps Platformとの違いを公式情報から整理します。
まとめ:Amazon Location Serviceの要点
- 機能はMaps(地図)・Places(検索)・Routes(ルート)・Trackers(追跡)・Geofences(ジオフェンス)の5つ。Maps・Places・Routesは2024年11月からリソース作成不要のV2 APIが標準になった。
- 料金は前払い・最低料金なしの従量課金。東京リージョンの単価は、地図タイル1,000枚で0.04米ドル、住所検索(Core)1,000件で0.5米ドル、ルート計算(Core)1,000件で0.5米ドル。最初の3か月は無料トライアルがある。
- 検索結果を保存するなら
IntendedUse=Storageの指定が必要で、単価は1,000件4.0米ドル(Coreの8倍)。ただしAWSサービス規約は、HEREから取得した日本の位置データの保存・キャッシュを禁じている。 - APIキーで呼べるのはMaps・Places・Routesだけ。TrackersとGeofencesにはCognitoかIAMが要る。
- 日本では入力補完のAutocompleteが提供されず、トラック向けルート計算も非対応。配送ルートにトラック規制を反映したい用途では採用前に確認が必要。
- AWS上に基盤があり、IAMやPrivateLinkで閉じた構成にしたい、追跡とジオフェンスまで一式で持ちたい場合に向く。店舗の口コミや一般消費者に見慣れた地図を最優先するならGoogle Maps Platformが合う。
Amazon Location Serviceでできること:5つの機能とAPIの対応
Amazon Location Serviceの機能は5つで、どのAPI群(CLIのサービス名)で呼ぶかが機能ごとに分かれています。Maps・Places・Routesは2024年11月の刷新で独立したV2 APIになり、TrackersとGeofencesは従来どおりリソースを作って使う方式です。Placesは7種(Geocode・ReverseGeocode・SearchText・SearchNearby・Autocomplete・Suggest・GetPlace)、Routesは5種(CalculateRoutes・CalculateRouteMatrix・CalculateIsolines・OptimizeWaypoints・SnapToRoads)のAPIがあります。
| 機能 | 主なAPI | CLIのサービス名 | APIキー |
|---|---|---|---|
| Maps(地図) | GetTile・GetStyleDescriptor・GetStaticMap | geo-maps |
可 |
| Places(検索) | Geocode・SearchText・Suggest ほか | geo-places |
可 |
| Routes(ルート) | CalculateRoutes・OptimizeWaypoints ほか | geo-routes |
可 |
| Trackers(追跡) | BatchUpdateDevicePosition・GetDevicePositionHistory | location |
不可 |
| Geofences(ジオフェンス) | PutGeofence・BatchEvaluateGeofences | location |
不可 |
公式ガイドは、ベースマップ・ジオコーディング・住所データの提供元としてHEREを挙げています。東京リージョンでV2の地図スタイル記述子(GetStyleDescriptor)を取得すると、帰属表記に「AWS」と「HERE」が入っています。東南アジア8か国ではGrabMapsも選べ、2026年3月31日からはGrabMapsもV2 APIで使えるようになりました(シンガポールとマレーシアのリージョン限定)。
2024年11月の刷新:リソース作成が要らないV2 API
旧API(V1)との違い
V1では、地図を出す前にMapリソース、検索の前にPlace index、ルート計算の前にRoute calculatorを作り、その名前を指定して呼び出していました。2024年11月8日のWhat’s Newで発表されたV2では、こうしたリソースが不要になり、リージョンのエンドポイントへ直接リクエストを送ります。
V1のAPIは今も呼べますが、AWS SDKのAPI定義では CreateMap・CreatePlaceIndex・CreateRouteCalculator に「no longer current and may be deprecated in the future」と書かれ、V2への移行が推奨されています。検索上位のハンズオン記事にはV1でPlace indexを作る手順のものが残っているので、2024年以前の手順をなぞる前に、どちらのAPIかを確認してください。地図・検索・ルートを新しく組み込むなら、V2を前提にするのが筋です。V1を選ぶのは、Open Dataの地図スタイルなどV1のリソースで提供元を指定する機能がどうしても要る場合に限られます。
V2で追加された主な機能
- Places:住所に特化したGeocode、周辺施設のSearchNearby、営業時間・連絡先などの詳細取得
- Routes:通行料金の計算、最大50地点の巡回順の最適化(OptimizeWaypoints)、到達圏の算出(CalculateIsolines)、GPS軌跡を道路へ吸着させるSnapToRoads
- Maps:静的な地図画像(GetStaticMap)、Standard・Monochrome・Hybrid・Satelliteの4スタイル、ダークモード
その後も機能追加が続いています。2025年2月25日にAWS PrivateLink対応、2025年10月27日にAPIキーをAndroidのパッケージ名とiOSのバンドルIDで制限する機能、2026年4月2日に等高線の密度指定・渋滞のみの交通表示・3D地形が加わりました。
日本で使うときの制約:Autocomplete非提供とトラック経路
日本向けのアプリで採用するなら、最初に確認すべきなのが国別の対応状況です。公式のデータ品質と対応範囲のページとPlacesのクォータのページを照合すると、日本は地図・住所・施設のデータが最上位の「Comprehensive」である一方、使えない機能が3つあります。
| 項目 | 日本の対応 |
|---|---|
| 地図・ルート・番地・施設(POI) | Comprehensive |
| 車・スクーターのルート | Comprehensive |
| トラックのルート | 非対応(Unsupported) |
| 交通情報 | 流れ(Flow)のみ。事故・工事は無し |
| Autocomplete(入力補完) | 日本では提供なし |
| 東京リージョン(ap-northeast-1) | V2の全APIの単価が設定済み |
Placesのクォータのページは「Autocomplete is not available in Japan.」と明記しています。住所入力フォームで1文字ごとに候補を出したい場合は、日本ではSuggestで代用します。Suggestは施設名と住所の両方を候補に返すAPIで、IDとラベルだけを受け取るLabel区分なら1,000件0.2米ドルです。
トラックのルートが非対応なのは、物流用途では見落とせません。車両の高さ・重量・危険物による通行規制を反映したルートを日本国内で引く用途に、Amazon Location Serviceは使えません。乗用車ルートで足りる訪問営業や、ルートは別システムで引き、位置の追跡とジオフェンスだけを任せる構成なら問題にならない制約です。
規約面では、日本の位置データ(ジオコーディング結果を含む)の保存・キャッシュ禁止(サービス規約82.5.a)が日本固有の制約です。詳しくは料金の章で扱います。地域を問わず、車載のインフォテインメント機器や車載ハードウェアに入れるリアルタイムのルート最適化アプリへの組み込みも禁止され、車内で使うスマホアプリは許可されています(82.4.c)。
Amazon Location Serviceの料金:課金区分と東京リージョンの単価
課金区分(Label・Core・Advanced・Premium・Stored)
V2の料金はAPIの種類だけでなく、リクエストで指定したオプションで変わります。たとえばCalculateRoutesは、車・歩行者ならCore、スクーターならAdvanced、通行料金を計算させるとPremiumです。どの区分で課金されたかはレスポンスの PricingBucket に返るので、開発中にログへ出しておくと請求の想定違いを防げます。
次の表は、AWSの料金ページが表示に使う公式の料金データ(2026年9月11日公開版・10月19日取得)から、東京リージョンの単価を抜き出したものです。東京とバージニア北部で単価は同じでした。
| API | 区分 | 1,000件あたり(米ドル) |
|---|---|---|
| 地図タイル(GetTile) | - | 0.04 |
| 静的地図(GetStaticMap) | - | 0.5 |
| Suggest・Autocomplete | Label/Core | 0.2/0.5 |
| Geocode・SearchText・SearchNearby・GetPlace | Core/Advanced | 0.5/1.5 |
| Geocode・SearchText等の結果保存 | Stored | 4.0 |
| CalculateRoutes | Core/Advanced/Premium | 0.5/1.5/4.0 |
| CalculateRouteMatrix(ルート数) | Core/Advanced | 0.5/1.5 |
| OptimizeWaypoints・SnapToRoads | Advanced/Premium | 1.5/4.0 |
| CalculateIsolines(返した到達圏の数) | Advanced/Premium | 1.5/4.0 |
スタイル記述子・フォント・アイコン画像を返すGetStyleDescriptor・GetGlyphs・GetSpritesは無料です。月間の利用額が5,000米ドルを超えると数量割引の相談対象になります。
検索結果の保存料金とHEREの日本データの保存制限
Placesの結果を保存して再利用する場合、キャッシュ目的でもリクエストに IntendedUse=Storage を付ける必要があります。API定義には「When storing SearchText responses, you must set this field to Storage to comply with the terms of service.」とあり、単価はStored区分の1,000件4.0米ドルです。月5万件をジオコーディングすると、保存しなければCore区分で25米ドル、保存すれば200米ドルになります。
日本向けではさらに強い制約があります。AWSサービス規約の82.5.aは、HEREを提供元として使う場合に「Store or cache any Location Data for Japan, including any geocoding or reverse-geocoding results.」を禁止しています。Storedを指定すれば保存してよいという82.4.aの例外も、括弧書きで82.5.aの禁止を除いています。顧客住所を一度ジオコーディングして座標をDBに貯める、という配送先マスタでよくある設計は、日本の住所では規約に抵触するおそれがあります。採用前にAWSへ確認するか、座標を保存してよいデータ源(端末で測位した座標や、保存を認める別サービス)と組み合わせてください。
無料トライアルと無料利用枠クレジット
利用開始から3か月間は、次の量まで毎月無料です。超えた分とAdvanced・Premium・Storedの区分は有料になります。
| 機能 | 3か月間の毎月の無料量 |
|---|---|
| Maps | タイル500,000件・静的地図5,000件 |
| Places | Label 10,000件・Core 20,000件 |
| Routes | Core 10,000ルート |
| Trackers | 位置の書き込み200,000回 |
| Geofences | 位置の評価200,000件 |
これとは別に、2025年7月15日以降に作成したAWSアカウントには最大200米ドルの無料利用枠クレジットが付き、Amazon Location Serviceにも使えます。無料プランはアカウント作成から6か月、クレジットの有効期限は作成日から12か月です。AWSの無料枠の改定はAWS・Azure・Google Cloudの違いを比較した記事でも整理しています。
認証の選び方:APIキー・Cognito・IAM
Amazon Location ServiceはAPIキー・Amazon Cognito・IAMの3つの認証方式に対応しています。2023年7月からAPIキーが使えるため、「IAMでしか認可できない」という説明は古い情報です。公式の比較表をもとに整理すると次のとおりです。
| 観点 | APIキー | Amazon Cognito | IAM |
|---|---|---|---|
| 呼べるAPI | Maps・Places・Routes | 全API | 全API |
| ユーザー認証 | 不要 | 任意 | 必要 |
| 向く用途 | 公開Web・モバイルの地図と検索 | 匿名で追跡・ジオフェンスも使う | サーバー側・社内ツール |
| PrivateLink経由 | 不可 | 可(地図の一部APIを除く) | 可(同左) |
ブラウザやアプリから地図と検索だけを使うならAPIキーが最短です。キーはブラウザに露出するので、許可するアクションを絞り、Webならリファラー(ドメイン)、Androidならパッケージ名と署名証明書のSHA-1フィンガープリント、iOSならバンドルIDで制限をかけます。端末から位置を送ってTrackersに書き込むなど、APIキーで呼べない操作をログイン無しで使わせたいときはCognitoのIDプールで一時認証情報を発行します。手順はCognito IDプールの実装手順で解説しています。
PrivateLinkのインターフェースエンドポイントはAPIキー認証に対応せず、地図表示に要るGetStyleDescriptor・GetGlyphs・GetSpritesもエンドポイント経由では呼べません。閉域で使えるのは検索・ルート・追跡などのAPIで、地図の描画はパブリックのエンドポイントを使う前提で設計してください。
使い方:APIキーによる地図表示とPythonでの検索・ルート計算
APIキーを作成する
APIキーはコンソールの「API keys」から作れます。CLIでは次のように、許可するアクションとリソース、リファラーを指定します。V2のリソースARNは arn:aws:geo-maps:リージョン::provider/default の形式で、アカウントIDの欄は空です。
aws location create-key \
--key-name web-map-key \
--restrictions '{
"AllowActions": ["geo-maps:*", "geo-places:Geocode", "geo-places:SearchText", "geo-places:Suggest"],
"AllowResources": [
"arn:aws:geo-maps:ap-northeast-1::provider/default",
"arn:aws:geo-places:ap-northeast-1::provider/default"
],
"AllowReferers": ["https://example.com/*"]
}' \
--no-expiry \
--region ap-northeast-1
キーの値は v1.public. で始まる文字列で、レスポンスの Key に返ります。本番では --no-expiry の代わりに --expire-time で期限を切り、定期的に入れ替える運用が推奨されています。
MapLibre GL JSで地図を表示する
地図の描画にはオープンソースのMapLibre GL JSを使います。MapLibre GL JSの6系(6.0.0は2026年7月22日公開)はESモジュール(maplibre-gl.mjs)での配布で、最新の6.15.0には従来のサンプルが読み込む dist/maplibre-gl.js がありません(unpkgで404)。5系の書き方をそのまま使うと地図が出ないので、6.15.0では次のように書きます。
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/maplibre-gl.css">
<div id="map" style="height: 480px;"></div>
<script type="module">
import { Map, NavigationControl } from "https://unpkg.com/[email protected]/dist/maplibre-gl.mjs";
const apiKey = "v1.public.xxxxxxxx"; // 作成したAPIキー
const region = "ap-northeast-1";
const style = "Standard"; // Standard・Monochrome・Hybrid・Satellite
const map = new Map({
container: "map",
style: `https://maps.geo.${region}.amazonaws.com/v2/styles/${style}/descriptor?key=${apiKey}`,
center: [139.7671, 35.6812], // [経度, 緯度](東京駅)
zoom: 14,
});
map.addControl(new NavigationControl());
</script>
スタイル記述子のURLにキーを付けると、記述子の中のタイルURLにも同じキーが埋め込まれて返ってきます。記述子そのものは無料APIで、2026年10月19日に東京のエンドポイントへキー無しで送ったところ200で記述子が返り、タイル(/v2/tiles/)はキー無しだと403でした。地図が真っ白なときは、キーのアクションに geo-maps:GetTile が含まれているかとリファラーの指定を確認してください。
Python(boto3)で場所を検索してルートを計算する
サーバー側からはIAMの認証情報でAWS SDKを使います。boto3は1.35.52以降で geo-places と geo-routes のクライアントが使えます。
import boto3
places = boto3.client("geo-places", region_name="ap-northeast-1")
routes = boto3.client("geo-routes", region_name="ap-northeast-1")
# 東京駅付近を優先して検索する(BiasPosition は [経度, 緯度])
res = places.search_text(
QueryText="東京タワー",
BiasPosition=[139.7671, 35.6812],
Language="ja",
MaxResults=3,
)
for item in res["ResultItems"]:
print(item["Title"], item["Address"]["Label"], item["Position"])
print("課金区分:", res["PricingBucket"])
if not res["ResultItems"]:
raise SystemExit("検索結果が0件です。検索語と BiasPosition を見直してください")
# 東京駅から検索結果の1件目までの車ルート
r = routes.calculate_routes(
Origin=[139.7671, 35.6812],
Destination=res["ResultItems"][0]["Position"],
TravelMode="Car",
)
s = r["Routes"][0]["Summary"]
print(f"距離 {s['Distance']} m / 所要 {s['Duration'] // 60} 分 / 課金区分 {r['PricingBucket']}")
SearchTextでは BiasPosition・Filter.BoundingBox・Filter.Circle のどれか1つを必ず指定します。API定義に「Exactly one of the following fields must be set」とあり、検索語だけでは呼べません。CLIでも同じで、次のように中心座標を付けます。
aws geo-places search-text \
--query-text "東京駅" \
--bias-position 139.7671 35.6812 \
--language ja \
--region ap-northeast-1
座標の並びはどのAPIでも経度が先です。緯度・経度の順で渡すと、別の地点を指定したことになるか、東京のように経度が90を超える場所では緯度の範囲外としてエラーになります。Googleの lat・lng 形式から移植するときは特に注意してください。クォータは1リージョンあたりの毎秒リクエスト数で、既定値はSearchTextなどPlacesの各APIが100、CalculateRoutesが20、CalculateRouteMatrixとOptimizeWaypointsが5です。超えた分はスロットリングされ、既定の2倍まではService Quotasのコンソールから引き上げを申請できます。
AIのコーディング支援を使う場合は、公式がClaude Code・Cursor・Kiro向けのプラグイン(2026年2月25日発表)を出しています。V1の古い書き方をAIが出力するのを減らす助けになりますが、生成されたコードがV2のAPI名(geo-places など)を使っているかは自分で確認してください。
TrackersとGeofencesによる車両・資産の位置監視
Trackersは端末の位置を時系列で保存し、Geofencesは地図上に引いた領域への出入りを判定します。この2つはV1と同じリソース方式で、トラッカーとジオフェンスコレクションを作ってから使います。トラッカーをジオフェンスコレクションに関連付けると、位置が書き込まれるたびに自動で判定され、出入りのイベントがAmazon EventBridgeに流れます。そこからLambdaで通知や業務システムへの連携につなげる構成が基本です。
トラッカーには位置のフィルタリングがあり、既定の TimeBased は端末ごとに30秒に1件だけ履歴を保存します(ジオフェンス判定は全件)。DistanceBased は30m未満の移動を、AccuracyBased は測位誤差より小さい移動を無視し、無視した更新は保存もジオフェンス判定もしません。GPSの揺れで出入りイベントが連発する場合や、判定件数の料金を抑えたい場合はこの2つが効きます。
| 項目(東京リージョン) | 1,000件あたり(米ドル) |
|---|---|
| 位置の書き込み(月50万件まで) | 0.05 |
| 位置の書き込み(50万〜500万件) | 0.035 |
| ジオフェンスでの位置評価(月25万件まで) | 0.16 |
| ジオフェンスでの位置評価(25万〜200万件) | 0.11 |
| 1か月を超えて保存するジオフェンス(月額) | 0.2 |
車両100台が30秒ごとに位置を送ると、1か月(30日)で864万件の書き込みになります。段階料金を当てはめると、50万件までが25米ドル、500万件までの450万件が157.5米ドル、残り364万件が1,000件0.025米ドルで91米ドル、合計約274米ドルです。ジオフェンス判定も同じ件数なら別に評価料金がかかります。送信間隔は請求額に直結するので、監視に必要な粒度から逆算して決めてください。
IoT機器から位置を送る場合は、AWS IoT CoreのLocationアクションでAmazon Location Serviceのトラッカーへ転送できます。車両の位置管理という業務の全体像は動態管理システムの解説が参考になります。IoT機器の選定からクラウド側の監視までまとめて検討する場合は、当社のAI/IoTソリューションでも相談を受けています。
Google Maps Platform・ZENRIN・OSMとの違いと選び方
| 観点 | Amazon Location Service | Google Maps Platform |
|---|---|---|
| 地図・住所データ | HERE(東南アジアはGrabも可) | |
| 無料の範囲 | 最初の3か月の無料トライアル | SKUごとの月間無料上限 |
| 課金の単位 | 地図タイル数・リクエスト数 | SKUごとの呼び出し数 |
| 認証 | APIキー・Cognito・IAM | APIキー・OAuth 2.0(対応API) |
| 追跡・ジオフェンス | Trackers・Geofencesで提供 | 別途実装 |
Google Maps Platformは2025年3月1日に毎月200米ドルのクレジットを廃止し、SKUごとの月間無料上限へ切り替えました。無料の量が毎月続くGoogleに対し、Amazon Location Serviceの無料トライアルは最初の3か月だけです。課金の数え方も、Amazon Location Serviceの地図は表示した地図タイルの枚数なので、単価表を並べただけでは比べられません。想定する画面遷移で何回呼ばれるかを数えてから見積もってください。
組み合わせ方にも制約があります。サービス規約82.5.bは、HEREのルートを他社の地図に重ねること、他社のルートをHEREの地図に重ねることを禁じています。Googleの地図にAmazon Location Serviceで引いたルートを描く構成は取れません。
Amazon Location Serviceを選ぶべきなのは、基盤がAWSにあり、IAMやPrivateLinkで位置データを閉じた経路で扱いたい場合と、車両や作業員の追跡・ジオフェンスまで1つのサービスで持ちたい場合です。逆に、日本国内でトラックの通行規制を考慮したルートが必要な配送計画、日本の住所の座標をDBに貯めて使い回す設計、店舗の口コミや写真を含む施設情報を一般消費者に見せるアプリには向きません。1つ目はトラック非対応、2つ目は規約82.5.a、3つ目はGoogleの施設データと見慣れた地図の方が利用者の期待に合うためです。
国内の住宅地図レベルの詳細さが要るならZENRINのAPIも候補になります。料金体系はZENRIN Maps APIの料金と無料枠で比較しています。地図データを自前で持ち、タイルも自分で配信したい場合はOpenStreetMapや、Web GISのタイル配信の構成が選択肢です。
よくある質問
Amazon Location Serviceの料金はいくらですか?
前払い・最低料金なしの従量課金です。東京リージョンでは地図タイル1,000枚0.04米ドル、住所検索(Core)1,000件0.5米ドル、ルート計算(Core)1,000件0.5米ドルが基本の単価です。営業時間などの詳細や通行料金を求めると上位の区分に、結果を保存すると1,000件4.0米ドルになります(HEREから取得した日本の位置データは、規約で保存自体が禁止)。
Amazon Location Serviceは無料で使えますか?
利用開始から3か月間の無料トライアルがあり、毎月タイル500,000件・Core検索20,000件・ルート10,000件などまで無料です。2025年7月15日以降に作ったAWSアカウントなら、最大200米ドルの無料利用枠クレジットも使えます。
Amazon Location ServiceとGoogle Mapsはどちらを使うべきですか?
AWS上のシステムに組み込み、追跡・ジオフェンスまで使うならAmazon Location Serviceです。一般消費者向けに施設の口コミや写真を見せたいならGoogle Maps Platformが合います。地図の見た目をスタイルで作り込みたい場合の候補となるMapboxの料金の数え方はMapboxとは?料金・ライセンスとGL JS v3の実装手順、Google Mapsとの選び分けで比較しています。日本でトラックのルートを引きたい場合は、Amazon Location Serviceが非対応なので、大型車の通行規制に対応した別のルート検索サービスを探す必要があります(Google Maps Platformの大型車ルートも一部の顧客向けの提供です)。
日本や東京リージョンで使えますか?
東京リージョン(ap-northeast-1)で使え、日本の地図・住所・施設データは最上位のComprehensiveです。ただし入力補完のAutocompleteは日本で提供されておらず、トラック向けのルート計算も非対応です。入力補完はSuggestで代用できます。HEREから取得した日本の位置データ(ジオコーディング結果を含む)は、規約で保存・キャッシュが禁止されている点にも注意してください。自社の端末から送った位置をTrackersに保存することは、この制約の対象ではありません。
APIキーで使えますか?
使えます。APIキーで呼べるのはMaps・Places・Routesで、TrackersとGeofencesにはAmazon CognitoかIAMの認証が必要です。ブラウザに置くキーは、許可するアクションとリファラーを絞って作成してください。