1分60件の制限でも、窓の境目に寄せると2秒で120件が通りました。上限の2倍です。
数え方を変えると60件に収まります。同じ「1分60件」でも、実際に通る数は違います。
同じ「1分60件」でも、数え方で通る数が違います。区切った窓は境目に弱いです。
Amazon API Gatewayは、呼び出しを受け止める役です。公式は数十万に及ぶ同時の呼び出しを受け付けて処理する作業を、すべて引き受けると述べています。
受け止めるには上限が要ります。数え方でどれだけ違うのか、3つを実際に動かして比べました。
1分あたり 60件まで通す。窓の境目の前後に要求を集める 境目の直前に60件、直後に60件を送る(合わせて2秒の間に120件) 数え方 2秒の間に通った数 1分あたりに直すと 固定の窓 120件 3,600件 滑る窓 60件 1,800件 溜める器 61件 1,830件
区切った窓で数えると、2秒の間に120件が通ります。上限の2倍です。
直近60秒を見る数え方なら60件で止まります。同じ設定値でも、実際の勢いは2倍違います。
区切った窓は、境目でその窓の数を0に戻します。直前の60件は前の窓、直後の60件は次の窓として数えられます。
どちらの窓も上限は守っています。それでも実際に後ろへ届く勢いは倍になります。
この形はレート制限の記事でも扱っていて、設定値ではなく数え方を見るのが要点でした。
同じ上限でも、数え方で通る数が倍違う。
API Gateway handles all the tasks involved in accepting and processing up to hundreds of thousands of concurrent API calls.原文AWS ドキュメント「What is Amazon API Gateway?」 この内容の有効期限2027-02-18
1人の集中から他を守れます。ただし全体の上限は別に置かないと、後ろ側があふれます。
Amazon API Gatewayの役目には、流量の管理が含まれます。公式はその作業には、流量の管理、認可と権限、監視、版の管理が含まれると述べています。
1人が集中して使ったとき、他の人はどうなるのか。分け方を変えて数えました。
利用者 50人・30分ぶん。要求は合わせて 40,088件 うち1人が 35,733件(89.1%)を占める 分け方 通った数 その1人ぶん 他の49人ぶん 他の人が断られた割合 全体で1つ 1800件 1576件 224件 94.9% 利用者ごとに1つ 6155件 1800件 4355件 0.0%
全体で1つの上限だと、他の49人は94.9%が断られます。使っていないのに巻き添えになります。
利用者ごとに分けると0.0%です。1人の集中が他に漏れなくなりました。
通った総数は1800件から6155件になります。3.4倍です。
つまり利用者ごとの上限は、公平さのための道具であって後ろ側を守る道具ではありません。全体の上限を別に置くことになります。
2段構えにする組み方はREST APIの記事でも触れていて、守りたい対象ごとに層を分けます。
These tasks include traffic management, authorization and access control, monitoring, and API version management.原文AWS ドキュメント「What is Amazon API Gateway?」 この内容の有効期限2027-02-18
後ろが関数なら、通した数だけ起動します。上限の設定が、後ろの費用と詰まりを決めます。
Amazon API Gatewayは、関数と組んで使われます。公式はAWS Lambdaとともに、サーバーレスの土台のうちアプリ側の部分をなすと述べています。
通した数は、そのまま後ろの起動数になります。数え方で通る数がどう変わるかをもう一度並べて見ました。
1分あたり 60件まで通す。60分ぶんを流す 要求の来る割合を変えて、通った数を比べる 要求の割合 来た数 固定の窓 滑る窓 溜める器 (通った数) 0.5件/秒 1766件 1766件 1766件 1766件 1件/秒 3544件 3370件 3237件 3529件 2件/秒 7026件 3600件 3541件 3659件 5件/秒 17872件 3600件 3600件 3659件
上限より少ない間は、3つとも同じです。1766件がそのまま通ります。
上限を超えると分かれます。5件/秒では17,872件が来ても、通るのは3,600件前後です。
3番目が要点です。最初の節で見たとおり、区切った窓では設定値の2倍が届きます。
3つの計測はいずれも手元で書いた模型で、実際のAmazon API Gatewayを叩いたものではありません。3つの数え方は自分で実装したもので、実際の製品がどれを使っているかとは別です。要求の来かたも一定の割合と置いており、実際の山谷とは違います。溜める器が61件通るのは、貯められる量を上限と同じに置いたためです。ここで見せているのは、同じ上限でも数え方で通る数が倍違うという点と、利用者ごとに分けると断りは消えるが総数は増えるという点の2つです。
Together with AWS Lambda, API Gateway forms the app-facing part of the AWS serverless infrastructure.原文AWS ドキュメント「What is Amazon API Gateway?」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る