S3やその他の方法でAmazon Cloudfrontに適したユースケースはありますか?私は2つの例の違いを理解しようとしています。
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.com
、d2.mystatics.com
およびd3.mystatics.com
はすべて同じものを指すことができます並列ダウンロードの容量を増やす場所(これは Google で推奨されていましたが、SPDYとHTTP/2の導入により重要度は低下しました)。
CloudFront CORSもサポート 2014年時点(sergiopantojaに感謝)。
*注:2015年以降、S3は追加のリージョンに自動的に複製できるようになりました。
もう1つの大きな違いは、CloudFrontを使用すると、サーバー上のサイトをミラーリングできることです。 Cloudfrontは、コンテンツ配信ネットワークを使用して、画像、mp3、ビデオなどのファイルをキャッシュします。
これにより、Amazon S3を使用する場合のようにアセットを複製する必要がなくなります。
ただし、ファイルの有効期限が切れると、CloudFrontはライブサイトから(コストをかけて)再度取得します。そのため、クラウドフロントは、頻繁にアクセスされるファイルに最適であり、あまりアクセスされないファイルには最適ではありません。
Apacheのファイルの有効期限を設定する1つの方法は、.htaccessです。例えば
<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
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の場所のリストです:-
米国
ヨーロッパ
オランダ、アムステルダム(2)
ダブリン、アイルランド
ドイツ、フランクフルト(3)
イギリス、ロンドン(3)
マドリッド、スペイン
マルセイユ、フランス
ミラノ、イタリア
パリ、フランス(2)
スウェーデンのストックホルム
ワルシャワ、ポーランド
アジア
チェンナイ、インド
香港(2)
ムンバイ、インド
マニラ、フィリピン
ニューデリー、インド
大阪、日本
ソウル、韓国(3)
シンガポール(2)
台北、台湾
東京、日本(2)
オーストラリア
オーストラリア、メルボルン
オーストラリア、シドニー
南アメリカ
サンパウロ、ブラジル
リオデジャネイロ、ブラジル
このことから、S3がホストされているのと同じ地域のユーザーが制限されている場合、CloudFrontに移動する必要はなく、グローバルレベルでユーザー数が増加する場合は、CloudFrontを必ず使用する必要があると結論付けることができます遅延とトラフィック制御を改善します。
S3でCloudFrontを使用するもう1つのケースは、S3では使用できないのに対し、CloudFrontでカスタムドメインへのSSL証明書を使用できることです。私見のかなりの理由!
Amazon S3はシンプルストレージサービスです。これは、動画、画像、PDFなどの大量の情報を使用できます。
CloudFrontは、エンドユーザーにより近いコンテンツ配信ネットワークであり、最短時間でAmazon S3で情報を利用できるようにするために使用されます。
サンプルの使用例は、ビデオオンデマンドです。
適切なユースケースにCloudFrontを使用するいくつかの利点:
他の可能なユースケース:
ここで見逃している1つの側面は次のとおりです。
Amazon Cloudfrontは、使用率の高い階層でAmazon S3よりも低価格も提供しています。
Cloudfront CDNは、地理的に分散した複数のサーバー(CSS、JS)にコンテンツを配信するためのものです
一方、s3はユーザーごとのリソースストア(ユーザー画像、PDF)の使用量が少なくなります。
Webサーバーを完全にバイパスして、s3バケットからCloudfrontリソースを提供できます。
(Webサーバーが画像とJavaスクリプトをプリコンパイルして保存する状況で役立ちます。s3に保存すると、サーバーのメモリフットプリントが削減されます)
例:Heroku Slugsの場合(s3を使用し、クラウドフロントCDNでラップすることで、アプリケーションのサイズを縮小でき、スループットが向上します)
最初に、Amazon S3がクラウドストレージであり、Cloud Frontがコンテンツ配信ネットワーク(CDN)であることを説明したいと思います。
したがって、S3にファイルを保存するために使用でき、インターネット経由でコンテンツを提供するための配布を作成できます。同様に、特定の地域の配布を作成できます。
Amazon S3は、リージョン/ゾーンのダウンを防ぐためにグローバルに分散されたストレージシステムを探している場合に最適なオブジェクトストレージプラットフォームです。また、画像、ビデオ、画像、バックアップなど、トランザクションや変更を伴わない静的/固定コンテンツにも最適です。
ここからAmazon S3とAmazon Cloudfrontの比較を見ることができます: http://www.bucketexplorer.com/documentation/cloudfront--Amazon-s3-vs-Amazon-cloudfront.html
[開示: バケットエクスプローラー)