導入
利用者に近い場所でリクエストを受け止め、賢く裁いてからバックエンドに届ける。この「エッジでの制御」を担う3つのサービスは、名前が似た役割に見えて実は担当領域が違います。SAPでは、この使い分けを問う問題が頻出します。
説明
flowchart LR
U["利用者"] --> CF["CloudFront<br/>静的コンテンツのキャッシュ配信"]
U --> GA["Global Accelerator<br/>最適経路への振り分け"]
CF --> APIGW["API Gateway<br/>APIの受付・認証・スロットリング"]
GA --> APIGW
APIGW --> BE["バックエンド<br/>(Lambda/ECS/EC2)"]
| サービス | 担当領域 | 得意なこと |
|---|---|---|
| API Gateway | APIの「入口」そのもの | 認証(IAM/Cognito/Lambda Authorizer)、スロットリング、リクエスト変換、Lambda統合 |
| CloudFront | コンテンツ配信のキャッシュ層 | 静的アセット・APIレスポンスのエッジキャッシュ、DDoS緩和、TLS終端 |
| AWS Global Accelerator | ネットワーク層の経路最適化 | AnycastIPで最寄りのAWSエッジへ誘導、TCP/UDP含む非HTTPプロトコルにも対応、高速フェイルオーバー |
3つとも「利用者に近いところで裁く」点は共通ですが、CloudFrontはキャッシュできるコンテンツの配信が主目的、Global Acceleratorはキャッシュできないリアルタイム通信の経路最適化が主目的という違いがあります。API Gatewayはそもそも配信網ではなく、APIリクエストの受付窓口(認証・流量制御・変換)です。
- 「静的コンテンツ+動的APIの両方を高速配信したい」→ CloudFront
- 「オンラインゲーム・VoIPなどTCP/UDPで低レイテンシーが必須」→ Global Accelerator
- 「APIキーごとにリクエスト数を制限したい」「Lambdaと統合したAPIを素早く公開したい」→ API Gateway
読んでみよう
「CloudFrontとGlobal Acceleratorのどちらを使うべきか」という設問は、キャッシュ可能かどうかが最大の判断軸です。動画配信・画像配信・静的サイトはCloudFront、リアルタイム性が命でキャッシュが効かないゲームサーバーやIP固定が必要な通信はGlobal Accelerator、と対応づけて覚えておきましょう。