This isn't really free - it's just free for first year until your free tier runs out. It's still super cheap though. I host several sites with this setup and never have a bill over $2 / month. Benefit of this setup over github pages / netlify / etc is it uses standard primitives and will always exist. I used to use Heroku to host several sites and had to go through a massive migration when they stopped offering a free tier.
The article's from December 2017 and you can see from the response headers that it's hosted on GitHub Pages again.<p>There are plenty of gotchas when serving a static site via CloudFront. Let's say you have a page at example.com/foo/index.html. If you want it serve it from example.com/foo/ then you need to write a Lambda@Edge request function to handle the directory index — the article implies that CloudFront's default root objects handle this, but they don't. That's for the domain root only.<p>There's also the case of redirecting example.com/foo to example.com/foo/ (adding the trailing slash). That requires a Lambda@Edge response function. It's all a lot of fun to get working, but you do start to wonder if your static site really is static.
Nice post. You can go one step further and automate most of the process with CloudFormation [1].<p>I also switched some time ago from Gitlab to CloudFront and S3 because it lets me optimize things that get you to 100% at Pagespeed Insights [2] such as Cache Control.<p>[1] <a href="https://correctme.ifiamwrong.com/posts/cloudfrontcloudformation/" rel="nofollow">https://correctme.ifiamwrong.com/posts/cloudfrontcloudformat...</a>
[2] <a href="https://developers.google.com/speed/pagespeed/insights/?hl=en" rel="nofollow">https://developers.google.com/speed/pagespeed/insights/?hl=e...</a>
Shameless plug, but if you're trying to avoid eating into your free tier, I documented GitHub pages + Cloudflare for the same effect. Just turn your Cloudflare cache to super high, and GitHub shouldn't ever get any real load.<p>I gave an example of running a React app[1]<p>[1]: <a href="https://www.toptal.com/github/unlimited-scale-web-hosting-github-pages-cloudflare#contract-just-respected-software-architects" rel="nofollow">https://www.toptal.com/github/unlimited-scale-web-hosting-gi...</a>
If you use cloudflare instead of cloudfront and route53, you don’t have to pay the $.50/mo for dns, but much more importantly you get free bandwidth from cloudflare, and will pay next to nothing in s3 costs if you cache liberally with cloudflare at the cdn level.
Requires a credit card to setup and you will be charged if your usage exceeds the free tier limit.<p><i>Please type your payment information so we can verify your identity. We will not charge you unless your usage exceeds the AWS Free Tier Limits.</i>
Your website doesn't have to be static to host it for free on AWS. You can do server side stuff with Lambda and if you can get away with the 128MB instance (easy enough to do for one function) you get 1 million request a month for free and 888 hours of processing time. (<a href="https://aws.amazon.com/lambda/pricing/" rel="nofollow">https://aws.amazon.com/lambda/pricing/</a>). The free tier for Lambda doesn't expire.<p>The only free hosted database that I am aware of is Mongo Atlas a 3 Node cluster with 500MB oh storage.
Why this stuff so complicated? Previously AWS has a link on the homepage where you could run a static website in couple clicks [1]. Now they removed it.<p>[1] <a href="https://console.aws.amazon.com/quickstart-website/home" rel="nofollow">https://console.aws.amazon.com/quickstart-website/home</a>