SAA-C03 中級 SAA

サーバーレスAPI設計 API GatewayとLambda、DynamoDBでのスロットリングと冪等性

本記事はSAA(Solutions Architect Associate)を目指す方向けに、API Gateway・Lambda・DynamoDBを組み合わせたサーバーレスAPIの設計を解説します。試験では、急なアクセス増加や重複リクエストにどう備えるかが問われます。

覚え方のフレームは3つの観点です。制限(呼び出し過多を防ぐ)・吸収(急増を平準化する)・冪等性(重複を安全に扱う)

制限 API Gatewayのスロットリング

API Gatewayではアカウント全体・ステージ・メソッド単位でリクエストレート制限とバーストの上限を設定できます。特定の利用者やAPIキーが過剰にリクエストを送り、他の利用者に影響が出るのを防ぎたい要件では使用量プランとAPIキーを組み合わせて個別に制限します。

吸収 SQSによるバッファリング

Lambdaの同時実行数の上限に達しそうな急激なアクセス増加が見込まれる場合、API GatewayとLambdaの間にSQSキューを挟み、Lambdaが処理できるペースでメッセージを取り出す構成にします。ピーク時のリクエストを取りこぼさず、後続処理は多少遅延してもよい要件で選びます。

冪等性 DynamoDBの条件付き書き込み

ネットワークの再試行などで同じリクエストが複数回届いても結果が変わらないようにするには、リクエストにクライアント側で発行した一意のIDを持たせ、DynamoDBへの書き込み時に条件式(attribute_not_exists)でそのIDが未処理の場合のみ書き込む設計にします。決済や注文登録のように重複処理が許されない要件で必須の設計です。

課題対処使いどころ
特定利用者の過剰呼び出し使用量プランとAPIキーでのスロットリング利用者ごとに公平な上限を設けたい
急激なアクセス増加SQSによるバッファリング取りこぼしを防ぎ非同期に処理したい
重複リクエストDynamoDBの条件付き書き込みで冪等性確保決済など重複処理を避けたい
試験ポイント API Gatewayのスロットリングは「呼び出し元を制限する」仕組み、SQSバッファリングは「後続処理の速度に合わせて吸収する」仕組みで、目的が異なります。両方を組み合わせて初めて過負荷にも重複にも強いAPIになります。

チェックリスト

  • API Gatewayの使用量プランとAPIキーの役割を説明できる
  • SQSを挟んでLambdaの処理ペースを制御する構成を説明できる
  • DynamoDBの条件付き書き込みで冪等性を確保する方法を説明できる
  • スロットリングとバッファリングの目的の違いを説明できる

まとめ

サーバーレスAPIは「制限・吸収・冪等性」の3観点で守りを固め、想定される負荷と重複リスクに応じて組み合わせるのが定石です。この記事の理解度はクイズで確認し、最新の試験範囲はAWS認定 公式ページで確認しましょう。

📚

SAA(ソリューションアーキテクト アソシエイト) におすすめの教材

徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応 表紙
書籍

徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応

体系的にサービスと出題範囲を学べる定番テキスト

★★★★☆

Amazonで見る
AWS認定ソリューションアーキテクト−アソシエイト問題集 表紙
問題集

AWS認定ソリューションアーキテクト−アソシエイト問題集

本番形式の演習で総仕上げに最適

★★★★☆

Amazonで見る
Udemyコース
Udemy・講座

これだけでOK! AWS認定SAA(SAA-C03)試験突破講座

動画で体系的に学べる対策コース

Udemy

Udemyで見る
Udemy模擬試験
Udemy・模試

AWS認定SAA 本番模試(6回分/390問)

本番形式の演習で総仕上げ

Udemy

Udemyで見る

本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。