I`d like to know your opinions on the following question: How to choose the best option to host the database and files (on the web) of an app / webapp?
Right now I have a simple shared server (low budget) with a mysql database (using php scripts on the server), but I see that I will fall short if the users of my app / webapp increases too much ... I have 3 apps already on the same server, with access in the same database...
The question is whether I should upgrade my database and files server to a VPS with configurable resources but from a local company or use a global services such as AWS or AZURE? (I have no experience with these cloud services yet), Taking into account the prices and possibility of expansion, also considering the processing of the app as a login, information from the database (non-mass reading and writing, ) reports and upload / download of files through the app and webapp) with the possibility of more than 300 simultaneous users.
I would recommend Microsoft Azure but the cost is very high because they charge upon CPU usage.
If you are a startup or you have a very low budget then i would recommend google free-tier
google free-tier is the same as Microsoft Azure but they give you free credit for 1 year, meaning your server will be free for whole year.
so use google free-tier for a whole year, get to know VPS better then if you find your self ready to upgrade then move to Microsoft Azure.
Upon experience with azure, below are the pros and cons :
Azure Pros :
1- Very fast internet connection (1 GB/s) *Important
2- Firewall and VPN built in services *They charge extra if you use them
3- Server location, it's pretty good because that means lower ping
4- Very very secured, they provide a free option to install a firewall to prevent unwanted connections
5- Very fast VPS, even if you select the minimum CPU cores and RAM it would still be fast because they use a very light windows version + they use CPU Xeon R which is pretty fast.
Azure Cons :
1- Too Expensive, We pay around 3000-5000$ a month for 3 servers
2- Charging upon CPU usage is very bad because if you use asp.net the users will connect to your website and the IIS will start opening services called IIS-Workers and they will eat the CPU, and that means extra cost
3- Pay on the go, this is by far the worst feature, it means upon usage you will pay.
Azure doesn't have a fixed price, so you will never be able to know your monthly expenses until they send you the email that you have to pay this amount
4- Customer support will take between 5-7 business days, so if you have a problem or a question then you will have to wait and wait and wait.