2

クラウドフロントと CDN がどのように機能するかについて頭を悩ませようとしています。ファイルがあり、キャッシュ制御ヘッダーが 1 年に設定されていて、Amazon クラウド フロントを CDN として使用している場合。ファイルを削除するとどうなりますか? クラウドフロントサーバーによってキャッシュされているため、引き続き提供されますか? 世界中のすべての場所で提供されるのか、それとも 1 回要求された場合にのみエッジ サーバーにキャッシュされるのか。

例 Amazon Cloud Front blue.jpg の背後に、キャッシュ制御ヘッダーが 1 年間設定されたファイルがあります。

ニューヨークの場所からファイルにアクセスします

次に、ファイルを削除します。

次に、ニューヨークからファイルを含むページに再度アクセスすると、ファイルはキャッシュされたものとして提供されますか?

その後、誰かがロシアのモスクワからファイルを含むページにアクセスした場合はどうなるでしょうか。彼はファイルを表示できますか?

ご協力いただきありがとうございます :)

4

1 に答える 1

1

CloudFront は、ユーザーに近いキャッシュの集まりです。各エッジ ロケーションは独立して動作します。

デフォルトでは、CloudFront は http キャッシュ コントロール ヘッダーに従います。ファイルが 1 年間有効期限切れにならないようにヘッダーを設定すると、CloudFront はオリジンサーバーにチェックバックすることなく、そのファイルを 1 年間提供し続けます。

各エッジ ロケーションは独立して動作するため、この例では、ニューヨークは引き続きファイルを提供しますが、モスクワはファイルを削除 (404) します。想像できるように、これにより、さまざまなユーザーにさまざまなコンテンツが表示される可能性があります。

この問題を回避するための戦略があります。

CloudFront ドキュメント ( http://aws.amazon.com/cloudfront/#details ) から:

オブジェクトのバージョニングとキャッシュの無効化 Amazon CloudFront エッジロケーションにキャッシュされたファイルを更新するには、2 つのオプションがあります。オブジェクトのバージョン管理を使用して、コンテンツへの変更を管理できます。オブジェクトのバージョン管理を実装するには、オリジン サーバーでファイルのバージョンごとに一意のファイル名を作成し、Web ページまたはアプリケーションで正しいバージョンに対応するファイル名を使用します。この手法により、Amazon CloudFront は、新しいバージョンを提供する前にオブジェクトの有効期限が切れるのを待つことなく、必要なオブジェクトのバージョンをキャッシュします。

また、無効化 API を呼び出すことで、いつでもすべての Amazon CloudFront エッジ ロケーションからファイルのコピーを削除できます。この機能は、オリジンサーバーでそのファイルに設定した有効期限に関係なく、すべての Amazon CloudFront エッジロケーションからファイルを削除します。一度に複数のファイルを削除する必要がある場合は、ファイルのリスト (最大 1,000) を XML ドキュメントで送信できます。無効化機能は、予期しない状況で使用するように設計されています。たとえば、アップロードしたビデオのエンコード エラーを修正したり、Web サイトの CSS ファイルの予期しない更新を修正したりする場合などです。ただし、ファイルが頻繁に変更されることが事前にわかっている場合は、オブジェクトのバージョン管理を使用してファイルの更新を管理することをお勧めします。

于 2013-07-23T12:51:10.373 に答える