Should I separate the web and database servers on Linode?
I'm working on an application using Django (Python), Apache, and MySQL. Right now everything is on one server, but we're about to go live so I'm looking at infrastructure.
Question: am I better off doing separating the web and database functions into two separate 1024MB servers, or should I use one 2048MB server for the app?
I'd usually vote for separating them, but I'm concerned about doubling my failure points since a failure in either the app or the db causes a system failure. Then again, my previous experience with Linode is that things don't go down.
6 Replies
Also it depends upon what you are bound by. Are you bound by CPU? If so then multiple instances would help since by default Linode gives you access to 4 CPUs. Getting one instance would only give you access to 4 CPUs while two instances would give you access to 4 on each.
Though do make sure the instances are on multiple hosts. For reliability (not all eggs in one basket) and for CPU performance.
Good news is that Django supports multiple database servers (hooray!), so you can add read-only slaves relatively easily, too.
I'd go that way.
@Guspaz:
Linode services don't tend to go down, no, but it has been known to happen. Even the best companies have the occasional downtime when they take an arrow to the knee.
I used to be an adventurer like you…