CloudFrontの特徴やユースケースをまとめる
2021/11/2
個人的にですが、AWSの中でもこのCloudFrontはとても便利なサービスだと思います。CDNのサービスです。Akamaiとか有名ですね。
では、早速まとめていきます。
概要・特徴等
- CDN(Contents Delivery Network)のサービス。
- 例えば、動画や画像など、誰がいつダウンロードしても内容が変わらないようなコンテンツが東京のS3に保存されていたとして、全世界中から東京のS3にアクセスしてダウンロードするのはレイテンシーが大きくなってしまう。そんな時に、CloudFrontを使えば、エッジロケーションにそのコンテンツのデータをキャッシュしてくれる。
- これにより、ダウンロードを試みるユーザから近い(レイテンシーの低い)場所からダウンロードをすることができる。
- コンテンツの保存先をオリジンサーバと呼び、各CloudFrontからダウンロードされる。
- ユーザからCloudFrontに最初にアクセスがあった際にデータがS3からダウンロードされ、2回目以降(キャッシュ時間内なら)はキャッシュされたデータがCloudFrontからダウンロードされる。
- CloudFrontには複数のオリジンサーバを設定することができ、拡張子によって振り分けることができる。そのため、例えばコンテンツの内容の変わらない静的なコンテンツについてはS3に格納して、(サーバプログラム等により)コンテンツが変わる動的なコンテンツについてはEC2に格納する等して、キャッシュ時間を調整することができる。当然ながらキャッシュの長さは、S3>EC2である。
- クライアント側はレイテンシーが下がることによる利便性がメリットだが、サーバ側としても、ダウンロードに伴うアクセスが各所に分散されて、結果的に負荷分散となる。
- CloudFrontにおいてもSSL証明書の利用ができる。
- CloudFront経由のアクセスであっても、S3の署名付きURLの利用が可能である。
- CloudFront用の署名付きURLを利用する場合は、CloudFrontユーザを意味するOAI(Original Access Identity)を作成して、バケットポリシーでOAIからのアクセスのみを許可する。
ユースケース
CloudFrontのユースケースについて簡単に記載します。CDNを知っている人(私も含む)にとっては、CDNの存在意義がCloudFrontとイコールです。そのため、あまり分かりやすい例は見つけられませんでした。
- HuluがVOD配信をCloudFrontを使って実施。ちなみにAmazonのPrime Videoも使ってます、それはそうですよね。
- SlackはCloudFrontでAPIのアクセラレーションをしています。