2017-02-17 2 views
0

クラウドフロントがキャッシュまたはサーバーからデータを取得することを決定しましたか?

Amazon cloud frontからアマゾンCloudFrontのは、ユーザーには、そのような.htmlを、.cssの、.PHP、および画像 ファイルとして、あなたの 静的および動的なWebコンテンツの配信を高速化するWebサービスです。 CloudFrontは、エッジロケーションと呼ばれる世界中のデータセンターネットワーク を通じてコン​​テンツを配信します。

一意ではありませんが、CloudFrontはURLをキーとしてキャッシュする必要があります。 URLは静的コンテンツと動的コンテンツの両方に対応できます。私は100のweburlを持っていると言います。そのうち30人は静的コンテンツを提供し、70人は動的コンテンツ(ユーザ固有のデータ)を提供しています。 セイUSER_A米国からurl_Aを通して彼のデータにアクセスする - :私は、静的および動的なコンテンツの一つの質問の各

動的なコンテンツを持っています。そのデータはキャッシュされています。彼は名字を更新します。現在、同じユーザーが米国の同じ場所から、または イギリスの別の場所からデータにアクセスします。私たちは更新の前にデータを見る。はいの場合、エッジの場所は、キャッシュからではなくサーバーからフェッチする必要があることを知るためにどのようになりますか? 設定可能な時間内にエッジの位置がキャッシュからのデータを引き続き表示しますか?時間が経過したら、サーバーからフェッチしますか?

クラウドフロントでは、常にキャッシュではなくサーバーからフェッチする必要がある特定のURLを構成できますか?

静的コンテンツ: - 静的データでもリリースごとに変更される可能性があります。キャッシュされた静的コンテンツが古く、サーバからフェッチする必要があることをクラウドフロントがどのように知るのですか?

答えて

1

Amazon CloudFrontは、指定した有効期間(または有効期間:TTL)を使用します。

静的コンテンツの場合は、ディストリビューションのデフォルトのTTLを設定するか、ヘッダーの一部としてTTLを指定できます。 TTLが期限切れになると、CloudFrontエッジロケーションは、オブジェクトのLast Modifiedタイムスタンプが変更されたかどうかを確認します。変更されている場合は、更新されたコピーをフェッチします。変更されていない場合、新しい期間の既存のコピーを引き続き提供します。

静的なコンテンツが変更されている場合は、あなたのアプリケーションは、TTLの期限が切れていなくても、オブジェクトをリロードするCloudFrontのを伝えるために無効化リクエストを送信する必要があります。

動的コンテンツの場合、アプリケーションでは通常、TTLとしてゼロが指定されます。したがって、そのURLは常に原点からフェッチされ、サーバーがユーザーのコンテンツを変更できるようになります。

半分の方法は、パラメータ(例:xx.cloudfront.net/info.html?user=foo)を使用することです。 CloudFrontディストリビューションを設定するときに、異なるパラメータ(例:user=fred)を別々のオブジェクトとして扱うかどうか、または無視するかどうかを指定できます。

また、各CloudFrontエッジロケーションには独自のキャッシュがあります。したがって、誰かがアメリカからページにアクセスした場合、それはではなく、であれば、それは英国にキャッシュされます。あなたは `配布のデフォルトのTTLを設定することができます`言ったようにCloudFrontのを設定しながら、我々は、デフォルトのTTLを設定することができ、Specifying How Long Objects Stay in a CloudFront Edge Cache (Expiration)

+0

1:

は、マニュアルを参照してください? 2.静的コンテンツが変更された場合、アプリケーションは無効化リクエストを送信する必要があります。12.クラウドフロントは無効化リクエスト をクラウドフロントに送信するためのプロビジョニング/設定を提供しますか?それはURLレベルか完全配布か? –

+0

@JohnRotenstein、細部...ドキュメントによれば、CloudFrontは古いオブジェクトをチェックするのに 'HEAD 'を使用せず、[条件付き' GET'](http://docs.aws.amazon.com/AmazonCloudFront/最新の/ DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#RequestCustomConditionalGETs)、If-Match// If-None-Matchおよび/またはIf-Modified-Sinceを送信し、値は最後に原点によって提供されます。正味の結果は似ています(変更がなければ転送はしません)。しかし、 'HEAD'レスポンスが古いキャッシュされたオブジェクトが実際に起点で更新されたことが明らかになった場合に必要な2番目のリクエストも回避します。 –

+0

@sqlbotありがとう、固定! –

関連する問題