よろずやIT
用語辞典

レートリミットとは?「アクセスしすぎ」で弾かれる仕組み

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

用語辞典のイラスト

レートリミットとは何か

レートリミット(Rate Limit、「速度制限」の意)とは、特定の利用者や端末からのアクセス回数を、一定時間あたりに制限する仕組みのことです。「短時間にアクセスしすぎたため、一時的に弾かれる」という現象の多くは、このレートリミットによるものです。

なぜアクセス回数を制限する必要があるのか

サーバーが処理できる能力には限りがあります。もし1つの利用者が、短時間に大量のアクセスを送り続けることを無制限に許してしまうと、以下のような問題が起こります。

こうした事態を防ぐため、あらかじめ「1分間に◯回まで」といった上限を設け、それを超えたアクセスを一時的に拒否する仕組みが導入されています。

「順番待ちの整理券」に例えると

レートリミットの仕組みは、人気店の整理券に例えるとイメージしやすくなります。お店(サーバー)が一度に対応できる人数には限りがあるため、「1人あたり10分に1回まで」といったルールを設け、それを超えて何度も列に並ぼうとする人には、少し待つようお願いする、というイメージです。

レートリミットにかかるとどうなるか

レートリミットの上限を超えてアクセスすると、多くの場合、以下のような応答が返されます。

開発者にとってのレートリミット

外部のサービスが提供するAPI(プログラム同士がデータをやり取りする窓口)の多くには、レートリミットが設定されています。開発者は、この上限を超えないよう、アクセスの頻度を調整したり、一定間隔を空けてリクエストを送るといった工夫を行う必要があります。

「システム障害かと思ったら、実は自分側が原因だった」

レートリミットで印象に残るのは、「サービスが壊れたと思ったら、実は短時間にリクエストを送りすぎていただけだった」というケースです。APIを使ってデータを取得するとき、最初は「必要なデータを全部取りに行けばいい」と考えてしまいがちです。ところが、ループ処理などで大量のリクエストを一気に送ると、サービス側から「少し待ってください」と制限をかけられることがあります。利用者からすると「さっきまで動いていたのに、急にエラーになった」ので、システム障害に見えます。逆に、自分たちがサービスを作る側なら、レートリミットを設定していないことで、想定以上のアクセスが集中してシステムに負荷がかかることもあります。レートリミットは「利用者を邪魔するための制限」ではなく、サービスを守りながら公平に使ってもらうための仕組みだと考えると分かりやすいです。

振り返ると

レートリミットは、限られたサーバーの処理能力を、すべての利用者に公平に、かつ安全に届けるための「アクセス回数の整理券」のような仕組みです。エラーに遭遇した際は、慌てずに少し時間を置いてから再度試してみましょう。

関連記事:APIをループで呼ぶ時の3つの約束

関連記事:APIのタイムアウトとリトライの決め方、冪等キー(Idempotency-Key)とは

PRWeb API設計実践入門──API仕様ファーストによるテスト駆動開発 [ 柴田 芳樹 ]

Web API設計実践入門──API仕様ファーストによるテスト駆動開発 [ 柴田 芳樹 ]

¥2,860

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.レートリミットにかかってしまった場合、すぐに解除する方法はありますか?

A.多くの場合、一定時間が経過するのを待つ以外の方法はありません。制限時間はサービスによって異なりますが、数秒から数十分程度に設定されていることが一般的です。

Q.普通に使っているだけなのに、レートリミットにかかることはありますか?

A.はい。ページの自動更新やアプリの不具合により、意図せず短時間に大量のアクセスが発生し、レートリミットにかかってしまうケースもあります。心当たりがない場合は、利用しているアプリやブラウザの拡張機能を見直してみるとよいでしょう。

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。