Hosting costs for a small up!

Hey friends!

I am in the process of drafting a funding proposal to submit to my university and I have no idea what costs I should include for my Rails app. My application will open to my university’s students. We are about 1600 students, so the app will handle few requests. The stack is a pretty standard one: Rails and Postgres, with probably some in-memory processing later on. I do however want to expand the application to few other schools so I expect the potential user base to grow. Still, I probably won’t have over 1000+ or so users at best in the first year, which is what funding is for.

How much do you think the costs will be? I tried Heroku but to be honest I am still confused by their choice of terminology and I also read that their costs go up fairly quickly. How about a virtual server somewhere? How viable is that solution for someone never managed a virtual server?

Best,

Hi,

I was going to suggest heroku (the free service) so you can test how it handles all the students, but seems you want more than that.

Maybe linode? Where I work, we been using it for almost a year. We’ve started with linode 512 and now we are using 1024.

Despite 2 interrumptions we had during this time, everything work great.

Another option could be Webfaction.

http://www.linode.com/

http://www.webfaction.com/services/hosting

Javier

I will look into Linode. Thanks Javier.

Take a look at Amazon EC2 esp. since they make considerations for
those involved in education,

http://aws.amazon.com/education/

Even if you're not in education they have a free micro instance you
can play with and might even be enough for you to at least get going,

http://aws.amazon.com/free/

If your start-up idea might even win some money :slight_smile:

http://aws.amazon.com/startupchallenge/

Paul (who hosts also at Joyent, Rackspace and Bytemark (UK))

Thank you so much Paul. These are awesome resources.

Costs can go up pretty quick on Heroku, but your application doesn’t sound like it would need a whole lot of resources. If nothing else, starting out on the free plans on Heroku will provide you with a better understanding of how much server you’ll actually need.

Another potential downside to a plain virtual server (on places like Linode or EC2) is that you’ll need to be able to configure the whole web stack - all you’ll get from the company is a server instance that’s running the Linux flavor of your choice that you can SSH into, everything else is up to you. An environment like Heroku gives you a pre-setup stack that you just push code to. That may or may not be better for you - if you’ve got lots of sysadmin experience and like to set up everything manually, Heroku will drive you crazy. On the other hand, if you’re relatively unfamiliar with setting up a web stack (Apache / Passenger, for instance) and all the other services (outgoing mail, firewall, etc) then a plain virtual server could be a lot of extra effort.

–Matt Jones

Put your basic arithmetic skills where your words are and prove
that... instead of being so broad that it's pretty much FUD. Here let
me start you out in a ghetto system like Heroku:

1xBalancer ($20 a month + Bandwidth) = Router, 1xMicro Server ($15 a
month) = Application Server, 1xMicro Server ($15 a month) = Database
Server. Total cost at Heroku for the same = $0, of your own $45 +
Bandwidth

Lets jump up to 2 Dynos:

1xBalancer ($20 a month + Bandwidth) = Router, 1xMicro Server ($15 a
month) = Application Server, 1xMicro Server ($15 a month) =
Application Server, 1xMicro Server ($15 a month) = Database Server.
Total cost at Heroku for the same = $35, of your own $65 + Bandwidth.

Lets jump up to 3 Dynos:

1xBalancer ($20 a month + Bandwidth) = Router, 1xMicro Server ($15 a
month) = Application Server, 1xMicro Server ($15 a month) =
Application Server, 1xMicro Server ($15 a month) = Application
Server., 1xMicro Server ($15 a month) = Database Server, Total cost at
Heroku for the same = $70, of your own $80.

At 4 dynos you have a choice to make, because realistically you will
start hitting limits, that could happen as soon as 3 dynos maybe
sooner depending on the site. So at 4 dynos lets design it a bit
different (and round up and use the industry average of 750 to
calculate cost.)

1xBalancer ($20 a month + Bandwidth) = Router, 1xSmall Server ($50 a
month) = Application Server, 1xSmall Server ($50 a month) =
Application Server, 1xSmall Server ($50 a month) = Database Server,
Total cost at Heroku for "similar" = $157 ($50 for the Crane), of your
own $170 (with micro, it's $130 only a $27 savings.)

Now, there comes a point where you make a choice, do you need more
data or do you need more concurrency. What I mean by that is, do you
rely on your db more than you rely on your application? For some sites
(like Twitter) this is the clear case, so you have a choice to make
there, do you use Heroku for it all? Or do you save a crap tonne of
money and use your own AWS for the database and Heroku for the routing
and application hosting? The only way to weigh that cost is to factor
in sysops. People often forget that sysops is a major part of
platform design, without them your design will more than likely fail
eventually or turn into your fulltime job killing your dev.

There is also the need to factor in db design, Heroku knows how to do
db's, they pay some very smart people who have worked on Postgres
themselves to help them design it. Do you really think they can't do
it better than you? Are you willing to scrap the duplication they
offer as well as off-site backups (more than likely) to save some
money?

People don't leave Heroku because of price, it's not expensive, people
leave Heroku because of infrastructure needs, at some point you end up
deciding it's more beneficial to have your own sysops managing your
own infrastructure on AWS than to rely on Heroku, that reason is
entirely your own and most of the time it's completely valid
(sometimes it's just ignorant assumption that it's cheaper to run your
own servers. In the op's case it could be cheaper depending on how he
plays the AWS card get clever.)

* Note all prices are based on you just ordering a server, not you
reserving it like Heroku does at that point the math costs and it
really depends on whether you'll use the entire year or not (because
really, the discount is only worth it if you buy a year of
reservation.) They also don't factor in any sysops costs.. There are
always sysops costs, and even if it's your own time you assume is
free, time is money, money is wasted if you spend more time doing
sysops than devops (if you are the developer), hell, money is wasted
if you have to do sysops period, because that's less time doing
meaningful refactors to add in features.