I think a big part comes down to what type of traffic do you anticipate? I know it's fun to think you'll have 10 million visitors from day one, but even the "hottest" SV startups rarely get that type of growth in their first year.
A realistic scenario (based on my experiences with several SV startups and Jamroom for 11+ years) is that you'll get a few dozens to a few hundreds of visitors per day for the first few months to a year. Get some exposure on something like hacker news, Reddit, etc. and you'll have a "spike" to maybe 5,000 for a day (it tails off really fast).
So if I was starting a site, based on what I know of your project, here is what type of system I would setup for launch (all on Linode):
- (1) 2 Gig VPS app server (Ubuntu 14.04, Apache 2.4, PHP 5.5) running Jamroom + Cloud modules
- (1) 2 Gig MySQL Server - runs MySQL only (no Jamroom)
- (1) 2 Gig Conversion Server - runs Jamroom with Cloud modules + Cloud skin
Enable backups on the MySQL server - the other ones can be rebuilt from an image if needed. All connected via private networking.
Your scaling plan:
- Upgrade your app and conversion servers to accommodate more traffic (i.e. 4Gig, 8Gig, etc.).
- Keep an eye on MySQL load on your MySQL server and upgrade to larger VPS as needed.
- Add 1 or more MySQL cache and Session servers (part of the cloud modules) to offload cache and sessions from your main MySQL instance (which is a big hitter as your system gets busier)
- Add a Log Server for centralized logging (part of the cloud modules).
I know this plan does not scale the app server horizontally (which can be done, but then we need to use extremeFS - doable but I'm trying to keep it simple).
You can started for $60 per month and easily handle tens of thousands of visitors a day. You'd have 9 terabytes of transfer included before you paid anything extra for bandwidth.
It's also a MUCH simpler system to administer and manage over AWS, and can be launched right now to prove your MVP.
So anyways, that's what I would do if I were doing it
Hope this helps!
p.s. when we take the Jamroom Cloud profile public we'll have more detailed info on recommended cluster setups, including scaling using extreme FS.
--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
updated by @brian: 12/02/14 11:07:06AM