見出し画像

【AWS】Amazon CloudFrontについてざっくりまとめる:学習メモ

「CloudFront = キャッシュしてくれるやつ」ぐらいの理解だったので、調べたことをまとめます。まずは概要をつかむところから。

Amazon CloudFrontとは?

AWSサービスの一種で、マネージドなCDNサービス (Contents Delivery Network)
HTMLページや画像などの静的コンテンツをキャッシュし、オリジンサーバーの代わりに配信する

※ 「CDNってなに?」な方は、以下を参考にしてみてください。
 CDNの図解が大変わかりやすいのでおすすめです。
参考:AWS再入門ブログリレー Amazon CloudFront 編

具体的になにがうれしいのか

【ケース1】サイトに大量のアクセスがきてしまったとき
■ 問題点:
 サーバーが捌ききれなくなり、リソースが足りなくなることがある
■ Amazon CloudFrontを導入しておくとうれしいポイント:
 AWS側で自動的にサーバーを増やしたりしてくれるから気にしなくていい
■ 例:
 サイトがテレビで取り上げられて一気にアクセスが集中したときなど
【ケース2】ユーザーがサイトにアクセスした場所とコンテンツを置いているサーバーの場所と物理的に遠いとき
■ 問題点:
 レスポンスが遅くなる
■ Amazon CloudFrontを導入しておくとうれしいポイント:
 アクセス元のユーザーから一番近いエッジから取得するため、レスポンスが速い
  → DNS問い合わせを何回か行い、CloudFrontで保持している位置情報DBと照合して一番近いIPで特定するらしい
■ 例:
 日本にサーバーがあって、ユーザーは海外からアクセスする場合など

主にできること

■ 高性能な分散配信ができる
 エッジロケーションが世界中にある。
 そのため、遅延を軽くしてレスポンスを向上できる

■ 自動でスケールしてくれる

■ AWSの各サービスと連携できる
 WAF、EC2、S3など

■ 特定の条件でキャッシュさせない設定もできる
 (特定のパス、拡張子など)

その他メモ

■ バックエンド
 動的なプログラムはそのままでOK
 オンプレミスのサーバーも指定可能

■ ディストリビューション
 EC2で言うインスタンスみたいなもの。2種類ある

 ・ダウンロードディストリビューション:
  HTMLや画像など
 ・ストリーミングディストリビューション
  動画

■ キャッシュルール
 拡張子やパスごとにキャッシュ期間を指定できる(=TTL)

■ アクセス制御
 アクセス元の地域情報をもとにエッジでアクセス判定ができる。
 ブラックリスト・ホワイトリストどちらも設定可能

■ レポート / ログ
 ・キャッシュが使われた割合や、エラー率などの統計データをレポートしてくれる。
 ・CloudFrontのアクセスログを取得できる。
  アクセスログをS3に出力可能なので、取っておける

余談

導入事例が興味深かったです。
SlackもSpotifyもCloudFrontを使っているらしい。

参考資料

■ [AWS Black Belt Online Seminar] Amazon CloudFrontの概要
 公式動画。補足説明もしてくれてわかりやすい。
 こまかい機能の部分は難しいので理解が深まってきたらまた観る。
 スライドのみはこちら

■ Amazon CloudFront のよくある質問

この記事が気に入ったらサポートをしてみませんか?