CloudFormation is pretty cool. In a rather short amount of time I was able to create a reproducible deployment (based on any commit in my Git repo) that deploys a Lambda, makes it accesible via API Gatway, creates a DynamoDB table for storage, sets up Cognito user pool for user management, creates CloudFront distribution that securely serves my SPA and the API Gateway and lastly adds a record to my domain such that is accesible at `${commit}.mydomain.com`.