目次
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 と統合して、アプリケーションにログイン画面の追加が可能です。
関連の記事