はじめに
アプリケーションのパフォーマンス改善の一つとして
cloudFrontを導入しようとしている。
そのために個人的に調べたことをメモするための記事です
参考
AWS CloudFrontとはなんぞや
静的、動的コンテンツを迅速かつ安全に配信できるコンテンツデリバリネットワーク(CDN)サービス
CDN とはなんぞや
コンテンツをスピーディーに配信できるようにしたネットワーク。
コンテンツの大容量化が進んでネットワーク負荷が高くなりwebページ表示に時間がかかる、コンテンツダウンロードに時間がかかるという問題を解決する。
仕組みとしては?
世界中にあるエージサーバーから各ユーザーの地理的に近い場所(エッジ)にあるサーバーから配信される。
各サーバーには静的コンテンツがキャッシュされている。
DNSの設定
通常DNSでAレコードで行き先を設定するが
CDNを利用する場合、
CNAMEレコードを設定することでエッジサーバーにアクセスが向くようにできる
エッジロケーション
AWSのエッジロケーションとは、AWSのリージョンデータセンターとは別の、コンテンツ配信を行うデータセンターのこと。
ユーザーからのアクセスをエッジロケーションに流すことで
エッジサーバーでコンテンツをキャッシュし、配信の高速化・オリジンサーバーへの負荷軽減を行うことができる
オリジンサーバー
コンテンツが格納されているサーバーのこと。
EC2だけでなく、S3やELBなどをオリジンサーバーとして使用することができる
TTL(Time To Live)
キャッシュを保持する期間(秒)の設定。
指定したキャッシュ保持期間(TTL)が経過するまで、エッジロケーションからファイルを提供する。有効期限が切れるとCDNはオリジンサーバーにリクエスを流し、そのデータをまたキャッシュする。
- 短く設定
- 動的コンテンツを供給することができる
- 長く設定
- ユーザー側のパフォーマンスは向上する。
- コンテンツがエッジキャッシュから直接返される可能性が高くなるため。
ディストリビューション
ドメインごとに割り当てられるCloudFrontの設定のこと。