業務で少し触れるため、学習目的にCloud Frontの概要をまとめる。
Cloud Frontとは
-
ユーザーへ静的/動的ウェブコンテンツを配信するEdge サービス
-
Edge Services
- AWSのEdgeロケーションから提供されるサービス群(CloudFront,Route 53,...)
- サービスへのアクセスを、ユーザーに近い場所から提供
CloudFront利用の背景
インターネット経由アクセスにおけるネットワーク遅延
- 物理的、ネットワーク的な距離に応じて、ネットワーク遅延が発生(オリジンサーバーが遠いと、応答に時間がかかる)
ネットワーク遅延への対応
- ネットワーク遅延に対応するために、不要なトラフィックをオリジンサーバーに到達させない仕組みが必要
- Webコンテンツには、変化の少ない静的なデータが含まれる。それらを何度も取得させず、ネットワーク帯域・リソースの消費を削減
CloudFrontによるContents Delivery Network(CDN)
- Contents Delivery Networkとは
- 地理的に分散したエッジサーバー群からコンテンツをキャッシュしたり代理配信をするサービス
CDNの利点
よくある構成
CroudFront 設定
- オリジンサーバー設定
- オリジンサーバーにコンテンツデプロイ
- CloudFrontディストリビューションを作成
- CloudFrontがドメイン名を割り当て
- ディストリビューション構成をエッジロケーションに送信
CloudFrontディストリビューション
- ドメインごとのCloudFront設定
- デフォルトでは「 xxxx.cloudfront.net 」が ディストリビューション のドメイン名とし
て割り当てられる- CNAME エイリアスを利用して別ドメイン名の指定可能
- デフォルトでは「 xxxx.cloudfront.net 」が ディストリビューション のドメイン名とし
- AWSコンソールもしくはAPIで作成
- 対応プロトコル:HTTP/1.0,HTTP/1.1,HTTP/2,WebSocket
キャッシュコントロール
- URLと有効化したフォーワードオプションのパラメータの完全一致でキャッシュを再利用
- 対応メソッド:GET / HEAD / OPTION
- URLパス別にキャッシュ期間を指定可能であるなどきめ細かい設定が可能
よくあるエラーページ設定構成
- クライアント要求エラーはオリジンサーバーから返却
- オリジン側エラー(障害時など)は、CloudFrontから返却
オリジンフェイルオーバー
- オリジングループを作成し、プライマリオ
リジン・セカンダリオリジンを指定 - オリジンがフェイルオーバー用に設定した
HTTP ステータスコードを返却した場合や接
続タイムアウトした場合に別オ
リジンにルーティング