Linode Server Requirements and Databases
Hi all,
I am a new web developer going through my first paid project but need some help on the server spec side of things. I dont know what kind of server is enough to quote for my client, and as linode is well recommended I wanted to use it.
The app I am building is a NodeJS Backend (using websockets) and a Angular frontend run on Apache (if possible), with a MySQL database.
I would like this all on the same machine for speed, but going through the lionde calculator it seems I need a separate DB to my dedicated cpu machine, which adds an extra $35 per month.
So I had questions:
Is it necessary to have the separate database or is it possible to just have it all on the one dedicated machine?
Would a 4GB dedicated CPU machine be enough for 300-500 daily users doing simple things (text input mostly, not huge database queries, with some small images displayed on the site)?
I hope this has the info needed to help, if not please let me know and I will add more info :)
2 Replies
Is it necessary to have the separate database or is it possible to just have it all on the one dedicated machine?
You can certainly have your site and the database all on the same machine. However, depending on the size of your database, you may run into memory issues,
Would a 4GB dedicated CPU machine be enough for 300-500 daily users doing simple things (text input mostly, not huge database queries, with some small images displayed on the site)?
You'll have to determine that for yourself. You can start with this configuration and then separate the database and the web app later if response time on the web app starts to suffer. Coding your web app as if the database was on a different machine (even though it won't be) will make the process of separating them less difficult.
Exploring the use of a lower-footprint database than MySQL might be worth the effort here as well (e.g., Firebird)…or Berkeley DB if only key-value access is a requirement. You might also look into Linode's managed database offering.
I would also take the time to code your app very defensively wrt the database. If the database is not there, completed transactions should be stored in some kind of alternate store that can be batch-submitted to the database once it comes back from maintenance or repair.
-- sw
Thanks!
I would imagine about 300 entries into the db per day and probably about 20k queries or so spread throughout the day. It would also be pruned every so often as the information only needs to be stored for a month then can be deleted. I wouldnt estimate the database itself to exceed 400 mb.
Thanks for the defensive database tip, I have never heard of that process. I will certainly take a look.
Bogo