s3 よりも Amazon クラウドフロントの方が適している、またはその逆のユースケースはありますか? 例を通して2つの違いを理解しようとしています。
9 に答える
Amazon S3は、1 つの特定の地理的リージョンでの大容量で低コストのファイル ストレージ用に設計されています*。ストレージと帯域幅のコストは非常に低くなっています。
Amazon CloudFrontは、可能な限りユーザーに近いエッジロケーションでウェブデータをプロキシおよびキャッシュするコンテンツ配信ネットワーク (CDN) です。
エンド ユーザーがこのドメイン名を使用してオブジェクトを要求すると、コンテンツの高性能配信のために最も近いエッジ ロケーションに自動的にルーティングされます。(アマゾン)
CloudFront によって提供されるデータは、S3 から取得される場合とそうでない場合があります。配信速度がより最適化されているため、帯域幅のコストが少し高くなります。
ユーザーベースがローカライズされている場合、S3 または CloudFront での作業に大きな違いは見られません (ただし、S3 バケットの適切な場所を選択する必要があります: 米国、EU、APAC)。ユーザーベースが世界中に広がっており、速度が重要な場合は、CloudFront の方が適している可能性があります。
S3 と CloudFront の両方でドメイン エイリアスが許可されますが、CloudFront では複数のエイリアスが許可されるため、d1.mystatics.com
、 、d2.mystatics.com
およびd3.mystatics.com
すべてが同じ場所を指し、並列ダウンロードの容量が増加します (これはGoogleによって推奨されていましたが、SPDY および HTTP/2 の導入により、重要度は低い)。
CloudFrontは 2014 年からCORS もサポートしています(sergiopantoja に感謝します)。
* 注: 2015 年以降、S3 は追加のリージョンに自動的にレプリケートできるようになりました。
Amazon CLOUDFRONT と S3 は、Amazon Web Services が提供する 2 つの異なるサービスです。
Amazon S3は、次のような静的ファイルを保存できるストレージ サービスです。
CSS、画像、JavaScript、動画など...
Amazon CloudFrontは、AWS からファイルを要求するユーザーと特定のリージョンの S3 データセンターとの間に立つミドルウェアです。CloudFront は、S3 からユーザーへの静的および動的 Web コンテンツの配信を高速化するために使用されます。
例でそれをよりよく理解できます:-
たとえば、S3 は AWS リージョンの米国東部 (バージニア北部) にあり、ファイルを保存するデータセンターの場所です。
インドのユーザーがバージニア州の AWS サーバーからファイルにアクセスしようとすると、ユーザーはリクエストでその特定の場所に移動する必要があり、これには多くの時間がかかります。
CloudFront が行うことは、ユーザーと AWS S3 の間のミドルウェアとして機能することです。
最も頻繁に使用されるファイルは CloudFront にキャッシュすることができ、それが行うことは、それらのファイルをエッジ ロケーションにレプリケートすることです (より低いレイテンシーでエンド ユーザーにコンテンツを配信するために、Amazon CloudFront はコンテンツ配信のためにエッジ ロケーションのグローバル ネットワークを使用します)。
コンテンツがレイテンシーが最も低いエッジロケーションにすでにある場合、CloudFront はすぐにコンテンツを配信します。コンテンツが現在そのエッジ ロケーションにない場合、CloudFront は Amazon S3 バケットからコンテンツを取得し、可能な限り高速にユーザーに提供します。
すべてのリクエストには、CloudFront から S3 への新しい DNS が与えられるため、トラフィックが減少し、リクエスト処理の並列処理が増加します。
以下は、2016 年 7 月の現在のエッジ ロケーションのリストです。
アメリカ
- バージニア州アッシュバーン (3)
- ジョージア州アトランタ
- イリノイ州シカゴ
- テキサス州ダラス/フォートワース (2)
- カリフォルニア州ヘイワード
- フロリダ州ジャクソンビル
- カリフォルニア州ロサンゼルス (2)
- フロリダ州マイアミ
- ニューヨーク州ニューヨーク (3)
- ニュージャージー州ニューアーク
- カリフォルニア州パロアルト
- カリフォルニア州サンノゼ
- ワシントン州シアトル
- インディアナ州サウスベンド
- ミズーリ州セントルイス
ヨーロッパ
アムステルダム、オランダ (2)
ダブリン、アイルランド
フランクフルト、ドイツ (3)
ロンドン、イングランド (3)
マドリッド、スペイン
マルセイユ、フランス
ミラノ、イタリア
パリ、フランス (2)
スウェーデンのストックホルム
ワルシャワ、ポーランド
アジア
チェンナイ、インド
香港 (2)
ムンバイ、インド
マニラ、フィリピン
ニューデリー、インド
大阪、日本
ソウル、韓国 (3)
シンガポール (2)
台北、台湾
東京、日本 (2)
オーストラリア
メルボルン、オーストラリア
シドニー、オーストラリア
南アメリカ
ブラジル、サンパウロ
リオデジャネイロ、ブラジル
このことから、S3 がホストされているのと同じリージョンのユーザーが制限されている場合、CloudFront を使用する必要はなく、ユーザー数がグローバルレベルで増加している場合は、間違いなく CloudFront を使用する必要があると結論付けることができます。遅延とトラフィック制御を改善します。
もう 1 つの大きな違いは、CloudFront ではサーバー上のサイトをミラーリングできることです。Cloudfront は、コンテンツ配信ネットワークを使用して、画像、mp3、動画などのファイルをキャッシュします。
これにより、Amazon S3 を使用する場合のようにアセットを複製する必要がなくなります。
ただし、ファイルの有効期限が切れると、CloudFront はライブサイトからファイルを再度取得します (有料)。そのため、クラウド フロントは頻繁にアクセスされるファイルには最適ですが、アクセス頻度の低いファイルには最適ではありません。
apache のファイルの有効期限を設定する 1 つの方法は、.htaccess にあります。例えば
<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
S3 で CloudFront を使用する別のケースとして、CloudFront ではカスタム ドメインに SSL 証明書を使用できますが、S3 では使用できない場合があります。かなりの理由私見!