TLDR: It is really annoying to configure and deploy a website from scratch so I automated it with terraform.

As a software engineer & product person, I created serverless websites that I fully control. And are permanently free to host. Below is a list of what you need to create websites the right way. For example: You won’t make it to the top of Google’s ranking without having SSL certificates and a CDN.

Here’s the list to deploy a permanently “free tier” website on AWS:

  • Setup a public website S3 bucket (AWS treats this differently)
  • Register a domain on Route53 (or transfer one to Route53)
  • Setup SSL certificates with Certificate Manager
  • Setup a Cloudfront distribution deployment of your S3 bucket
  • Setup IAM policies and roles as needed
  • Create another private S3 bucket for storing HTTP logs
  • Configure Cloudfront logging
  • Sync static site files to S3

The following are optional, but you’ll probably need these anyway:

  • Create a Lambda function for a backend API
  • Configure API Gateway to send API requests to Lambda
  • Create Route53 records for API
  • Configure CORS
  • Setup Cloudwatch logging for API
  • Package and deploy Lambda libraries
  • Setup more IAM policies and roles

You can and should automate this

All of this setup can and should be automated. I wrote this terraform code to automate all of it. I did the automation for you, and I’m selling the terraform code here for $53.

After creating websites manually, I realized how daunting of a task it is to do this. Your first time setting this all up will take you at least a couple days of work. Then 6 months later when you need to do it again, it will still probably take you a couple days of work. And there will probably be new configurations to learn about. Instead of doing that, buy my code one time and I’ll keep it updated for life.

You’ll be able to deploy websites in just a few minutes. And in 6 months when you need to do it again, you’ll still be able to do it in minutes.

All of these services are Free Tier eligible (except domain name registration costs). For example, you will very likely never go over Lambda’s free tier. And if you do, you can definitely afford the 20 cents per million requests!