rights reserved. Throttling is not Evil What is Throttling? スロットリングは、リソースとダウンストリームアプリケーションを保護するこ とを目的としています。Lambda は受信トラフィックに合わせて自動的にスケー リングしますが、さまざまな理由で関数がスロットリングされる可能性がありま す。 https://aws.amazon.com/premiumsupport/knowledge-center/lambda-troubleshoot-throttling Lambdaを呼び 出す Lambdaから 呼び出される AWS Lambda アップストリーム ダウンストリーム
rights reserved. Throttling is not Evil AWS では 160 種類を超えるクラウドサービス について従量制料金(Pay as You go)を適用しています。 Imagine there's no Throttling It's easy if you try You go You pay Year
rights reserved. 関数のスケーリングと同時実行数 バースト制限 • 3000 – US West (Oregon), US East (N. Virginia), Europe (Ireland) • 1000 – Asia Pacific (Tokyo), Europe (Frankfurt) • 500 – Other Regions Concurrency = 同時実行数
rights reserved. 関数のスケーリングと同時実行数 バースト制限 3000 – US West (Oregon), US East (N. Virginia), Europe (Ireland) 1000 – Asia Pacific (Tokyo), Europe (Frankfurt) 500 – Other Regions https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html 最初のバーストの後、関数の同時実行数は、1 分ごと にさらに 500 インスタンス増加します。
rights reserved. 同時実行数はアカウント、リージョン単位で共有 • 各Lambda関数が、Quotaで設定された同時実 行数を共有する • 各関数のConcurrencyの合計が 、同時実行数の 制限に達した場合Throttleする。 AWS Cloud Region Quota: 1000(default) Function A Function B Function C
rights reserved. Lambda@Edge 関数について https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront- limits.html#limits-lambda-at-edge AWS Cloud Region X Quota: 1000 Edge A Replicas Regional B Regional C us-east-1 Edge A (artifact) • Lambda@Edgeは、us- east-1のマスター関数を他 のRegionに複製 • CloudFrontへのアクセスに より、適切なRegionで Lambda関数の複製を実行 • 複製先でのConcurrency QuotaはRegional Lambda と共有 behaviour 設定時に複製 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-how-it- works.html Amazon CloudFront Dev Viewers close to Region X behaviour viewer request Master create invoke AWS Lambda
rights reserved. SIDE LINE Pattern • メインの処理がThrottleするのを緩和する(健全性を担保したい) • メイン処理に同時実行数を割り大きく当て、メイン処理では異常デー タを検知しSide Line(副処理)に退避する。 • Side Lineの同時実行数を比較的小さく抑えておく
rights reserved. Amazon Kinesis Data Streams :: Side Line Pattern Side Line処理 メイン処理 • Lambdaの前段にKinesis Data Streamsを配置 • LambdaにDestinationを設定し、エラーデータを退避 同時実行数小 設定値
rights reserved. Throttling is not Evil :: A gentle reminder AWS では 160 種類を超えるクラウドサービス について従量制料金(Pay as You go)を適用しています。 Imagine there's no Throttling It's easy if you try You go You pay