AWS  Cloud Front CDN(Contents Delivery Network) について

#はじめに
Cloud Frontをまとめる前に...
##Web アクセスの課題から学ぶ
**レスポンスの遅延、不安定なレスポンス**
インターネット経由でのアクセスにおけるネットワーク遅延の影響
• ネットワーク遅延は、(物理的、ネットワーク的な)距離に依存
• コンテンツの元サーバー(オリジン)が遠いと、応答に時間がかかる
• 応答時間の多くが、ネットワーク転送の待ち時間を占める場合もある
<img width="926" alt="スクリーンショット 2020-03-04 11.35.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/f3b332a9-d262-3787-6f96-b41f615d8775.png">
<img width="926" alt="スクリーンショット 2020-03-04 11.36.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/6569a1c2-b1b3-f689-ac02-ca38b47d450b.png">


このような課題をEdgeサービスで解決する
<img width="926" alt="スクリーンショット 2020-03-04 11.36.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/35c229f3-b713-bfc9-674d-4980653d4426.png">
##Edge(エッジ)って何？
エッジコンピューティングの、エッジ処理の事、「端末の近くにサーバを分散配置する」ネットワーク技法のひとつを意味します。ユーザや端末の近くでデータ処理することで、上位システムへの負荷や通信遅延を解消します。
製造現場においては、工場内に多数設置されたセンサや測定器から得られる大容量のデータに対し、高速またはリアルタイムなアプリケーション処理（データの見える化）を可能とします。
一方、インターネットを介し、ユーザから離れた場所にあるコンピュータを利用する「クラウドコンピューティング」は、遠隔であることから「クラウド（cloud）」つまり「雲」に例えられています。産業における制御の実行や、大きなデータのやり取りは通信やクラウドでの処理時間がかかるといった課題が生じます。
クラウドを利用する場合のエッジコンピューティングでは、インターネットへ送り出す工場内の「ふち（エッジ）」で、データを最適化処理します。これにより、インターネットには必要なデータだけを送信するため、通信時の諸問題を解決することができる。
参考
https://www.keyence.co.jp/ss/general/iot-glossary/edge-computing.jsp

#本題へ
<img width="926" alt="スクリーンショット 2020-03-04 11.51.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/5f5783d5-ee9b-f6f3-27ca-01d5419278b8.png">

##CloudFrontとは
HTMLファイルやCSS、画像、動画といった静的コンテンツをキャッシュし、オリジンサーバーの代わりに配信する**CDN(Contents Delivery Network)**サービス。
AWSには世界中に１２０を超えるエッジローケーションがあり、CloudFrontを使う事で利用者から最も近いエッジロケーションからコンテンツを高速に配信する事ができます。
<img width="926" alt="スクリーンショット 2020-03-04 11.59.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/96adc4c8-6e3a-2683-d5d9-9430fad45ea0.png">
##CDNとは
WEBコンテンツ配信処理を高速化するためのサービス
###CDNのメリット
• ユーザーを一番近いエッジロケーションに誘導することで 配信を高速化
• エッジサーバでコンテンツのキャッシングを行い オリジンの負荷を下げ、安定したサービスを提供する

#CloudFront の特徴
- ⾼性能な分散配信 (世界 84 拠点のエッジサーバ)
- ⾼いパフォーマンス (⾼いパフォーマンスの実績)
- キャパシティアクセスからの解放 (予測不可能なスパイクアクセスへの対応)
- ビルトインのセキュリティ機能 (WAF 連携、DDoS 対策)
- 設定が容易で即時利⽤可能 (GUI からの設定で 15 分程度でサービス利⽤可能)
- 充実したレポーティング (ログ、ダッシュボード、通知機能)
- 完全従量課⾦ (初期費⽤がなく安価かつスポットも利⽤可能)

#CloudFrontのバックエンド
CDNであるため、元となるコンテンツを保持するバックエンドサーバー（オリジンサーバー）が必要となる。
オリジンサーバとしては、ELBやEC2の動的コンテンツやS3といった静的コンテンツ、またオンプレミスサーバーを指定することも可能であり、それらを利用する事ができる。
<img width="926" alt="スクリーンショット 2020-03-04 12.40.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/68fcfc04-7709-d98c-de58-40fa8f656862.png">

#高速配信機能
###CloudFront コンテンツ配信設定の流れ
<img width="926" alt="スクリーンショット 2020-03-04 12.49.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/645deae0-95af-b130-cc66-bc2c33d3c6c4.png">

##ディストリビューション（配布、配信という意味）
配信するコンテンツの内容によって異なるディストリビューションがある。
###ダウンロードディストリビューション
HTTP,HTTPSを使って、HTMLやCSS、画像などのデータを配信する際に利用するディストリビューション
###ストリーミングディストリビューション
RTMP(Real Time Messaging Protocol)を使って動画のストーリーミング配信する際に利用する。

<img width="926" alt="スクリーンショット 2020-03-04 13.10.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/04eb47a6-3b67-0566-7a91-3812f8a57980.png">
#最後に
次回はキャッシュの活用ElastiCacheについてまとめます。