LinuxGSM on AWS free tier is what I am using for my server for the last 10 months. For 12 months, you only need to pay a bit for the kz maps storage, its performance is kind of probably insane for the cost. You have full control over what you can do on the instance, so I run a bot on it as well (because why not)
However my instance can become irresponsive at times and I need to reset the whole instance, changing the server IP in the process, which could be a pain to deal with. You also need to do quite a bit of things before you can connect to the instance for file transferring and stuff.
After the 12 months period end, you can switch to other cloud services, such as GCP, giving you $300 credit to use for 3 months, which is more than enough to simultaneously host 3 servers, and you don't need to pay extra for it, unlike AWS. Then you have Azure as well after that, but I haven't tried that out yet. Then you can always borrow your parents' cards :^)