Not much to share, but after a bit of wrangling with Amazon's Serverless Applicaiton Model settings, I finally have been able to push a version 0 of 123gtd to https://123gtd.com with an API at https://api.123gtd.com/v1. It's not to look at yet, but I've got all of the services hooked up:
- Front end is a single-page Preact app hosted from a S3 bucket served by a CloudFront instance.
- Back end is a DynamoDB that is served by Amazon Lambda
One of the goals of this project is to create a web app that has very low server costs:
- Domain registration: $12/year = $1.00 / month
- Lambda costs: $0.20 per 1M requests (I anticipate maybe 10,000 requests per month, so we're looking at 0.2 pennies per month) and $.000166 for every GB second (each call runs around 1.2 seconds and consumes 128 MB, so for 10,000 requests that works out to 2.5 pennies per month)
- Amazon S3 costs $0.00044 for 1,000 requests. So if I get 10,000 site visits per month, and none of them are cached, that's 0.4 pennies per month.
- CloudFront charges $0.085 per GB of data transferred. Right now, all of the assets in my S3 buckets are a total of 800 kB, so 10,000 requests without caching would be 8 GB, which works out to 68 cents per month. With caching, this would probably go down by 10x.
- The DNS resolution on Amazon Route53 costs 50 cents per month.
- DynamoDB is $1.7428 per million write requests, $0.348 per million read requests, and free for up to 25 GB of storage. If I do 10,000 read requests, and 1,000 writes in a month, that's 0.349 cents for the reads and 0.174 cents for the writes.
So all together, the domain name and DNS is $1.50/month, and without caching, serving about 10,000 full-page requests works out to $0.70/month. So 123gtd.com should cost me about $25/year to run.
I hope to have another update before the new year. It may not be good enough for other users to use, but I hope that I can have a tool that I can use by then.