web-dev-qa-db-ja.com

AWS CloudFrontは、アクセス頻度の低いファイルの読み込み時間を*増加*させる必要がありますか?

私はCDNを初めて使用し、CloudFrontを試しています。すべてを設定しましたが、すべて正常に動作しているようです。ページ上に静的画像を作成し、CloudFrontディストリビューションを介してそれにアクセスできます。カスタムOriginを使用しています(つまり、s3バケットではありません)。

とはいえ、パフォーマンスの観点からはもっと悪いのではないかと心配しています。 CDNの有無にかかわらず、同じ20枚程度の画像をロードするテストページがあります。 Firebugのネットパネルを見ると、このページを初めてロードしたときに、Originサーバーから直接ロードされた画像の方がはるかに速く表示されます。次のページの読み込みで、CDNの利点が明らかになります。3〜5回の更新後、CDNはオリジンサーバーよりも優れています。

ですから、私たちのサイトで常にヒットしている人気のあるページでは、これがメリットになることがわかります。私はシアトル(Amazonの角を曲がったところ)にいて、サーバーはCAにあるので、メリットが期待できます。

問題は、数分間ページを離れてからリロードすると、問題が元の状態に戻り、CloudFrontがOriginサーバーよりも悪いことです。これは予想されますか?物事はCDNの「キャッシュ」からすぐに消えてしまいますか?

セットアップで何かがパフォーマンスを低下させている可能性はありますか?それとも、平均で数秒ごとに現在アクセスされているコンテンツに対してのみ、CDNがプラスになるという現実はありますか?

(私はSOのターンアラウンドタイムに永遠に甘やかされてきたので、AWSフォーラムからクロスポストされました)

更新:

CloudFrontのパフォーマンスについて質問がある場合に検討する価値のある、以下の2つの良い答えがあります。最近、私の特定の問題について1つの説明が記載されていないことがわかりました。私はTTLを5分で見落としとして残しました。カスタムOriginも使用しているため、それを実際のAmazon CloudFrontドメインに解決するために権威ネームサーバーへの追加の往復があります。 TTL設定が12時間に戻ると、長い負荷が発生することはほとんどないようです。

9
Greg

Cloudfrontは、返信で「X-Cache:Hit from cloudfront」のような返信にヘッダーを設定します。おそらく、リダイレクト先のノードのキャッシュにファイルがなかった場合は、「Miss」と表示されます。

24時間経過していなくても、ファイルの人気度が低いために、人気の高いコンテンツによってCloudFrontのキャッシュから排出される可能性があります。 IO=過負荷または特定のCloudFrontノード内のその他の状況により、アクセスが遅くなる可能性もあります。Cloudfrontは、AkamaiまたはLimeLightに比べて非常に安価です。最悪の場合のパフォーマンスと保証されたサービスレベルは、より高価なプレーヤーを使用する理由。

私はテストを行い、人気のあるファイルを1つだけ本番環境のCloudfrontに入れてから、定期的なテストを使用して、CloudFrontがヒットを示しているかどうかを確認します(合計トランザクション時間も記録します)。

5
rmalayter

可能です。ただし、CDNの1つの目的はスケーラビリティです。一度に100回の訪問または100万回の訪問をスローすると、CDNが同じように機能することを期待できます。

あなたの設定に関して言えば、あなたが提供した情報で私が知ることができることは何もありませんが、私は上記の点がCDNを非常に価値あるものにしていると思います。トラフィックの少ないサイトを作成している場合は、CDNがない方がよいでしょう。ただし、メディアの提供を別のサーバーに渡すので、大量のトラフィックが発生した場合、CDNはWebサーバーの負荷を軽くします。最後に、優れたCDN(およびAmazonは)は、広範なネットワークを使用して、要求者に最も近い場所からコンテンツを提供します。多くの場合、リクエスタのISPからコンテンツを提供できるため、ロード時間が非常に高速になります。

お役に立てば幸いです。

7
Jesse Bunch

CDNを使用する理由は、

  • 静的コンテンツ-まれまたは制御された更新
  • 世界中で見られる
  • 頻繁にアクセス

私たちのウェブサイトはあなたのケースとして頻繁にアクセスされませんが、私たちは世界中の私たちのウェブサイトを要求する監視サービスのセットアップを持っています。したがって、CDNキャッシュを温かく保ちます。簡単なケースであり、CDN機能を示すケースについてもお話ししたいと思います。

さらに、私たちはgodaddyサーバー(サージを処理できない)の7ドルではなく、2.2ドルの月額料金を予想しています。

Avg Page Load Times

Avg Page Load Time Distribution

1
JehandadK

誤解しましたか?キャッシュ制御は、エッジの場所がS3からそれらを再ロードする前に、エッジの場所での存続時間を管理しませんか?したがって、S3を使用するか、独自のオリジンを使用するかに関係なく、それらは確かにあなたの状況に関連していますか?番号?

Amazon FAQ には次のように記載されています。前回から24時間を超えてリクエストを受信した場合は常に、Originでファイルの変更を確認しました。これを「有効期限」と呼びます。 Originのファイルにキャッシュコントロールヘッダーを設定することで、この有効期限を1時間から、または必要に応じて長く設定できます。AmazonCloudFrontは、これらのキャッシュコントロールヘッダーを使用して、そのファイルの更新されたバージョンのオリジン。ファイルが頻繁に変更されない場合は、長い有効期限を設定し、バージョン管理システムを実装してファイルの更新を管理することをお勧めします。

[最後の文は「50年に設定してファイルを変更したいのであれば、幸運です」を意味すると思います。]

静的コンテンツをホストするCDNを使用する主なポイントではありませんか?もしそうなら、1日よりもかなり長くTTL?を使用するのに役立ちますか?事実上すべて(すべての画像とCSS)に、私はCache-Control = "max-age = 604800、public、must -revalidate "(つまり、1週間)。私の経験では、S3に新しいバージョンをアップロードした場合、ファイルが変更されるまでに最大で1週間かかります。

お役に立てれば。 [ところで、あなたのより一般的な点については、CDNがあなたが思っているほどパフォーマンスを向上させるのかどうかも不思議に思います。私のサイト全体(CDNを含む)を超高速の専用サーバーに移動し、いくつかのテストを行って調べます。]

1
Chris W