4

ジレンマについて説明させてください。私はAmazonの3つのサービスを使用しています:EC2、S3、CloudFront。EC2はアップロードとしてファイルを受信し、S3バケットに保存します。次に、CloudFrontはS3バケットをミラーリングします。唯一の制限は、ユーザーフレンドリーなURLを持つことです。それらのファイルを配信するためのどちらのアプローチが優れていますか?

クライアント>CloudFront>EC2> S3

  • クライアントはCloudFrontURLに対してHTTPリクエストを行います
  • CloudfrontはリクエストをEC2に転送します
  • EC2はユーザーフレンドリーなURLを生のファイルURLに変換します
  • EC2はS3からファイルを読み取ります

クライアント>EC2...リダイレクト...CloudFront>S3

  • クライアントはEC2にHTTPリクエストを行います
  • EC2はユーザーフレンドリーなURLを生のファイルURLに変換します
  • EC2はCloudFrontにリダイレクトし、魔女はS3をミラーリングします

これには、速度とコストの2つの側面があります。


プロフィール画像を提供するときに2番目のアプローチを使用しているFacebookが表示されます http://graph.facebook.com/platform/picture

4

2 に答える 2

2

S3 とクライアント間のファイル転送を強制的に EC2 インスタンスを通過させたくはありません。これにより、EC2 インスタンスに負荷がかかり、帯域幅の使用量が増加し、間違いなくユーザーへの応答が遅くなります。

EC2 インスタンスでは、URL 形式を最大限に制御できるため、クライアントに最初のリクエストを行うようにする必要があります (「ユーザーフレンドリーな」URL を作成するため)。EC2 インスタンスは、実際にコンテンツを含む CloudFront または S3 URL へのリダイレクトをクライアントに送信するだけで、クライアントはそこから EC2 のさらなる関与なしに直接プルします。

膨大な数のリクエストがある場合や、ネットワーク レイテンシを可能な限り低くする必要がある場合を除き、CloudFront を気にする必要はありません。

于 2013-01-23T14:31:10.200 に答える
1

個人的には、最初にファイルをアップロードするときに、S3 でファイルに適切な名前と適切なコンテンツ タイプのメタタグを付けて、EC2 インスタンスをダウンロード パスから完全に削除します。HTML コンテンツでクライアントに clean-url を提供するだけで、その clean-url は Cloudfront/S3 のリソースを直接指し示します。Cloudfront/S3 には、目的の content-type ヘッダーを提供するための適切なメタタグがあります。

于 2013-01-23T18:54:58.683 に答える