S3 + CloudFront で画像などの圧縮できないオブジェクトの CDN キャッシュが効かないとき

みるみ

S3 に置いた画像などのバイナリオブジェクトを CloudFront で配信するとき、AWS が用意しているマネージドキャッシュポリシーから選ぶものを間違えると、なかなか気づけないまま単にキャッシュが機能しない状態になってしまうので記録に残しておく。

キャッシュポリシー内の「圧縮」と「キャッシュ可否」は関連があるらしい

要点は、圧縮できないオブジェクトに対して「圧縮を有効化」しているキャッシュポリシーではキャッシュ自体が働かなくなるということのようです。

つまり結論としては「Managed-CachingOptimizedForUncompressedObjects」を使うとワークする、になります。

cloudfront-cache-policy-config これ。

下部の「圧縮サポート」がどちらもわざわざ無効になっているのが確認できます(キャッシュ部分の TTL 設定は通常のキャッシュポリシーと同じもの)。

それと、どうやら「キャッシュビヘイビア設定画面直下の『オブジェクトを自動的に圧縮』が Yes になっていることは問題ない」ようです。

cloudfront-cache-behavior-config これ。

初めてマネージドキャッシュポリシーの 5 つを見たとき、それぞれの有用性が全くわからなかったのですが、ちょっと腑に落ちました。そこは動いてよとは思うんだけども。

ちなみに、レガシーキャッシュセッティング(下図)のほうは使ったことがないので詳しい事情を知りません。少なくとも「レガシー」というくらいなのだから今後これを覚える必要はない気がしますが(たぶんそのうちなくなると思う)。

みるみ
みるみ

ブロガー、ソフトウェアエンジニア。

暗号資産業界で働いています。

この記事へのコメント
コメントはまだひとつもありません :)

新しいコメントを書く

  • 必須項目はコメント本文のみですが、お名前はぜひご記入いただけると嬉しいです。
    ※メールアドレスを書いた場合も公開されることはないのでご安心ください。
  • 特定のコメントに返信したい場合は各コメントにある「返信する」ボタンからどうぞ。
  • コメントはこちらで承認の作業を行うまでは表示されません。ご了承ください メールX からお願いします。