CloudFrontのキャッシュ有効期限は基本的に1日なのですが、Cache-ControlやExpiresなどのHTTPヘッダを追加することで、最短1時間にまで変更することができます。

AWS Management Consoleで設定する場合は、S3タブにて対象ファイルを下記のように変更すればOKです。
(※ただしCloudFrontのオリジンがS3であることが前提です)

ただExpiresで、1時間後の時刻を指定し続けるのは非現実的なので、Cache-Control: max-age=3600を使う形になると思います。

実際に確認してみると、下記のようにレスポンスを確認すると、上記のヘッダが追加されていることが確認できます。

# telnet s3.amazonaws.com 80
Trying 207.171.187.117...
Connected to s3.amazonaws.com.
Escape character is '^]'.
GET /cdn.suz-lab.com/sample.txt HTTP/1.1
Host: s3.amazonaws.com
Connection: close

HTTP/1.1 200 OK
x-amz-id-2: DzguznSCW0CPEbxAG7i7B9/1f/c/awpKch/sCjMlL5xO4t3gH++RCADEKGWhNYfi
x-amz-request-id: 634C9FC0C961E3A8
Date: Tue, 07 Jun 2011 11:40:40 GMT
Cache-Control: max-age=3600
Expires: Tue, 07 Jun 2011 16:00:00 GMT
Last-Modified: Tue, 07 Jun 2011 11:19:26 GMT
ETag: "5e8ff9bf55ba3508199d22e984129be6"
Accept-Ranges: bytes
Content-Type: text/plain
Content-Length: 6
Server: AmazonS3

sample
Connection closed by foreign host.

この設定は、バケット全体に設定できたらいいですね。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら