2. Edge Services
CloudFront
BlackBelt ※これが一番大事
以下ポイント
概要
CDNサービス
Edgeのキャッシュからレスポンスをすることによる配信サービス
HTTP での着信
HTTP → CloudFront/*LB HTTPS → Origin (HTTP to HTTPS)
CloudFrontのクッキーの操作について
→デフォルトでクッキーは考慮されない
※キャッシュや設定を変えることでオリジンに対してクッキーを転送したりクッキーによってリクエストを変えることが出来る
この時S3はクッキーの処理が出来ない
CloudFrontでの502エラー
→以下が考えられる
- カスタムオリジンサーバとのSSL/TLSネゴシエーションエラー
- カスタムオリジンサーバからの非対応のciphers/protocolsレスポンス
- SSL/TLS証明書関連エラーの発生
- 指定ポートからのレスポンスなし
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/http-502-bad-gateway.html
CloudFrontのレスポンス
→最大30GB
CloudFrontからすぐオブジェクトを消したい場合
→無効にしたりすることが出来る
CloudFrontで証明書を使用する場合
→複数の制限あり
Amazon発行の証明書
- 米国東部 (バージニア北部) リージョンで証明書をリクエストする
- ACM 証明書を使用してリクエストするには、権限が必要
インポートした証明書
- キーの長さは 1024 ビットまたは 2048 ビットである必要がある。※2048 ビットを超えることはできない
- 米国東部 (バージニア北部) リージョンで証明書をリクエストする
- SSL/TLS 証明書を使用およびインポートするには、権限が必要
https://aws.amazon.com/jp/premiumsupport/knowledge-center/install-ssl-cloudfront/
AWS Global Accelerator
概要
ALBやNLB、EC2の前段において可用性とパフォーマンスをよくするサービス
クライアントに近いリージョンに渡したり、固定のIPが2つ付与されている
良さ
固定のシングルエンドポイントが提供できる (IPエニキャスト)
エンドポイントのヘルスチェックからのフェイルオーバーが可能
エンドポイントの AZ/リージョン間移動時 DNS 設定の変更は必要ない
CloudFront との使い分け
基本的には用途次第 ※以下ユースケースの場合は Global Accelerator を使用する
使われ方 (ユースケース)
HTTP 以外の通信
- オンラインゲーム
- リアルタイムビデオ
- VoIP
- IoT
- Websocket
固定 IP にメリット/制限がある場合
マルチリージョンでのフェイルオーバー
キャッシュが出来ない/いらない場合
差分
一般的なアクセス
直接あて先のサーバ(オリジン)に対してアクセスを行う(ローカルのキャッシュが切れるたび都度)
CloudFront / Route 53
AWS のエッジロケーション(近い場所)がユーザにレスポンスを行う(エッジロケーションではキャッシュを持つ)
※エッジロケーション - オリジン間は AWS 内部ネットワークなので高速
Global Accelerator
AWS のエッジロケーション(近い場所)がユーザにレスポンスを行う(エッジロケーションではキャッシュを持たない)
※エッジロケーション - オリジン間は AWS 内部ネットワークなので高速
→CloudFrontは IGWいる?
Discussion