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


9

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

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

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

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

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

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

更新:

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


はい。CloudFrontは、高速サーバーに直接アクセスするよりも遅い可能性があります。CloudFrontは、AmazonがDNS解決の複数のレイヤーで実装した方法などにより、最も遅いCDNの1つであるためです。世界中の場所を調べて、自分に適しているかどうかを判断します。テストにはwebpagetest.orgを使用します。
Jesper M

回答:


5

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

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

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


私が見たパフォーマンスの問題に関する別の潜在的な説明で質問を更新しました。つまり、TTL設定を5分の低い設定のままにしていたのですが、12時間に戻すと、これらは表示されないと思います時々パフォーマンスの問題が頻繁に発生します。
グレッグ

7

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

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

お役に立てば幸いです。


ジェシーに感謝します-とても役に立ちました。スケーリングに関する要点はよく理解されています。そして、それは大きな違いを生むのに十分なトラフィックがあります。私はまだキャッシュポリシーを知りたいです。CDNの設定方法に関する膨大な量の情報を見つけましたが、その特徴についてはほとんど知りません。たとえば、アクセス頻度が非常に低い古いコンテンツを(CDNから)除外する必要があるかどうか疑問に思っています。
グレッグ

グレッグ-おそらく経済的理由以外では、コンテンツを除外することについての議論はありません。ただし、Amazonでオブジェクトのキャッシュヘッダーを制御できます。あなたはこのに探してみてください:stackoverflow.com/questions/269840/...
ジェシーバンチ

これにより、通常のWebサイトのメディアと同様に、将来の期限切れヘッダーを指定できます。
ジェシーバンチ

再度、感謝します。このキャッシュ制御リンクは、s3ではなくカスタムオリジンサーバーを使用しているため、私の状況には関係ありません。しかし、プリンシパルが適用され、私は遠い将来の有効期限ヘッダーセットを持っています。ちなみに、Amazonのドキュメントには、コンテンツがキャッシュに24時間存在すると書かれていますが、私の実験では別のことが示されています。
グレッグ

1

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

アマゾンよくある質問は言う:?「何のキャッシュ制御ヘッダーが設定されていない場合はQ.どれくらいがアマゾンCloudFrontのは、デフォルトでは、エッジの場所で私のファイルを保持します、それはより多くのリクエストを受信するたびに、あなたのファイルの更新バージョンのための各エッジの位置をチェック前回から24時間後に、そのファイルへの変更がないかオリジンをチェックしました。これは「有効期限」と呼ばれます。オリジン内のファイルにキャッシュ制御ヘッダーを設定することにより、この有効期限を1時間から、または必要に応じて長く設定できます。AmazonCloudFrontは、これらのキャッシュ制御ヘッダーを使用して、そのファイルの更新されたバージョンのオリジン。ファイルが頻繁に変更されない場合は、有効期限を長く設定し、ファイルの更新を管理するためのバージョン管理システムを実装することをお勧めします。」

[最後の文は「50年に設定してファイルを変更したい場合は、運が悪い」という意味だと思います。]

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

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


キャッシュコントロールがコンテンツがエッジに保持される期間に影響を与えることは正しいです。ただし、TTLは別の問題です。TTLは、ドメイン名に割り当てられたIPアドレスのキャッシュを制御します。したがって、静的ファイルがエッジでキャッシュされているかどうかに関係なく、サーバーが初めてファイルのURLを確認するときは、このドメインのIPアドレスを見つける必要があります。1日のTTLでは、近くのサーバーのDNSキャッシュにこの情報がある可能性があります。5分のTTLでは、これははるかに少ない可能性が高いと私の元のサーバへの完全なラウンドトリップは(ないファイルのために、しかしURLを解決するために)必要とされる。..です
グレッグ・

ああ、ありがとう。DNS TTLとキャッシュ制御を混同していた:)
Chris W

1

CDNを使用する理由は、

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

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

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

ページの平均読み込み時間

平均ページ読み込み時間分布

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.