Originally we didn't set cache TTL's and needed to invalidate the cache during every deployment. That took a while and quickly became painful. We then changed to setting the cache control to 30 seconds when uploading to S3. Here's our command if that helps.
aws s3 cp SRCDIR s3://S3-BUCKET/ --profile PROFILE --recursive --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --cache-control "max-age=30"
It's a trade off between longer cache times that are good for performance and being able to test changes quickly. Right now I think we've swung too far towards development and I plan to experiment with longer cache times over the next few weeks.