[解決済み] CloudFrontのTTL 0は何のためにあるのか?
質問
数週間前、Amazonがコンテンツの有効期限を引き下げたと発表しました。
Amazon CloudFront がコンテンツの最小有効期限を引き下げました。
CloudFrontのTTLを0に設定することができます。 そこで質問ですが、なぜTTLを0に設定したCloudFrontディストリビューションを持つことが有用なのでしょうか? 私にとっては、これはキャッシュが全くないことを意味するので、CloudFrontに届くすべてのリクエストはオリジンを叩くことになります。
私は何を見逃しているのでしょうか?
どのように解決するのですか?
この新機能は Amazon CloudFront は、実際に多くのユースケースで非常に有用であり、その理由は オリジンを叩く は一見したところとは少し違っていて、必ずしも問題ではないからです。この機能は以前からリリースされていましたが、最近リリースされた Amazon CloudFront - ダイナミック コンテンツのサポート のリリースと一緒になっています。
可変TTL(Time-To-Live) - 多くの場合、動的なコンテンツは キャッシュできないか、または非常に短い期間、おそらく数秒間だけキャッシュ可能です。 多くの場合、動的なコンテンツはキャッシュできないか、または非常に短い時間、おそらく数秒だけキャッシュ可能です。過去には、CloudFrontの最小TTLは60分でした。 分であり、すべてのコンテンツは静的と見なされていました。新しい最小TTL 値は 0 秒です。 特定のオリジンに対するTTLを0に設定した場合。 CloudFront はまだコンテンツをキャッシュします をそのオリジンからキャッシュします。 その後 If-Modified-Since ヘッダを持つ GET リクエストを行います。 を行い、それによって 原点回帰のチャンス のシグナルを送り、CloudFrontがキャッシュされたコンテンツを使い続けることができるようにします。 キャッシュされたコンテンツがオリジンで変更されていなければ . [強調].
言い換えれば、0 の TTL を使用することは、主に CloudFront がキャッシュ制御の権限をオリジンに委譲すること、つまり CloudFront がオブジェクトをキャッシュするかどうか、またどのくらいの期間キャッシュするかをオリジンサーバーが決定することを意味します。 GETリクエストにIf-Modified-Sinceヘッダがある場合 は、必ずしもオブジェクト自体がオリジンから取得されることを意味するわけではなく、オリジンが HTTP ステータス コード 304 - 未修正 を返すことができます。
リソースが最後にリクエストされて以来、変更されていないことを示します。[...] これを使うと、サーバとクライアントの両方で帯域幅と再処理が節約できます。 ヘッダデータのみを送受信する必要があるため、サーバとクライアントの両方で帯域幅と再処理を節約できます。 になります。 ページ全体がサーバーで再処理されるのに比べて サーバで再処理され、サーバとクライアントの帯域幅を使用して再度送信されるのに比べて、ヘッダー データのみを送受信する必要があるためです。 [
Mark Nottinghamの素晴らしい キャッシュチュートリアル をご覧ください。HTTP キャッシュ制御の仕組みと利点、HTTP アーキテクチャの本当に重要で効果的な部分についての詳細です。
これらの部品がどのように連携して動作しているかを理解することは、実に難しいことです。 CloudFront がダウンロード配布のオブジェクトをキャッシュする最短時間の指定 内の表 CloudFront Edge Cacheにオブジェクトが保存される期間を指定する(オブジェクトの有効期限) は、特にTTL = 0の有無にかかわらず、CloudFrontのコンテキストに適用した場合の効果をまとめようと試みています。
関連
-
[解決済み】あなたのWSGIPathは、存在しないファイルを参照しています。
-
[解決済み] EIP:AddressLimitExceeded
-
[解決済み] AWS Secrets Managerで指定された秘密が見つからない
-
[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] amazon cloudfront と amazon s3 transfer acceleration の違いは何ですか?
-
[解決済み] 新しいIAM管理者ユーザーに "この操作を実行する権限がありません "と表示される
-
[解決済み] AWSのstsは、1つのコマンドの役割を担う
-
[解決済み] AWS CLIでワイルドカードを使用してファイル群を`cp`するにはどうすればよいですか。
-
[解決済み】EC2インスタンスにスワップを追加する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS CLI S3 HeadObject操作の呼び出し時に、クライアントエラー(403)が発生しました。Forbidden
-
[解決済み】aws cli: update-kubeconfig が期待通りに動作しない。
-
[解決済み] Terraformです。EFSアクセスポイントをEC2にマウントするには?
-
[解決済み] AWS-CLI: autoscalinggroupsをリストダウンする方法
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] amazon cloudfront と amazon s3 transfer acceleration の違いは何ですか?
-
[解決済み] 新しいIAM管理者ユーザーに "この操作を実行する権限がありません "と表示される
-
[解決済み] AWS CloudFrontとGlobal Accelerator for Dynamic Contentsの比較
-
[解決済み] AWS SNSとAWS SQSのFIFOキューを統合することは可能か?
-
[解決済み] kubectlエラー EKSクラスタにアクセスする際、サーバーにログインする必要がある(Unauthorized)。