API Gateway + Lambda 統合
API Gateway と Lambda を組み合わせたサーバーレス API の構築パターン
API Gateway + Lambda とは
API Gateway + Lambda は、AWS のサーバーレス API の基本構成で、API Gateway が HTTP リクエストを受け、Lambda 関数を呼び出してレスポンスを返す。インフラ管理不要で、リクエスト数に応じた従量課金。
HTTP API vs REST API
HTTP API と REST API の違いを以下にまとめる。
| 観点 | HTTP API | REST API |
|---|---|---|
| レイテンシ | 低い | やや高い |
| コスト | $1.00/100 万 | $3.50/100 万 |
| CORS | 自動処理 | 手動設定 |
| 認証 | JWT (Cognito, OIDC) | IAM, Cognito, Lambda Authorizer |
| WebSocket | 扱えない。リアルタイム双方向通信は WebSocket API を別に立てて併用する | 扱えない。WebSocket API はどちらにも属さない独立したタイプ |
| 選ぶ基準 | 新規に作るならまずこちら | WAF やキャッシュなど REST API だけの機能が要るとき |
SAM での定義
SAM での定義の例を示す。
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs22.x
Handler: index.handler
Events:
GetOrders:
Type: HttpApi
Properties:
Path: /orders
Method: GET
CreateOrder:
Type: HttpApi
Properties:
Path: /orders
Method: POST
Lambda ハンドラ
Lambda ハンドラのコード例を示す。
export const handler = async (event: APIGatewayProxyEventV2) => {
const method = event.requestContext.http.method;
const path = event.requestContext.http.path;
if (method === 'GET' && path === '/orders') {
const orders = await getOrders();
return { statusCode: 200, body: JSON.stringify(orders) };
}
if (method === 'POST' && path === '/orders') {
const body = JSON.parse(event.body ?? '{}');
const order = await createOrder(body);
return { statusCode: 201, body: JSON.stringify(order) };
}
return { statusCode: 404, body: JSON.stringify({ error: 'Not found' }) };
};
認証
認証の例を示す。
MyApi:
Type: AWS::Serverless::HttpApi
Properties:
Auth:
DefaultAuthorizer: CognitoAuth
Authorizers:
CognitoAuth:
JwtConfiguration:
issuer: !Sub https://cognito-idp.${AWS::Region}.amazonaws.com/${UserPool}
audience: [!Ref UserPoolClient]
パフォーマンス最適化
パフォーマンス最適化を以下にまとめる。
| 対策 | 効果 |
|---|---|
| Lambda メモリ増加 | CPU も増加、レイテンシ低下 |
| Provisioned Concurrency | コールドスタート排除 |
| esbuild バンドル | デプロイサイズ削減 |
| CloudFront 統合 | エッジキャッシュ |
コスト
コストを図で示す。
HTTP API: $1.00/100 万リクエスト
Lambda: $0.20/100 万リクエスト + 実行時間
合計: 月 100 万リクエスト ≈ $1.20 + 実行時間
体系的に学ぶなら関連書籍を参照してほしい。
この記事は役に立ちましたか?
関連用語
API Gateway
API のエントリーポイントとして認証、スロットリング、ルーティングを一元管理する AWS サービス
Lambda
AWS のサーバーレスコンピューティングサービスで、コードをイベント駆動で実行する
CORS
ブラウザの同一オリジンポリシーを緩和し、異なるオリジン間のリソース共有を許可する仕組み
CloudFront
AWS の CDN サービスで、世界中のエッジロケーションからコンテンツを低レイテンシで配信する
AppSync
AWS のマネージド GraphQL / Pub/Sub サービス
ロードバランシング
複数のサーバーにトラフィックを分散し、可用性とスケーラビリティを向上させる仕組み
関連する記事
Linux 本ガイド - コマンドライン / しくみ / 性能の 3 層で選ぶ技術書
Linux を学ぶ技術書の選び方を 3 層 (コマンドラインの操作 → カーネルのしくみ → 性能と運用) で整理。新しい Linux の教科書や [試して理解] Linux のしくみなどの定番書の使い分けと、学ぶ順番を解説します。
Git / GitHub 本ガイド - マンガ / GUI / 仕組み理解の 3 つの入口で選ぶ
Git と GitHub を学ぶ本の選び方を「入口の違い」で整理。マンガで概念を掴む本、GUI から入る本、仕組みを腹落ちさせる本、チーム開発の作法を学ぶ本、手元に置くリファレンスまで、2026 年 8 月時点の定番書で独学ルートを解説します。
技術書がエンジニアのキャリアを変える - 読書習慣と年収の関係
技術書の読書習慣がエンジニアのキャリアアップに影響する 3 つの経路と、ジュニア / ミドル / シニア各段階に応じた読書戦略を具体的に解説します。