I am trying to understand CDN and caching and am not finding the answer.

How do you make amazon cdn cache the images from your origin servers cached images? And is there a way to test for it?

I have the CDN origin mapped to my server, so when it is not finding

<http://cdn.mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg>

it instead looks for

<http://mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg>

You can see in Firebug, all the magento-cached elements are getting a 301 moved permanently, while the static files get an OK 200 response. Also if I enter the cloudfront URL it automatically changes to my url for magento-cached elements, but remains as the cloudfront url for the static ones. 

If I go back later, even a full day, it never uses the CDN source, leading me to believe that its not caching my magento-cached css/js/images on Amazon.

If I turn off caching & js/css optimization, then it makes an excessive amount of http request to the cloudfront cdn.