Instiq
第1章 · AWS サービスを使った開発①:サーバーレスの中核·v2.2.0·更新 2026/6/14·読了目安 約9分

変更要約: in-scopeサービス網羅(軸B): s1にEKS/EFS、s2にAppSync/ELB/Route 53/WAF、s3にAuroraの定義・役割・選択基準を追記。

1.2Amazon API Gateway で API を公開

この節の要点

API Gateway による API の公開(ルーティング・認証・スロットリング・ステージ・キャッシュ)、REST/HTTP/WebSocket の違い、Lambda 統合といった API 開発の基礎を理解します。

バックエンド(Lambda 等)を安全に公開する「正面玄関」が Amazon API Gateway です。ルーティング・認証・スロットリングなどをマネージドで担います。

1.2.1API Gateway の役割

クライアント(Web/モバイル)が API Gateway(ルーティング・認証・スロットリング・ステージ・キャッシュ・REST/HTTP/WebSocket)を介してバックエンド(Lambda/HTTP)に到達する構成を示し、API のマネージドな正面玄関として認証・スロットリング・ステージを肩代わりする旨を表した図。
API Gateway がバックエンドの前段に立つ
  • ルーティング:パス/メソッドごとにバックエンド(Lambda・HTTP)へ振り分ける。
  • 認証/認可:IAM・Cognito オーソライザー(ユーザープール)・Lambda オーソライザー(独自ロジック)でアクセスを制御。
  • スロットリング/キャッシュ:流量制限(レート/バースト)で保護し、レスポンスキャッシュで負荷と遅延を下げる。
  • ステージ:dev/prod などの環境ごとのデプロイ単位。ステージ変数で設定を切り替える。
  • 種類:シンプル/低コストの HTTP API、機能豊富な REST API、双方向の WebSocket API

API Gateway はバックエンドの「正面玄関」として、認証・流量制御・ルーティングをマネージドで肩代わりします。リクエストごとの認可は、ログイン基盤がある場合は Cognito オーソライザー、独自の判定ロジックが要る場合は Lambda オーソライザーを使います。スロットリングは急増や乱用からバックエンドを守り、キャッシュは同じレスポンスを再利用して遅延とコストを下げます。デプロイは ステージ単位(dev/prod)で行い、ステージ変数で接続先などを切り替えます。API の種類は、要件が単純なら安価な HTTP API、詳細な制御・キャッシュ・リクエスト検証が必要なら REST API、チャット等の双方向通信なら WebSocket API を選びます。

要件選択/機能
シンプル・低コストな RESTHTTP API
細かい制御・キャッシュ・検証REST API
双方向通信WebSocket API
ログイン基盤での認可Cognito オーソライザー
独自ロジックの認可Lambda オーソライザー

シナリオ:モバイルアプリ用 API。 クライアントは API Gateway を介して Lambda を呼ぶ。ユーザー認証は Cognito オーソライザーでトークン検証、急増アクセスはスロットリングで保護、頻繁な GET はキャッシュで高速化。dev/prod のステージを分け、ステージ変数で接続先 Lambda エイリアスを切替。要件が単純なら HTTP API、詳細制御が要れば REST API。

注意

混同に注意:
Cognito オーソライザー(ユーザープールのトークン)と Lambda オーソライザー(独自ロジック)を取り違えない。
ステージ=環境のデプロイ単位(dev/prod)。
HTTP API(安・単純)と REST API(高機能・キャッシュ/検証)を要件で選ぶ。
④API Gateway 自体が認証・スロットリングを担う(バックエンドに実装しない)。

補足

Q. HTTP API と REST API はどちらを使う? 単純で低コストなら HTTP API、キャッシュ・リクエスト検証・詳細な制御が要れば REST API。Q. Cognito と Lambda オーソライザーの違いは? Cognito はユーザープールのトークン検証、Lambda は独自ロジックでの認可。Q. ステージとは? dev/prod 等の環境ごとのデプロイ単位。ステージ変数で接続先を切り替える。

試験ポイント

「API のマネージドな公開・認証・スロットリング=API Gateway」「dev/prod の切り替え=ステージ」「リクエストごとの認可=Cognito/Lambda オーソライザー」「単純=HTTP API/高機能=REST API」 は DVA で頻出です。

1.2.2GraphQL・負荷分散・DNS・Web 保護

API の公開口は REST だけではありません。AWS AppSyncマネージドな GraphQL API で、クライアントが必要なフィールドだけを 1 リクエストで取得でき、サブスクリプションによるリアルタイム更新やモバイルのオフライン同期に向きます(データソースは DynamoDB・Lambda・RDS など)。「複数データソースを束ねた GraphQL/リアルタイム購読」が要件なら AppSync、汎用の REST/HTTP なら API Gateway という住み分けです。EC2 やコンテナを水平スケールして公開する構成では Elastic Load Balancing(ELB)が前段でトラフィックを分散し、ヘルスチェックで異常なターゲットを切り離します(HTTP/HTTPS は ALB、超低遅延の L4 は NLB)。ドメイン名でのアクセスは Amazon Route 53(マネージド DNS)が担い、加重・レイテンシー・フェイルオーバーなどのルーティングポリシーやヘルスチェックを提供します。公開エンドポイントを SQL インジェクションや XSS、過剰なリクエストから守るには AWS WAF を API Gateway・ALB・CloudFront に適用し、マネージドルールやレートベースルールで防御します。

やりたいことサービス
GraphQL API・リアルタイム/オフライン同期AWS AppSync
EC2/コンテナへ負荷分散Elastic Load Balancing(ELB)
ドメイン名の名前解決・ルーティングAmazon Route 53
Web の脆弱性攻撃から保護AWS WAF

1.2.3この節のまとめ

  • API Gateway=ルーティング・認証・スロットリング・キャッシュ・ステージをマネージド
  • 認可はCognito/Lambda オーソライザー、環境はステージ、種類はHTTP/REST/WebSocket API

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. バックエンド(Lambda 等)を安全に公開し、認証やスロットリングをマネージドで担う AWS のサービスはどれですか?

Q2. API Gateway で dev と prod のように環境ごとにデプロイを分ける仕組みはどれですか?

Q3. API Gateway でリクエストごとにユーザーを認可する一般的な仕組みはどれですか?

理解度を確認第1章「AWS サービスを使った開発①:サーバーレスの中核」の問題を解く