I don't have experience running a Mastodon server, but I notice they are under heavy load at the moment and have much delays. I have experience running a Pleroma and a Friendica server for myself. Based on that, I think if you are going to run a small server for a group of friends or family, please use Pleroma instead. For more users, especially those you don't know personally, you may need the extra moderation tools Mastodon has, but else Pleroma is much lighter. You can also consider Friendica, especially if it's only a personal server.
For costs it should be under €10 per month, maybe €3, depending how you set it up. I have in the past run Pleroma on a €3,50/month node while connected to a busy relay.
#FediAdmin
Gidi Kroon
in reply to Gidi Kroon • •I found that scaling up by adding a node is better than making one node bigger, for two reasons:
On AWS the cheapest node is t3a.nano, which is 2vCpu, 500MB. For double the cost, you can get t3a.micro, which is 2vCpu, 1GB (so the same cpu's) or for that same price you can get two t3a.nano's which does amount to double the cpu (or hyperthreads actually).
You can separate the database from the application by putting them on different nodes. Then you can run multiple applications on the same node (e.g. my PeerTube and Pleroma are on the same node). The idea is this: the chance that both applications are active (receiving a message e.g.) at exactly the same time is rather low. The chance that an application and its own database are active at the same time is closer to 100%. So having different cpu threads reserved for those really helps, to avoid your application and your database fighting each other.
Some caveats: on t3a.nano your average cpu usage should remain under 5% to avoid extra costs. For t3a.micro that's 10%. A Pleroma server runs along at 3% normally, Peer
... show moreI found that scaling up by adding a node is better than making one node bigger, for two reasons:
On AWS the cheapest node is t3a.nano, which is 2vCpu, 500MB. For double the cost, you can get t3a.micro, which is 2vCpu, 1GB (so the same cpu's) or for that same price you can get two t3a.nano's which does amount to double the cpu (or hyperthreads actually).
You can separate the database from the application by putting them on different nodes. Then you can run multiple applications on the same node (e.g. my PeerTube and Pleroma are on the same node). The idea is this: the chance that both applications are active (receiving a message e.g.) at exactly the same time is rather low. The chance that an application and its own database are active at the same time is closer to 100%. So having different cpu threads reserved for those really helps, to avoid your application and your database fighting each other.
Some caveats: on t3a.nano your average cpu usage should remain under 5% to avoid extra costs. For t3a.micro that's 10%. A Pleroma server runs along at 3% normally, PeerTube much less. So this sort of works out. But the database nodes with all the extra traffic nowadays were using just above 5%, so I did put these on t3a.micro nodes for now. For Friendica and other PHP applications the calculation is totally different, as it's actually only Apache that runs as an application, no matter how many sites are behind that (for me, two Friendica's, Zap, Osada and Wordpress, for now); but also then, having the mariadb on a separate node helps.