このすみノート

Webエンジニアが技術や趣味を書くブログです。

AWS S3の前段にCloudFrontを置くと良い理由を調べた

記事タイトルのとおりですが、AWS S3の前段にCloudFrontを置く理由を調べました。

AWS S3単体でもコンテンツ配信は可能なので、ふと疑問に疑問に思ったからです。

とくに参考になったサイト

  • Amazon CloudFront を利用するメリットとS3との違いについて
  • なぜ S3 の前段に CloudFront を置くと良いのか

www.acrovision.jp

michimani.net

CloudFrontを置くメリット

ざっくりメリットを挙げると3点です。

  1. キャッシュによる表示速度の高速化
  2. エッジデリバリーによる表示速度の高速化
  3. 独自ドメインのTLS(SSL)対応

(まだ調べきれてないので、他にもいくつかメリットはあると思います。)

キャッシュやエッジデリバリーによる高速化

AWS公式ドキュメントから引用します。

CloudFront のエッジロケーションは、AWS ネットワークバックボーンを介して AWS リージョンに接続しています。これは、地球を一周するほどの完全冗長の複数の 100 GbE 並列ファイバーで、数万のネットワークとリンクしています。そのため、オリジンの取得や動的コンテンツのアクセラレーションが改善されます。
エンドユーザーに低レイテンシーでコンテンツを配信するために、Amazon CloudFront は、450 以上の Point of Presence のグローバルネットワークと 48 か国の 90 以上の都市にある 13 のリージョンレベルのエッジキャッシュを使用します。Amazon CloudFront エッジロケーションは次の場所で提供されています。
引用: https://aws.amazon.com/jp/cloudfront/features/

要約すると、次の2点でCDN(コンテンツ・デリバリー・ネットワーク)として優れています。

  1. 世界中にエッジロケーションがあることで、利用者の近くから配信することができる
  2. エッジキャッシュによって、キャッシュで高速に配信することができる

独自ドメインのTLS(SSL)で配信できる

ACM(AWS Certificate Manager)で発行したTLS(SSL)証明書を、CloudFrontに紐づけて、独自ドメインのHTTPSで配信できます。

dev.classmethod.jp

他にも思いつきそうなメリット

たとえば、CloudFrontにAWS WAFやAWS WAF Bot Controlを導入することで、DOS対策やBot対策が追加できそうです。

dev.classmethod.jp

まとめ

ざっくり調べた限りでは、AWS CloudFrontが世界中にエッジロケーションを持つ優秀なCDNなので、素直にCDNとして活用しましょうという結論になりました。

また巨人の肩に乗るインフラ運用になるので、「CloudFront + S3」は情報量も多く、かつ取り回しが良いとも言えるかもしれません。