← ブログに戻る

IP ジオロケーション API の無料枠:比較すべき制限

IP ジオロケーション API の無料枠:比較すべき制限

IP ジオロケーション API の無料枠とは、通常は1日、1カ月、または1分あたりで測られる、上限付きのルックアップ許容量のことで、料金を払わずにテストしたり小規模なプロジェクトを運用したりできるものです。ただし、上限は比較すべき複数の制限の1つにすぎません。

プロバイダーによって許容量の単位が大きく異なるため、見出しの数字を単純に比較すると誤解を招きます。公開されている制限も頻繁に変わります。そこでこの記事では、他のプロバイダーの数値を引用せず、各プロバイダーの最新のドキュメントに当てはめるチェックリストと、同じ基準で比較できるよう ipto が採用している正確な条件を示します。

レート制限、クォータ、バースト許容量は別のもの

レート制限は速度を制御します。1秒または1分あたりに送信できるリクエスト数で、超えるとサーバーが HTTP 429 のようなエラーで応答します。クォータは量を制御します。1日または1カ月に行えるリクエストの総数です。プロバイダーは片方だけ、もう片方だけ、あるいは両方を持つことがあり、失敗の仕方もそれぞれ異なります。

月間上限のない分単位の制限は、トラフィックの少ないサイトには向いていますが、何千ものルックアップを一度に送るバッチジョブは破綻させかねません。分単位の制限のない月間クォータはバッチ処理に向いていますが、本番のサービスにとっては、月の20日に許容量が尽きるまで何の警告もありません。1日のクォータはその中間で、リセットが UTC の午前0時なのか、ローリングの24時間なのか、サインアップ時刻に紐づくのかがわかれば、計画の立てられるスケジュールでリセットされます。プロバイダーのドキュメントにはそれが書かれているはずです。

無料枠のページを読むときは、4つの数値を書き留めてください。バーストまたは分単位の上限、1日または1カ月のクォータ、上限に達したときの挙動(ハードエラー、スロットリング、自動的な超過課金)、そしてレスポンスヘッダーが残りの許容量を示すかどうかです。これらを明記していないプロバイダーは、本番利用ではリスクとして扱ってください。

「無制限」や「無料」が隠しているもの

料金表の「無制限」という言葉は、エンジニアが期待する意味であることはまれです。月ではなく分あたりのリクエストを指していたり、フェアユース条項が付いていたり、限られたフィールドにしか適用されなかったりします。最も安全なのは、料金ページではなく利用規約を読み、フェアユース、スロットリング、許容される利用に関する文言を探すことです。

無料枠は、リクエスト数よりも重要な、次の3つの点でも異なることがよくあります。

  • フィールドの制限。基本的な位置情報は含まれていても、ネットワーク、セキュリティ、VPN 関連のフィールドは有料プランに入っている場合があります。クォータを比較する前に、実際に必要なレスポンスのフィールドを確認してください。
  • 商用利用。無料プランの中には、開発、テスト、非商用のプロジェクト専用と明記されたものがあります。そのようなプランで本番に出荷すると、規約に違反するおそれがあります。
  • サインアップとキーの要件。キー不要のアクセスは簡単なテストには便利ですが、キーがあればプロバイダーがトラフィックをあなたに帰属させられ、より高い許容量が解放されることもあります。

これらすべてについて、信頼できる情報源はプロバイダーの最新のドキュメントです。ブログ記事、このコンテンツの古い版も含め、そこに引用された数値はすぐに古くなります。

自分のトラフィックをクォータに照らして見積もる方法

クォータの比較は、実際の利用状況に照らしてはじめて意味を持ちます。トラフィックから1日あたりのルックアップ数を見積もってください。ページビューのたびにルックアップを行えば、どんな無料枠もすぐに使い切ります。サインアップ、チェックアウト、ログインのときだけアドレスを調べるなら、ページビューのごく一部の量で済みます。

キャッシュは計算を変えます。アドレスの位置とネットワークの所有者はゆっくり変わるため、ほとんどの用途では結果を数時間から1日キャッシュするのが妥当です。レスポンスを IP をキーにして保存すれば、リクエストごとではなく、キャッシュウィンドウごとにユニークなアドレス1つにつき1回だけコストを払うことになります。一括処理については、キューとバックオフを扱った一括ルックアップのアーキテクチャに関する記事をご覧ください。

失敗した場合の経路も計画してください。API がエラーや制限のレスポンスを返したときにアプリケーションがどう動くかを事前に決めておきます。補完を飛ばして継続する(フェイルオープン)、リスクの高い操作では拒否する(フェイルクローズ)、キャッシュ済みの値を返す、のいずれかです。許容量がなくなったときにコードが適切に縮退動作する場合に限り、無料枠は妥当な出発点になります。

ipto の無料枠に含まれるもの

ipto はサインアップ不要で無料、1日1,000リクエストまで利用できます。IP ルックアップは、国、都市、ASN、組織、通貨コード、そしてフラグ is_vpn、is_tor、is_abuser、is_datacenter、さらに bogon と bogon_type を返します。これらのフィールドは別のプランの背後に隠されていないため、上記のフィールド制限の確認は一言で済みます。脅威フィードは6時間ごと、IP と ASN のデータセットは毎日更新されます。このサービスはレジデンシャルプロキシを検知せず、都市レベルの位置は性質上近似であり、その理由は都市レベルの精度に限界がある理由で説明しています。

コードを書かなくてもデータを試せます。アドレスをVPN・Tor・プロキシチェッカーに貼り付けてセキュリティフラグを確認し、ASN ルックアップでネットワークの所有者を調べ、IP 不正利用チェッカーでアドレスの評価を確認し、リクエスト形式は API ドキュメントで読んでください。どのプロバイダーを選ぶにしても、決める前に、自社のトラフィックから取ったアドレスのサンプルを各候補に通してください。カバレッジと精度は、地域やネットワークの種類によって異なるからです。

率直な回答

レート制限はリクエストを送れる速さ(たとえば1秒または1分あたり)に上限を設けるもので、クォータは1日や1カ月といったより長い期間の総量に上限を設けるものです。無料枠は、どちらか一方、または両方を課すことがあります。
ipto はサインアップ不要で、1日1,000リクエストまで無料です。is_vpn、is_tor、is_abuser などのセキュリティフラグは、別のプランではなく、同じレスポンスに含まれます。
制限、利用できるフィールド、商用利用のルールは時間とともに変わり、第三者の記事は古くなるため、信頼できる情報源はプロバイダー自身の最新のドキュメントと利用規約です。
← ブログに戻る