web-dev-qa-db-ja.com

Amazon CloudfrontまたはS3を使用する場合

S3やその他の方法でAmazon Cloudfrontに適したユースケースはありますか?私は2つの例の違いを理解しようとしています。

201
Kamo

Amazon S3は、1つの特定の地域で大容量で低コストのファイルストレージ向けに設計されています。*ストレージと帯域幅のコストは非常に低くなっています。

Amazon CloudFrontは、可能な限りユーザーに近いEdgeロケーションでWebデータをプロキシおよびキャッシュするコンテンツ配信ネットワーク(CDN)です。

エンドユーザーがこのドメイン名を使用してオブジェクトを要求すると、コンテンツの高性能配信のために、自動的に最も近いEdgeの場所にルーティングされます。 ( Amazon

CloudFrontによって提供されるデータは、S3から取得される場合とされない場合があります。配信速度がより最適化されているため、帯域幅のコストはもう少し高くなります。

ユーザーベースがlocalizedの場合、S3またはCloudFrontでの作業に大きな違いは見られません(ただし、S3バケットに適切な場所を選択する必要があります:US、EU、 APAC)。ユーザーベースがグローバルに広がっており、速度が重要な場合、CloudFrontの方が適している場合があります。

S3とCloudFrontは両方ともドメインエイリアスを許可しますが、CloudFrontは複数のエイリアスを許可するため、d1.mystatics.comd2.mystatics.comおよびd3.mystatics.comはすべて同じものを指すことができます並列ダウンロードの容量を増やす場所(これは Google で推奨されていましたが、SPDYとHTTP/2の導入により重要度は低下しました)。

CloudFront CORSもサポート 2014年時点(sergiopantojaに感謝)。

*注:2015年以降、S3は追加のリージョンに自動的に複製できるようになりました。

335
eillarra

CloudFrontとS3バケットは同じではありません。簡単に言うと、CloudFrontを使用すると、EdgeロケーションのContent Delivery Network(CDN)を介してWebコンテンツのコンテンツ配信を高速化できますが、S3バケットは実際のファイルを保存する場所です。 CloudFrontソースは必ずしもS3からのものであるとは限りませんが、CloudFrontとのS3統合の視覚化を容易にするために: enter image description here

36
mel3kings

もう1つの大きな違いは、CloudFrontを使用すると、サーバー上のサイトをミラーリングできることです。 Cloudfrontは、コンテンツ配信ネットワークを使用して、画像、mp3、ビデオなどのファイルをキャッシュします。

これにより、Amazon S3を使用する場合のようにアセットを複製する必要がなくなります。

ただし、ファイルの有効期限が切れると、CloudFrontはライブサイトから(コストをかけて)再度取得します。そのため、クラウドフロントは、頻繁にアクセスされるファイルに最適であり、あまりアクセスされないファイルには最適ではありません。

Apacheのファイルの有効期限を設定する1つの方法は、.htaccessです。例えば

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
26
dwenaus

Amazon CLOUDFRONTとS3は、Amazon Web Servicesが提供する2つの異なるサービスです。

Amazon S​​は、次のような静的ファイルを保存できるストレージサービスです。

css、画像、javascript、ビデオなど...

Amazon CloudFrontは、AWSからファイルをリクエストするユーザーと特定のリージョンのS3データセンターの間にあるミドルウェアです。CloudFrontは、静的および動的なWebコンテンツの配信を高速化するために使用されますS3からユーザーへ。

あなたは例によってそれをよりよく理解できます:

たとえば、S3はAWSリージョン米国東部(バージニア北部)にあり、ファイルを保存するデータセンターの場所です。

インドのユーザーがバージニア州のAWSサーバーからファイルにアクセスしようとすると、ユーザーはリクエストでその特定の場所にアクセスする必要があり、これには多くの時間がかかります。

CloudFrontは、ユーザーとAWS S3の間のミドルウェアとして機能します。


最も頻繁に使用されるファイルはCloudFrontにキャッシュでき、その機能はEdgeロケーションにそれらのファイルを複製します(コンテンツをより低いレイテンシでエンドユーザーに配信するために、Amazon CloudFrontはコンテンツ配信にEdgeロケーションのグローバルネットワークを使用します)。

コンテンツがすでに最も遅延の少ないEdgeロケーションにある場合、CloudFrontはすぐに配信します。コンテンツが現在そのEdgeの場所にない場合、CloudFrontはAmazon S3バケットからコンテンツを取得し、できるだけ早くユーザーに提供します。

すべてのリクエストにはCloudFrontからS3への新しいDNSが割り当てられるため、これによりトラフィックが減少し、リクエストの並列処理が増加します。

以下は2016年7月現在のEdgeの場所のリストです:-

米国

  • アッシュバーン、VA(3)
  • ジョージア州アトランタ
  • イリノイ州シカゴ
  • テキサス州ダラス/フォートワース(2)
  • カリフォルニア州ヘイワード
  • フロリダ州ジャクソンビル
  • カリフォルニア州ロサンゼルス(2)
  • フロリダ州マイアミ
  • ニューヨーク、ニューヨーク(3)
  • ニューアーク、ニュージャージー州
  • カリフォルニア州パロアルト
  • カリフォルニア州サンノゼ
  • ワシントン州シアトル
  • インディアナ州サウスベンド
  • ミズーリ州セントルイス

ヨーロッパ

  • オランダ、アムステルダム(2)

  • ダブリン、アイルランド

  • ドイツ、フランクフルト(3)

  • イギリス、ロンドン(3)

  • マドリッド、スペイン

  • マルセイユ、フランス

  • ミラノ、イタリア

  • パリ、フランス(2)

  • スウェーデンのストックホルム

  • ワルシャワ、ポーランド

アジア

  • チェンナイ、インド

  • 香港(2)

  • ムンバイ、インド

  • マニラ、フィリピン

  • ニューデリー、インド

  • 大阪、日本

  • ソウル、韓国(3)

  • シンガポール(2)

  • 台北、台湾

  • 東京、日本(2)

オーストラリア

  • オーストラリア、メルボルン

  • オーストラリア、シドニー

南アメリカ

  • サンパウロ、ブラジル

  • リオデジャネイロ、ブラジル

このことから、S3がホストされているのと同じ地域のユーザーが制限されている場合、CloudFrontに移動する必要はなく、グローバルレベルでユーザー数が増加する場合は、CloudFrontを必ず使用する必要があると結論付けることができます遅延とトラフィック制御を改善します。

15
Patrick R

S3でCloudFrontを使用するもう1つのケースは、S3では使用できないのに対し、CloudFrontでカスタムドメインへのSSL証明書を使用できることです。私見のかなりの理由!

12
rgubby

Amazon S3はシンプルストレージサービスです。これは、動画、画像、PDFなどの大量の情報を使用できます。

CloudFrontは、エンドユーザーにより近いコンテンツ配信ネットワークであり、最短時間でAmazon S3で情報を利用できるようにするために使用されます。

サンプルの使用例は、ビデオオンデマンドです。

  1. ビデオは1か所に保存します。 S3は、事前に記録されたすべてのビデオを異なる形式で保存します。
  2. グローバルユーザーケースがあります
  3. CloudFrontは、ビデオをEdgeロケーションにキャッシュするために使用されます。これは、コンテンツをエンドユーザーに配信するために使用できます。場所は、最も近い物理的なEdgeの場所に基づいて自動的に選択されます。現在、約51のエッジロケーションがあります。

適切なユースケースにCloudFrontを使用するいくつかの利点:

  1. 遅延の改善-エンドユーザーエクスペリエンスの向上。
  2. データ転送コストの削減の可能性。データは特定のAWSリージョンの同じS3バケットから毎回転送されるわけではないため。

他の可能なユースケース:

  1. 生放送
  2. ゲーミング
  3. ウェブサイトの高速化
7

ここで見逃している1つの側面は次のとおりです。

Amazon Cloudfrontは、使用率の高い階層でAmazon S3よりも低価格も提供しています。

  • Cloudfront CDNは、地理的に分散した複数のサーバー(CSS、JS)にコンテンツを配信するためのものです

  • 一方、s3はユーザーごとのリソースストア(ユーザー画像、PDF)の使用量が少なくなります。

Webサーバーを完全にバイパスして、s3バケットからCloudfrontリソースを提供できます。

Webサーバーが画像とJavaスクリプトをプリコンパイルして保存する状況で役立ちます。s3に保存すると、サーバーのメモリフットプリントが削減されます

例:Heroku Slugsの場合(s3を使用し、クラウドフロントCDNでラップすることで、アプリケーションのサイズを縮小でき、スループットが向上します)

4
Abs

最初に、Amazon S3がクラウドストレージであり、Cloud Frontがコンテンツ配信ネットワーク(CDN)であることを説明したいと思います。

したがって、S3にファイルを保存するために使用でき、インターネット経由でコンテンツを提供するための配布を作成できます。同様に、特定の地域の配布を作成できます。

1
Kailash Malav

Amazon S3は、リージョン/ゾーンのダウンを防ぐためにグローバルに分散されたストレージシステムを探している場合に最適なオブジェクトストレージプラットフォームです。また、画像、ビデオ、画像、バックアップなど、トランザクションや変更を伴わない静的/固定コンテンツにも最適です。

1
JStorage

ここからAmazon S3とAmazon Cloudfrontの比較を見ることができます: http://www.bucketexplorer.com/documentation/cloudfront--Amazon-s3-vs-Amazon-cloudfront.html

[開示: バケットエクスプローラー)

1
Ronak