Search code examples
amazon-web-servicesnginxamazon-s3amazon-ec2amazon-cloudfront

Cloud-front backed with Nginx (which proxies to S3) randomly missing already cached items?


I wish to serve images from a S3 bucket with Cloudfront as CDN frontend, for that I tried the following:

What I wish to acheive (Attempt 2) -- (Misses cloudfront cache randomly)

I have the following setup to serve images: ( Cloudfront --> Nginx --> S3 ) Cloudfront -> Nginx -> S3

<<<<<<<< Sample S3 headers >>>>>>>>>> Attempt-2 S3 headers

<<<<<<<< Sample Nginx -> S3 headers (Added Cache-Control) >>>>>>>>>> Attempt-2 Nginx->S3 headers

<<<<<<<< Sample Cloudfront -> Nginx -> S3 headers >>>>>>>>>> Attempt-2 Cloudfront->Nginx->S3 headers

What I am currently working with (Attempt 1) -- (Hits cloudfront as expected everytime)

Cloudfront -> S3

Cloudfront Settings:

What am I screwing up in Attemp-2 with my headers ? ( Cloudfront missing randomly )

Url(http://cdn.example.com/abc.jpg) & Url(http://cdn.example.com/abc.jpg?v=1) both will have same ETag, is that fine ?

Update

#AWS followed up on forums.aws.amazon.com, still waiting for a reply:

https://forums.aws.amazon.com/thread.jspa?threadID=144286&tstart=0#

Update2

  • Recent hit/miss behavioral change from cloudfront without changing anything.
  • Earlier the hits/misses were random with no fix pattern
  • Now, (with no change on my end) I am getting all hits 1 day and all misses the next day.
  • This suggests that its 24 hour cache but TTL and cache headers suggest 5 year cache expiry.
  • This is again weird and without any explanations.

Hey, AWS can you see this ???


Solution

  • After about 4 months of repetitive to-n-fro with amazon support failed to resolve the issue.

    All problems still persisting:

    • The cache expires in about a day and misses after 24 hours. ( My expiry is 1 year )

    • All headers and aws settings verified by amazon support themselves

    • Unfortunately, the company is still paying for this awful experience due to lockin.

    enter image description here

    ------ After 24 hours ------
    

    enter image description here

    ------ After 24 hours ------
    

    enter image description here

    ------ After 24 hours ------
    

    enter image description here

    -------- And so on.. -------
    

    Concluding, The problem still stands unresolved and amazon support seems to have given up. This is quiet a strange experience since aws is something we generally take for granted.

    :(