API GatewayとALB(Application Load Balancer)の違い

目次

API GatewayとALB(Application Load Balancer)の違いのまとめ

主な用途 利用シーン スケーリング
API Gateway APIの公開・管理 サーバーレスAPIの公開
モバイル/SPAバックエンド
認証や利用制御が必要な外部公開API
自動で大規模スケール可能
ALB アプリケーションの負荷分散 Webアプリ/マイクロサービス間の負荷分散 バックエンドターゲットに依存

どちらもクライアントからのリクエストを受ける入り口ですが、用途は違います。

API Gatewayとは

クライアント(Webアプリやスマホアプリなど)からのリクエストを受け取り、バックエンドのサービス(Lambda、EC2他等)に安全に渡す入口のゲートとして機能します。

主な役割

1.リクエストの受付・転送

クライアントが https://xxx.execute-api.ap-northeast-1.amazonaws.com にアクセスすると、API Gateway がリクエストを受け取り、指定されたバックエンドに転送します。

2.認証・認可

CognitoやIAMと連携して、API利用者の認証やアクセス制御を行えます。

3.スロットリング・制限

一定のリクエスト数を超えた場合に制御して、バックエンドの過負荷を防止します。

4.変換やルーティング

リクエストやレスポンスのデータ形式を変換したり、異なるエンドポイントにルーティングできます。

5.モニタリング

CloudWatchと連携し、アクセス数・レイテンシ・エラー率などを可視化します。

ALB(Application Load Balancer)とは

アプリケーション層(L7, HTTP/HTTPS レイヤーで動作するロードバランサーです。
HTTP/HTTPSリクエストを振り分けます。

主な特徴

1.L7ロードバランシング

URL パスやホスト名に基づいたルーティングが可能です。
例: /api/* は ECS、/image/* は S3 静的サイト など。

2.コンテナ/マイクロサービス対応

ECS(特に Fargate)と統合されており、タスクごとに動的ポートを割り当てても ALB が自動的にリクエストを分配できます。

3.SSL/TLS 終端

HTTPS 通信を ALB で終端し、バックエンドとの通信は HTTP にするなど柔軟に設定可能です。

4.ヘルスチェック

バックエンドの EC2/ECS インスタンスの状態を監視し、正常なターゲットのみにリクエストを振り分けることが可能です。

5.認証機能

OIDC、Cognito と統合して、アプリケーションにログイン画面の追加が可能です。

関連の記事

AWS API GatewayからLambdaでPythonを実行

△上に戻る