Thanks for the write up!
I took this one step further and set up Travis CI to deploy whenever a commit is merged to master. Check out the .travis.yml that accomplishes that: https://github.com/Aturberv/NYCBeerMap/blob/master/.travis.yml#L16-L19.
The steps of the deploy script are similar to what you describe above, but they also invalidate the CloudFront cache.
Hopefully that is useful to the next person wishing to do the same thing :)