If you already own a domain you can use a subdomain and cut even that cost although it might make up for a long URL.
I think the main cost here is time. Probably far more expensive than all of those costs. Even on AWS.
If you already own a domain you can use a subdomain and cut even that cost although it might make up for a long URL.
I think the main cost here is time. Probably far more expensive than all of those costs. Even on AWS.
- Cloudflare for caching, DNS, domains. - Hetzner, Linode or DO for a cheap instance
See what does/doesn't work. Storagebox on Hetzner is cheaper storage hosting and you can have redundant backups for cheap on backblaze as well or offshore cheap VPS doing encrypted backups with rclone/rsync.
I don’t get why people assume others are just mindless fruit flies in these threads. Maybe OP just doesn’t want to fiddle with technology and pays Amazon to simply get it done. That’s what I’d do, there’s no need to turn every project into excercise in orchestrating open-source software.
In fact I have to do a bit of AWS for work and I hate it with a passion. It's spread over a ton of services each with their own console (that look & feel like they were designed by completely different people), lots of overlap between services, complex billing. Configuration often needs to be done with complex json files. Ugh. Perhaps it makes sense for a major enterprise where you have orchestration for everything. But I would never pick this total mess for a personal project.
Azure has a bad name but at least everything is integrated in the same console pretty nicely.
But really if you just need an instance of something for personal use, DigitalOcean, Scaleway etc are so much simpler. And cheaper, and most stuff is just included in the monthly price so you don't get billing surprises.
First of all, a 5USD/mo instance cannot run mastodon. Mastodon needs a lot of resources from the get go, even with one user.
Second, you’ll want to enable backups, which is 20 percent of instance cost as extra.
Third, you will want more disk space than is available on a base instance. Mastodon is huge and disk space is taken up pretty quickly. With AWS you can set up autoscaling drives, DO doesn’t. So, more costs…
Finally, if you want to use DO Spaces, that is a flat 5USD/mo. AWS S3 is far cheaper for what would be used in this instance, on the order of free tier or couple of cents. The OP did the set up incorrectly which is why their costs are far higher. I actually did set up AWS S3 on my DO instance and the costs are extremely low.
So why am I using DO? I have credits on it, that’s all. I’ll move to AWS and probably set up Takahe at some point: https://docs.jointakahe.org/
In Linode you can get additional block storage for a relatively low cost: https://www.linode.com/pricing/#block-storage So a 5 or 10USD instance should be enough.
I will say that S3 is very expensive not because of the upfront cost. It's because of traffic. Also cloudflare is more affordable than AWS.
I also use DO and first of all Mastodon itself, the web services, streaming API, can run on minimal nodes. I have almost 1000 MAU's now and only need about 600M RAM for each web service container instance.
And backups, for that I use postgres-operator (yes it's kubernetes), which does S3 backups and those cost almost nothing. (I know cost can go up if I need to restore because of egress traffic)
Media is also in S3, with a Cloudfront proxy. As soon as I enabled the CF proxy my S3 costs went down to 0.1 dollars basically.
And finally, thank the gods for kubernetes because it allows me to dynamically scale up sidekiq when the queues are backed up.
So my base cost for 1000 MAU's on DO is about 150USD/month. But it goes up if Sidekiq scales up temporarily, so it's a fluent final cost based on how many times Sidekiq had to scale up in a month.
Most importantly for me is that nothing in this setup is vendor locked. S3 compatible services are plenty, cloudfront web proxy services, plenty of those out there, AWS SES for outgoing e-mails can also be replaced. And of course kubernetes with proper IaC can be deployed into any managed k8s solution.
AWS - "Free to get data in, expensive to get out"
What’s sneaky? OP states at the beginning of the post they’re a solutions architect at AWS… and provides reasons you may not want to use AWS if you want your own single user mastodon instance.
That said I assume the author is not trying for cheapest-possible.
DigitalOcean no longer has a USD 5 instance, it's USD 6 now.
Also, there’s a new $4 entry-tier droplet that has the same CPU, the same amount of ram and the same amount of storage as my $5 droplet used to: https://www.digitalocean.com/pricing/droplets
The included bandwidth is only half as much (500GiB), but I suspect most people who would have gotten $5 droplets in the past will now be getting $4 ones.
The AWS instance in the post, t4g.small, has 2 GB of RAM. So it's not really comparable to the $4 DO droplet.
Also, FWIW, I’ve load tested different VPSes between AWS, Linode and DO and found that for reasons I don’t understand, AWS ones perform considerably worse than the other two platforms VPSes with identically listed stats.