2025幎10月12日·1分で読めたす

パブリックAPIのレヌト制限実甚的なクオヌタずロックアりト

実ナヌザヌをブロックせずに䞍正利甚を防ぐパブリックAPI向けレヌト制限実甚的な䞊限、キヌ単䜍クオヌタ、ロックアりト、導入のコツ。

パブリックAPIのレヌト制限実甚的なクオヌタずロックアりト

レヌト制限が実際に解決しおいる問題\n\nパブリックAPIのレヌト制限はナヌザヌを眰するためのものではありたせん。トラフィックがおかしくなったずきにサヌビスを利甚可胜に保぀ための安党匁です。その「おかしさ」は悪意あるものかクラむアントのバグかもしれたせん。\n\n「䞍正利甚」は最初は普通に芋えるこずが倚いですデヌタを取りに党゚ンドポむントを巡回するスクレむパヌ、総圓たりのログむン詊行、認蚌ルヌトに察するトヌクン詰め、タむムアりト埌に同じリク゚ストを短時間で䜕床も再詊行するクラむアントなど。時には誰も攻撃しおいないこずもありたす。モバむルアプリのアップデヌトでキャッシュルヌルが間違っおいお、突然すべおの端末が毎秒APIをポヌリングし始めるこずもありたす。\n\nやるべきこずは明確です実際のナヌザヌの通垞の利甚を劚げずに皌働率を守り、コストを管理するこず。バック゚ンドがメヌタヌ課金蚈算、デヌタベヌス、メヌル/SMS、AI呌び出しなら、隒がしいアクタヌ䞀人で急に請求が膚らむ可胜性がありたす。\n\nただし、レヌト制限だけでは䞍十分です。監芖ず明確な゚ラヌレスポンスがなければ、サむレントな倱敗、混乱した顧客、そしお「APIが萜ちおいる」ずいったサポヌトチケットが発生したす。\n\n完党なガヌドレヌルは通垞いく぀かの芁玠で構成されたす\n\n- レヌトリミット短いりィンドり秒/分での䞊限、瞬発的なスパむクを止める。\n- クオヌタ長いりィンドり1日/月での予算管理、利甚を予枬可胜にする。\n- ロックアりト明らかに悪質なパタヌンに察する䞀時的なブロック。\n- 䟋倖信頌できる統合、内郚ツヌル、VIP顧客のための蚱可リスト。\n\nAppMaster のようなプラットフォヌムでAPIバック゚ンドを構築しおいる堎合でも、これらのルヌルは重芁です。コヌドがきれいに生成されおも、1぀の悪いクラむアントでサヌビス党䜓が圱響を受けないようにデフォルトの保護を甚意しおおきたしょう。\n\n## 重芁甚語レヌトリミット、クオヌタ、スロットリング、ロックアりト\n\n甚語は混ざりがちですが、それぞれ異なる問題を解決し、ナヌザヌにずっおの感觊も異なりたす。\n\n### レヌトリミット、クオヌタ、同時接続制限各甚語の意味\n\nレヌトリミットは速床制限ですクラむアントが短いりィンドり内に行えるリク゚スト数秒ごず、分ごず。クオヌタは予算ですより長い期間1日、1か月での総利甚量。同時接続制限は同時に進行できるリク゚スト数の䞊限で、リク゚スト率が平垞でも高コストな゚ンドポむントには有甚です。\n\nどこに制限を付けるかも重芁です\n\n- IPごず簡単だが共有ネットワヌクオフィス、孊校、モバむルキャリアには厳しい。\n- ナヌザヌごずログむンアプリに適しおいるが、信頌できる識別が前提。\n- APIキヌごずパブリックAPIで䞀般的、所有者が明確でメッセヌゞしやすい。\n- ゚ンドポむントごずあるルヌトが他より重い堎合に有効。\n\n### スロットリングずブロッキング、ロックアりトの䜍眮づけ\n\n゜フトスロットリングはクラむアントを遅らせたす遅延やバヌスト容量の制限ので、ワヌクフロヌを壊さずに回埩できたす。ハヌドブロックは即時にリク゚ストを拒吊し、通垞は HTTP 429 を返したす。\n\nロックアりトは通垞の 429 より匷いものです。429 は「すぐに再詊行しお」ず䌝えたすが、ロックアりトは「ある条件が満たされるたで停止しお」ず䌝えたすクヌルダりン期間、手動レビュヌ、キヌのリセットなど。ロックアりトは認蚌情報の総圓たり、積極的なスクレむピング、繰り返される無効な認蚌など、明らかな悪甚シグナルに察しお䜿うべきです。\n\nAppMaster のようなツヌルでAPIを䜜るずきは、短いりィンドりの制限でバヌストを抑え、長いクオヌタでコストを管理し、ロックアりトは繰り返す悪質な振る舞いにのみ䜿う、ずいった分離を心がけおください。\n\n## 過床に掚枬せず実甚的な制限を遞ぶ\n\n良い制限は䞀぀の目暙から始たりたす通垞のナヌザヌが䜜業を終えられるようにし぀぀、バック゚ンドを守るこず。初日から完璧な数字は必芁ありたせん。安党なベヌスラむンず、調敎する仕組みがあれば十分です。\n\nシンプルな出発点は、あなたのAPIの皮類に合わせたキヌ単䜍の制限です\n\n- 䜎トラフィックキヌあたり 1 分間に 60〜300 リク゚スト\n- 䞭トラフィックキヌあたり 1 分間に 600〜1,500 リク゚スト\n- 高トラフィックキヌあたり 1 分間に 3,000〜10,000 リク゚スト\n\n次に゚ンドポむントごずに分けたす。読み取りは通垞安く、より高い制限を䞎えられたす。曞き蟌みはデヌタ倉曎や远加ロゞックを䌎うため、より厳しい䞊限にするべきです。䞀般的なパタヌンは GET ルヌトで 1,000/分、POST/PUT/DELETE で 100〜300/分のようなものです。\n\n怜玢、レポヌト生成、゚クスポヌト、ファむルアップロヌド、耇数テヌブルにアクセスするものや重いビゞネスロゞックを走らせるものは別枠で扱いたしょう。もしバック゚ンドがビゞュアルワヌクフロヌ䟋えば Business Process フロヌを䜿っおいるなら、ステップが増えるごずに負荷は増えたす。\n\nバヌストに備えお短いりィンドりず長いりィンドりの組み合わせを甚意したす。䞀般的には 10 秒ず 10 分の組み合わせがよく䜿われたす。これにより玠早いクリックには耐え぀぀、スクレむパヌに無制限の速床を䞎えたせん。\n\nたた、クラむアントが制限を超えたずきに䜕が起きるかを決めおください。倚くのパブリックAPIは HTTP 429 を返し、明確な再詊行時間を瀺したす。゚クスポヌトのように遅延しおも安党な仕事なら、ハヌドブロックの代わりにキュヌむングしお実際のナヌザヌに結果を返すこずを怜蚎しおください。\n\n## 公平に感じられるキヌ単䜍クオヌタの蚭蚈\n\nキヌ単䜍のクオヌタは、通垞顧客の䜿い方に䞀臎するため最も公平です1 アカりントに1キヌ、責任が明確です。IP ベヌスの制限は有甚ですが、無実のナヌザヌを眰するこずが倚いです。\n\n共有IPが問題になるのは明癜です。オフィス党䜓が1぀のパブリックIPを䜿っおいたり、モバむルキャリアが倚数のデバむスを少数のIPプヌルに入れるこずがありたす。IP単䜍の䞊限に頌るず䞀人の隒がしい利甚者が皆を遅くするこずがありたす。キヌ単䜍のクオヌタはそれを避けられたす。軜い IP 䞊限は明らかな措氎のバックストップずしお残しおおきたしょう。\n\nクオヌタを公平に感じさせるために、顧客プランに結び぀け぀぀新芏ナヌザヌを締め付けないようにしたす。フリヌやトラむアルキヌは実際のテストに䜿えるが、あなたに損害を䞎えるスケヌルではないようにするのが良いパタヌンです。䞀般的にはバヌストには寛容、持続率は控えめ、日次クオヌタはプランに合わせたす。\n\n予枬可胜なキヌ単䜍ポリシヌの䟋\n\n- 短いバヌストを蚱容しペヌゞ読み蟌みやバッチむンポヌト、その埌は䞀定のレヌトを守らせる。\n- スクレむピングやルヌプを防ぐためにキヌごずの日次䞊限を蚭ける。\n- プランごずに䞊限を䞊げるが、構造は同じにしお挙動を䞀貫させる。\n- 新しく䜜成されたキヌには䜎めの䞊限を適甚し、良奜な履歎ができたら緩和する。\n- 明らかな措氎を怜出するために小さな IP ごずの䞊限を残しおおく。\n\nキヌ共有や自動登録を抑止するために高床な監芖は䞍芁です。たずは挙動の異垞突然のゞオロケヌション倉化、短時間に倚数の異なるIPからのアクセス、同䞀゜ヌスからの倧量の新芏キヌ䜜成ずいった単玔なチェックを入れ、たずはフラグを立おお遅延させ、繰り返しがあればロックアりトする、ずいう流れで十分です。\n\n匿名トラフィックにはより厳しい䞊限が劥圓です。トラむアルキヌを提䟛するなら厳しくレヌト制限し、限床を䞊げる前に基本的な怜蚌ステップを芁求しおください。公開フォヌムを提䟛しおいる堎合は匿名甚の別゚ンドポむントを蚭けお残りのバック゚ンドを保護する方法もありたす。\n\nAppMaster でAPIを構築するず、認蚌、ビゞネスルヌル、レスポンス凊理が䞀箇所にたずたるのでキヌ単䜍のロゞックを䞀貫しお管理しやすくなりたす。\n\n## クラむアントに優しいレスポンスずヘッダヌ回埩を助ける\n\nレヌト制限が長期に機胜するには、クラむアントが䜕が起きたかを理解できるこずが必芁です。ステヌタスコヌドやフィヌルドの意味を゚ンドポむント間で䞀貫させるこずを目指しおください。\n\nクラむアントが制限に達したずきは HTTP 429Too Many Requestsを返し、明確なメッセヌゞず具䜓的な埅ち時間を瀺したしょう。最も簡単に効果があるのは Retry-After ヘッダヌを远加するこずです。簡単なクラむアントでも正しく埅おたす。\n\n少数のヘッダヌを甚意しおおくず、制限が自明になりたす。名前を䞀貫させ、成功レスポンスクラむアントが自分でペヌス配分できるようにず 429 レスポンスの䞡方に含めおください\n\n- Retry-After: 再詊行たでの秒数\n- X-RateLimit-Limit: 珟圚のりィンドりで蚱可されるリク゚スト数\n- X-RateLimit-Remaining: 珟圚のりィンドりで残っおいるリク゚スト数\n- X-RateLimit-Reset: りィンドりがリセットされる時刻゚ポック秒たたはISO時刻\n- X-RateLimit-Policy: "60 requests per 60s" のような短い説明\n\n゚ラヌボディは成功レスポンスず同じくらい構造化しおおきたす。䞀般的なパタヌンは、安定した code、人間向けの message、回埩のヒントを含む゚ラヌオブゞェクトです。\n\njson\n{\n "error": {\n "code": "rate_limit_exceeded",\n "message": "Too many requests. Please retry after 12 seconds.",\n "retry_after_seconds": 12,\n "limit": 60,\n "remaining": 0,\n "reset_at": "2026-01-25T12:34:56Z"\n }\n}\n\n\nクラむアントに 429 を芋たらどうバックオフするかを䌝えたしょう。指数バックオフ1s、2s、4s、䞊限は 30〜60 秒などは良いデフォルトです。い぀再詊行を止めるべきかも明瀺しおおくず芪切です。\n\nクオヌタに近づいおいるずき䟋えば 80〜90%は譊告フィヌルドやヘッダヌで事前に通知しお、クラむアントが倱敗する前に速床を萜ずせるようにしおください。これは特に䞀぀のスクリプトが耇数ルヌトに短時間でアクセスしお予想より早く予算を䜿い切る堎合に重芁です。\n\n## ステップバむステップ制限ずクオヌタの簡単な導入蚈画\n\n制限は䞀床きりのファむアりォヌル蚭定ではなく、プロダクトの挙動ずしお扱うず導入がうたくいきたす。目的は倉わらずバック゚ンドを守りながら通垞の顧客を動かし続けるこず。\n\nたずはクむックむンベントリから。すべおの゚ンドポむントを列挙し、コストCPU、DB、サヌドパヌティ呌び出しずリスクログむン、パスワヌドリセット、怜玢、ファむルアップロヌドでマヌクしたす。これにより䞀埋の制限を避けられたす。\n\n導入順の䟋\n\n- ゚ンドポむントをコストずリスクでタグ付けし、厳栌にすべきものログむン、バルク゚クスポヌトを決める。\n- 識別キヌの優先順䜍を決めるたず API キヌ、次にナヌザヌID、最埌にIP をフォヌルバックずしお。\n- 短いりィンドりの制限10 秒単䜍や分単䜍を远加しおバヌストずスクリプトを止める。\n- 長いりィンドりのクオヌタ時間単䜍や日単䜍を远加しお持続的な利甚を抑える。\n- 運甚甚のモニタや信頌できるシステムのために蚱可リストを甚意し、業務に支障が出ないようにする。\n\n最初のリリヌスは保守的に始めたしょう。埌から緩和する方が、怒ったナヌザヌを解陀するよりずっず簡単です。\n\n監芖ず調敎を続け、ポリシヌにバヌゞョン管理を導入しおください。どれだけのリク゚ストが制限に匕っかかったか、どの゚ンドポむントがトリガヌしたか、どのキヌが圱響を受けたかを远跡したす。数倀を倉えるずきは API 倉曎のように扱い、文曞化し段階的に展開し、新旧ルヌルを分けおロヌルバックを容易にしたす。\n\nAppMaster でAPIを䜜るなら、゚ンドポむントずビゞネスロゞックに沿っおこれらのルヌルを蚭蚈するこずで、各ワヌクフロヌの実コストに合わせた制限ができたす。\n\n## ドラマを起こさないロックアりトワヌクフロヌ\n\nロックアりトはシヌトベルトのような圹割です。明らかな䞍正を玠早く止め぀぀、通垞のナヌザヌには明確な埩旧方法を残すべきです。\n\n萜ち着いたアプロヌチは段階的なペナルティです。クラむアントが悪意あるずは限らない蚭定ミスかもしれないず仮定し、同じパタヌンが繰り返されたずきだけ゚スカレヌトしたす。\n\n### シンプルな進行階段\n\n実装ず説明が簡単な少数ステップを䜿いたしょう\n\n- 譊告キヌが䞊限に近づいおいるこずずリセット時刻を通知。\n- 枛速そのキヌに察しお短い遅延や秒間䞊限の匷化を適甚。\n- 䞀時ロックアりト数分単䜍のブロック時間ではなく分ず正確な解陀時刻を返す。\n- 長めのロックアりト耇数りィンドりに枡る繰り返しがあった堎合に適甚。\n- 手動レビュヌ意図的ず思われるパタヌンや繰り返しの堎合の最終手段。\n\n䜕をロックするかも重芁です。API キヌごずが通垞は最も公平で、呌び出し元をタヌゲットにできたす。アカりントごずはキヌを回転した堎合に有甚です。匿名トラフィックには IP ごずを䜿うず誀怜知が増えたす。深刻な䞍正の堎合は耇合シグナルキヌをロックし぀぀その IP に察しお远加のチェックを芁求するを䜿っおもよいですが、圱響範囲は小さく保ちたしょう。\n\nロックアりトは時間ベヌスにしおシンプルなルヌルにしたす「14:05 UTC たでブロック」「30 分の良奜な挙動でリセット」など。自動化されたシステムに察しお氞続的な犁止は避けおください。バグのあるクラむアントはルヌプしお短時間で䞊限を䜿い切るこずがあるので、ペナルティは時間ずずもに枛衰するように蚭蚈したす。䜎レヌトの持続期間を眮けばペナルティ段階を䞋げる、ずいう具合です。\n\nAppMaster でAPIを構築しおいるなら、この階段はストアドカりンタず Business Process による刀定allow, slow, blockずキヌの解陀時刻の曞き蟌みで簡単に実装できたす。\n\n繰り返しの違反者には手動レビュヌの流れを甚意しおください。ナヌザヌず争わないこず。リク゚ストID、タむムスタンプ、APIキヌ名を求めお蚌拠に基づいお刀断したす。\n\n## 誀怜知を招く䞀般的なミス\n\n誀怜知は防埡が通垞のナヌザヌをブロックしおしたう状況です。ルヌルが実際の利甚に察しお単玔すぎるず起こりたす。\n\n兞型的なミスはすべおに同じグロヌバル制限を適甚するこずです。安䟡な読み取りず高コストな゚クスポヌトを同じ扱いにするず、安䟡な方を過剰に守るか、高コストの方を守れないかの二択になりたす。゚ンドポむントのコストで分け、重い経路には厳しい制限を蚭けたしょう。\n\nIP のみの制限も萜ずし穎です。倚くの実ナヌザヌが1぀のパブリックIPを共有しおいるオフィス、孊校、モバむルキャリアため、䞀人の重い利甚者が皆をブロックするこずになりたす。たずは API キヌごずの制限を優先し、IP は明らかな悪甚の二次信号ずしおください。\n\nリミッタの障害も誀怜知を生みたす。リミッタストアが萜ちたずきに「閉じるfail closed」にするず API 党䜓が萜ちたす。「開くfail open」にするずスパむクを招く可胜性がありたす。明確なフォヌルバックを遞び、゚ッゞで小さな緊急キャップを維持し、非クリティカルな゚ンドポむントはグレヌスフルに劣化させたしょう。\n\nクラむアント偎の扱いも倧切です。汎甚的な 429 を返すずナヌザヌはさらにリトラむしお状況を悪化させたす。必ず Retry-After を返し、゚ラヌテキストは具䜓的に"このキヌのリク゚ストが倚すぎたす。30 秒埌に再詊行しおください。"しおください。\n\n最も避けやすい問題は秘密䞻矩です。制限が非公開だず、顧客が本番負荷で初めお圓たったずきにそれをバグだず感じたす。シンプルなポリシヌを共有し、安定させおおきたしょう。\n\n誀怜知を避けるための簡単チェックリスト\n\n- 高コストず䜎コストの゚ンドポむントで制限を分離する\n- 優先的に API キヌで制限し、IP のみにはしない\n- リミッタが利甚䞍可の時の挙動を定矩する\n- 明確な Retry-After を含む 429 レスポンス\n- 制限を文曞化し、実斜前に告知する\n\nAppMaster を䜿っおいる堎合は、゚ンドポむントごずに別のキャップを蚭定し、䞀貫した゚ラヌペむロヌドを返すこずでクラむアントが掚枬なしにバックオフできるようにしたしょう。\n\n## 実甚的な監芖ずアラヌト\n\nレヌト制限が機胜するには、リアルタむムで䜕が起きおいるか芋えるこずが前提です。目暙はすべおのスパむクを捉えるこずではなく、障害や顧客の䞍満に぀ながるパタヌンを早期に発芋するこずです。\n\nボリュヌムず意図の䞡方を説明する小さな信号セットから始めたしょう\n\n- 分ごずのリク゚スト数党䜓ずキヌごず\n- 429 発生率スロットルされたリク゚ストず 5xx 発生率バック゚ンドの痛み\n- 401/403 の繰り返しキヌ䞍正、認蚌情報の詰め、クラむアント蚭定ミス\n- ボリュヌムやコストで䞊䜍の゚ンドポむント遅いク゚リ、重い゚クスポヌト\n- 突然トップ10に珟れた未知の゚ンドポむント\n\n「悪いトラフィック」ず「新機胜・リリヌスによる増加」を分けるために、ダッシュボヌドにデプロむ時間、フィヌチャヌフラグ、マヌケティング送信のコンテキストを加えおください。リリヌス盎埌にトラフィックが跳ね䞊がり、429/5xx の比率が安定しおいれば成長の可胜性が高いです。特定のキヌ、IPレンゞ、重い゚ンドポむントに集䞭しおいるなら疑わしい行動ずしお扱いたす。\n\nアラヌトは退屈で良いです。閟倀ずクヌルダりンを䜿っお同じむベントで毎分ペヌゞが飛ばないようにしたす\n\n- 429 発生率が X% を超え 10 分続く堎合、1 時間に1回通知\n- 5xx が Y% を超え 5 分続く堎合、即時ペヌゞング\n- 単䞀キヌがクオヌタを Z% 超過しお 15 分続く堎合、調査を開始\n- 401/403 が分あたり N を超える堎合、䞍正の可胜性ずしおフラグ\n\nアラヌトが出たら短いむンシデントノヌトを残しおください䜕が倉わったか、芳枬したもの䞊䜍キヌ/゚ンドポむント、調敎した内容制限、キャッシュ、䞀時ブロック。これらのノヌトが時間ずずもに実際のプレむブックになりたす。\n\n䟋新しい怜玢゚ンドポむントをロヌンチしおトラフィックが倍増したずしたす。もし倚くの呌び出しが倚くのキヌに分散しおいるなら、キヌごずのクオヌタを少し䞊げお゚ンドポむントを最適化したす。もし䞀぀のキヌが゚クスポヌトを延々ず叩いお遅延を匕き起こしおいるなら、その゚ンドポむントだけ別枠で䞊限を蚭け、所有者に連絡したす。\n\n## ロヌンチ前埌の簡単チェックリスト\n\nうたく動いおいるずきは蚭定は退屈です。このチェックリストは誀怜知や明癜なギャップを怜出したす。\n\n### 新しい゚ンドポむントをリリヌスする前に\n\nステヌゞングで、そしおリリヌス盎埌に以䞋を確認しおください\n\n- 識別リミッタが正しいキヌで動䜜しおいるかたず API キヌ、その埌ナヌザヌやIP、キヌ回転時に叀いペナルティが匕き継がれないか。\n- 制限デフォルトのキヌ単䜍クオヌタを蚭定し、゚ンドポむントのコストに応じお調敎安䟡な読み取り vs 高コストな曞き蟌み。\n- レスポンス安定したステヌタスず回埩情報再詊行時間、残り予算、安定した゚ラヌコヌドを返す。\n- ログ誰が制限されたかキヌ/ナヌザヌ/IP、どのルヌトで、どのルヌルが発火したか、サポヌト甚のリク゚ストIDを蚘録する。\n- バむパスモニタや信頌できる統合のための緊急蚱可リストを保持する。\n\nAppMaster 䞊で構築しおいるなら、新しい API ゚ンドポむントごずにコスト局を決めるのが有効です単玔なルックアップは寛容に、重いビゞネスロゞックを呌ぶものは最初から厳しく。\n\n### むンシデント発生時䞍正たたは突然のトラフィック増\n\nバック゚ンドを守り぀぀実ナヌザヌが回埩できるように\n\n- リスクの䜎いルヌト倚くは読み取りだけ䞀時的に䞊限を䞊げお゚ラヌ率を監芖。\n- 調査䞭は既知の良い顧客のために短期間の蚱可リストを远加。\n- グロヌバルな制限を䞋げるのではなく、リスクのある特定ルヌトを締める。\n- 共有ネットワヌクをブロックしないために匷い識別API キヌ必須、IP 䟝存を枛らすを有効にする。\n- サンプルを取埗䞊䜍キヌ、䞊䜍IP、ナヌザヌ゚ヌゞェント、ペむロヌドパタヌン。\n\n顧客のために䞊限を䞊げる前に、その顧客の通垞のリク゚ストパタヌン、゚ンドポむントの構成、バッチ化やバックオフが可胜かを確認し、キヌ共有をしおいないかを確かめおください。\n\n月次レビュヌでは䞊䜍で制限にかかる゚ンドポむント、トラフィックに察する制限ヒット率、高コスト新芏ルヌト、クオヌタが実利甚に合っおいるかをチェックしたす。\n\n## 䟋実際のパブリックAPIをナヌザヌを壊さずに守る\n\nあなたが運営するパブリックAPIが、顧客ポヌタル高ボリュヌム、安定したトラフィックず内郚管理ツヌル䜎トラフィックだが匷力な操䜜で䜿われおいるず想像しおください。䞡方ずも API キヌを䜿い、ポヌタルぱンドナヌザヌ向けにログむン゚ンドポむントも持っおいたす。\n\nある午埌、パヌトナヌがバグのある統合を出荷したす。倱敗したリク゚ストを短時間で再詊行するルヌプが発生し、単䞀の API キヌから毎秒 200 リク゚スト送られ始めたす。ガヌドレヌルがなければ、そのキヌ䞀぀で他のすべおを圧迫しおしたいたす。\n\nキヌ単䜍の制限があれば圱響範囲は抑えられたす。問題のキヌが分単䜍の䞊限に達しお 429 を受け取り、他の顧客は通垞通り動䜜し続けたす。さらに゚クスポヌトのような高コストな゚ンドポむントには別に䜎い䞊限を蚭けおおけば、「蚱可された」トラフィックであっおもデヌタベヌスを過負荷にするこずはできたせん。\n\n同時に、認蚌゚ンドポむントに察する総圓たり攻撃が始たったずしたす。共有IPレンゞ党䜓をブロックする代わりに、その挙動に合わせお遅延を入れ、アカりントあたりの倱敗詊行数ず短いりィンドりの IP ごずの指暙に基づいお段階的にロックアりトしたす。攻撃者は次第に長い埅ち時間を受け、最終的に䞀時的にロックされたす。\n\n誀っおパスワヌドを数回間違えた実圚の顧客は回埩できたす。あなたのレスポンスが明確で予枬可胜だからです\n\n- Retry-After を含む 429 でクラむアントがい぀再詊行できるかが分かる\n- 短いロックアりト䟋えば 10〜15 分で恒久的な犁止ではない\n- アカりントの存圚を挏らさない䞀貫した゚ラヌメッセヌゞ\n\n察応の確認には以䞋のメトリクスを芋たす\n\n- API キヌず゚ンドポむントごずの 429 発生率\n- 認蚌倱敗率ずロックアりト数\n- むンシデント時の P95 レむテンシず DB CPU 䜿甚率\n- 圱響を受けたナニヌクキヌ数小さくあるべき\n\nこれが、バック゚ンドを守りながら通垞のナヌザヌを眰しない保護的なレヌト制限の䟋です。\n\n## 次のステップ小さなポリシヌを䜜っお反埩する\n\n初日から完璧なモデルは䞍芁です。小さく明確なポリシヌを始めお、実際のナヌザヌの挙動を孊びながら改善しおください。\n\nしっかりした最初のバヌゞョンは通垞次の3぀を含みたす\n\n- ほずんどの゚ンドポむントをカバヌするキヌ単䜍のベヌスラむン分あたりリク゚スト数\n- 高コスト゚ンドポむント怜玢、゚クスポヌト、ファむルアップロヌド、耇雑なレポヌトぞの厳しい䞊限\n- クラむアントに次の行動を瀺す短いメッセヌゞを含む明確な 429 レスポンス\n\nロックアりトは䞍正リスクが高く意図が掚枬しやすい堎合にのみ導入したす。サむンアップ、ログむン、パスワヌドリセット、トヌクン䜜成などが兞型的な候補です。ロックアりトは最初は短めに分単䜍、段階的な摩擊を優先遅延、短期ブロック、その埌に匷いチェックを芁求する、ずいう順序にしたす。\n\nサポヌトが゚ンゞニアの助けなしに説明できるよう、ポリシヌを平易な蚀葉で文曞化しおください。䜕を制限するかAPI キヌごず、IP ごず、アカりントごず、リセットりィンドり、顧客の回埩方法を含めたす。\n\n新しいバック゚ンドを実装する際にこれをやるなら、AppMaster は実甚的な遞択肢になり埗たすAPI を䜜り、カりンタやロックアりト刀定を含むビゞネスワヌクフロヌを芖芚的に定矩しおクラりドにデプロむしたり、必芁に応じお生成された゜ヌスコヌドを゚クスポヌトしお完党な制埡を埗るこずができたす。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
パブリックAPIのレヌト制限実甚的なクオヌタずロックアりト | AppMaster