リバースプロキシ
クライアントとサーバーの間に位置し、リクエストを中継・制御するサーバー
インフラネットワーク
リバースプロキシとは
リバースプロキシは、クライアントとバックエンドサーバーの間に位置し、リクエストを中継・制御するサーバーである。Nginx、CloudFront、API Gateway がリバースプロキシとして機能する。
フォワードプロキシ vs リバースプロキシ
| 観点 | フォワードプロキシ | リバースプロキシ |
|---|---|---|
| 位置 | クライアント側 | サーバー側 |
| 目的 | クライアントの匿名化 | サーバーの保護 |
| 例 | 企業の Web フィルタ | CloudFront, Nginx |
フォワード: クライアント → [プロキシ] → インターネット → サーバー
リバース: クライアント → インターネット → [プロキシ] → サーバー
リバースプロキシの機能
| 機能 | 説明 | AWS サービス |
|---|---|---|
| ロードバランシング | リクエストを複数サーバーに分散 | ALB |
| SSL 終端 | HTTPS を処理、バックエンドは HTTP | CloudFront, ALB |
| キャッシュ | レスポンスをキャッシュ | CloudFront |
| 圧縮 | gzip/brotli 圧縮 | CloudFront |
| WAF | 攻撃トラフィックをブロック | AWS WAF |
| パスルーティング | パスに応じてバックエンドを切り替え | CloudFront, ALB |
CloudFront が /api/* を API Gateway に、それ以外を S3 にルーティング。クライアントからは 1 つのドメインに見える。
サーバーレスでのリバースプロキシ
サーバーレスでは Nginx を自前で運用する必要がない。従来の Nginx は CloudFront、HAProxy は ALB、Apache は API Gateway がそれぞれ代替し、リバースプロキシの全機能を提供する。
実務での活用方法は関連書籍にも詳しい。