AWS初心者学習⑤ ~AWS CloudFrontについて~

今回はCloudFrontについて書いていきます。
ユーザーにサービスを提供する際にも、ソリューションアソシエートの試験的にも重要なサービスだと思います。
 
AWS CloudFrontとは
CloudFrontは、データ、動画、アプリケーション、APIをすべて開発者にとって使いやすい環境で、レイテンシーの高速転送により視聴者に安全に配信する高速コンテンツ配信ネットワーク(CDN)。AWS内に作成した環境やAWS内の各種サービスと意識することなくシームレスに連携する。
 
超ざっくり言えば、いろんなものをキャッシュしてくれるサービスです!
 
ユーザが静的なコンテンツを閲覧する際に、CloudFrontがどんな動きをするのか一例をあげてみます。

f:id:Tk24:20191202234022p:plain



初回問い合わせ時は、普通に対象のコンテンツから引っ張ってきてユーザーに応答します。しかし、これでCloudFrontにキャッシュできたので、2回目以降の問い合わせの場合は以下のように動きが変わります。
 

f:id:Tk24:20191202234125p:plain

 

上記の図のように、対象のコンテンツまで取りに行かずにCloudFrontが応答し、キャッシュしているコンテンツを返します。かなり簡略化していますが動きのイメージはこんな感じです。
 
では、このCloudFrontを使う利点を見ていきましょう。
 
AWS CloudFrontの利点
・表示を高速化
上の図で記載したように、キャッシュサーバーとしてご利用いただけるため、ウェブサイトの画像や動画ファイルの読み込み時間が短縮できる。また、世界規模に展開しているサービスでは、遅延が発生している国などにCloudFrontを配置するだけで、サービスが低遅延になったりする場合もあります。

・大量アクセスに対応
サーバに直接アクセスする回数を減らせるため、大量にアクセスが来た際もCloudFrontで対応するので、データを管理しているサーバにかかる負荷を軽減することができる。

・セキュリティ
ネットワークとアプリケーションレベルの両方で保護されるので、非常に安全性が高い。AWS Shiledなど追加費用なしで使用できる保護機能も存在する。また、AWS Certificate Managerを使用すれば、証明書も導入することもできる。

・すぐに始められて低価格
S3、EC2 や Elastic Load Balancing といった AWS オリジナルサービスを使用する場合、それらのサービスと CloudFront との間のデータ転送にはまったく料金が発生しない。また、APIやLambdaなどは前払い料金や長期契約を必要としない、シンプルな従量制料金モデルが採用されている。
 
こうやって利点を並べていくと導入しない理由が見当たらなくなってきますね(笑)
 
AWS CloudFrontの注意点
データを管理しているサーバに負荷をかけたくないからと、キャッシュ期間を長くしすぎると、コンテンツをアップデートした際などになかなか反映されない、なんてことになる可能性があります。ですので、キャッシュ期間は、あまり変更されないものは長く、そうでないものは短めにしておく必要があります。また、即時に変更を反映させたい場合は、キャッシュクリアを行うという手段もあります。
 
 
 
最後に実際に使うなら多分こんな感じの構成になるはず・・。という構成図を乗っけておきます。少しでも参考になれば。。

f:id:Tk24:20191203003506p:plain

以上です。
 
次回はDNS周りを書く予定です。