5 ms·
For what many orgs need to do, a myriad of lesser-known VPS providers would be just fine, and be a fraction of the cost. But most people I've known don't inves
by mgkimsal 13y ago
For what many orgs need to do, a myriad of lesser-known VPS providers would be just fine, and be a fraction of the cost. But most people I've known don't investigate or educate themselves much - it's been a herd mentality towards AWS, irrespective of needs or costs (because often, it's not them paying - it's "the company").
Perhaps as a freelance consultant right now I take a sharper look at the costs involved - if a client has, say, $50k to budget on a project, I really don't want $10k of that to go to hosting if it doesn't need to - I'd rather it be available for my services directly (obviously) or to give us more play for marketing, testing, whatever.
I've known a couple of small to medium sized companies where they were using AWS rather strategically as part of their services - dynamically spinning up test environments for running parallel testing, off-peak data crunching, etc - but even in those cases, there weren't gigantic savings vs other options.
What bugs me most is the false dichotomy I get when I talk about this with friends; their choice is presented as either use AWS or "hire a full-time sysadmin, buy multiple server-grade boxes and manage all this in a rented data center". I've been told Amazon is saving people "easily" $100k/year by not having to hire staff and buy expensive hardware. Hrmm... not all hardware is expensive, and instead of hiring a sysadmin, you've now got multiple developers spending time learning the AWS API, and building critical business processes around AWS, tying you to Amazon for the long haul, all while they could be focusing more on line-of-business stuff that you hired them for in the first place.
I don't doubt that in some cases there's robust cost savings, but it's never struck me as a terribly cost-efficient way of doing any web stuff. In some cases it may be the only way to deal with certain problems, but in those cases cost probably isn't a consideration anyway.
- d23 13y ago> if a client has, say, $50k to budget on a project, I really don't want $10k of that to go to hosting if it doesn't need to On a $50k project, how are you even dropping $10k on AWS? I've found a medium instance (~$100/mo) handles with ease 100k+ visitors/mo without breaking a sweat.
- mgkimsal 13y ago$50k/$10k is possibly a bit extreme - say $80k/$8k perhaps. Typically when my clients do a project, they're budgeting out for the year, so that's $8k/year, not per month. AWS would be cheaper with reserved instances, but then (IIRC) you're prepaying in advance for something you may not need. Even if it's cheaper, it's sort of defeating the purpose of "i can scale on demand". (which, yes you can still do, but you're back to 'on demand' pricing). As someone else pointed out, some of where AWS gets you is the storage and traffic. I've got a setup right now where I need to have at peak 2-3 servers to handle traffic, as there's a moderate amount of computation going on - it's not all the time, nor every day, but when I need it, I need it. And it's processing documents (photos, etc) and we need to store them. Then show them back to the user. With on demand pricing, and the amount of traffic, this can be ~$600+ per month (*12 = ~$7000/year). Could I optimize the code more to use less CPU, and perhaps require 1 less server? Possibly. Could I optimize some other stuff? Possibly, but that will cost more time, in order to save money with AWS. Reserved instances would probably be the best, but if we ended up needing more later, it's harder to go back 6 months later and say "hey, we need more $ for X", as the budget was already done and processed for project Y. I've got some projects like this at digitalocean, and one on month-to-month dedicated hardware, and the pricing is about 50%, mostly because of the built-in storage that AWS line items separately. Can AWS do more functionally? Sure. Do we need it? Usually not, and paying for that infrastructure when it doesn't match the core needs isn't usually an option. Elastic IPs would be nice, but we could get much of that utility at linode if need be, and still pay less.
- ballard 13y agoReserves instances long-term don't make much p&l sense, it makes more sense to rent dedicated hw where most of the other costs are cheaper.
- mgkimsal 13y agoAgreed, which is why I don't do it or recommend it. I had a client look in to it once, and it was a toss up between renting dedicated servers vs reserved instances, and they went dedicated.
- 13y ago
- joevandyk 13y agodepends on the work load, data size, computation needs, etc. measuring by "visitors per month" makes no sense.
- dalke 13y agoI think it's reasonable to assume that d23 knows that. The question is "how", and the second sentence provides context for d23's knowledge and expectations, which mgkimsal might use in a followup answer. I too find it difficult to think of a $40K project which is both likely to spend $10K at Amazon, and which can acquire equivalent resources (hardware, power, space, admin, etc.) for significantly under the same cost. Not impossible, but real-world examples would be nice.
- waps 13y agoThen there's the AWS massive disadvantage in data traffic cost. Small VPS providers (or large ones for that matter) typically include 4-5 Tb of data, and their compute is no more expensive (or cheaper) than amazon. And half the customers want large pngs (because jpg at 2% "reduces quality"). I'd say only to people with 45" monitors at 5cm to their screen or less. It also produces 50% data savings. That's the biggest mistake one can make : host a traffic intensive app (even lots of graphics) on AWS.
- ballard 13y agoHurricane Electric transit FTW.
- reitzensteinm 13y agoIf anyone is in that situation and remotely budget conscious, you can do this trivially: 1) Order a server with lots of bandwidth from a provider such as Hetzner, 100tb or Leaseweb (or possibly OVH, though I haven't used them personally). Low performance hardware is fine, though you'll either want enough ram to fit your frequently used images, or an SSD. 2) Install nginx as a reverse caching proxy. There's an example configuration in the nginx docs. Requests to /blah/something.png on your nginx server are sourced from www.yoursite.com/blah/something.png, but cached for the period you specify. 3) In your DNS, set static1.yoursite.com, static2 etc to point to the newly created server. This is for browser parallel downloads. 4) In your html, point your static assets randomly amongst the newly created domains (best if this is done automatically). In this way, your newly created box soaks up the load of the static assets traffic, but it has no additional cognitive overhead. You don't change your development model at all. If you have a switch in your code to source the images from the original domain, you can go back to hitting AWS instantly should the box have problems, so the risk is very low. You can get a 10 gigabit unmetered server from the Leaseweb volume network for 600 euros/mo. The bandwidth is lower quality than AWS, but if you have high utilization you can pump more than a petabyte from the server a month, which would cost approximately $60k from EC2.
- rkrzr 13y agoOr simply use a CDN like e.g. CloudFlare.
- theknown99 13y agoBad language/platform/library choices. People go for what's hip rather than what's efficient.
- bildung 13y ago> I've found a medium instance (~$100/mo) handles with ease 100k+ visitors/mo without breaking a sweat. This is not really intended as a direct reply to you, but I think that price point illustrates mgkimsals point well: I have a Django-based project with about the same amount of visitors per month on an old rented vserver that costs about 7€($10)/month. Yes, you have to set up nginx once, but as mgkimsal mentioned setting up your project for using AWS is not done without any work either. (And of course the load heavily depends on the type of project, so perhaps my visitors could mean only a fraction of the computational load of the ones in your example.)
- stevekemp 13y ago> Yes, you have to set up nginx once ... This is the kind of thing that I've just started documenting at http://tweaked.io/ http://tweaked.io/
- bildung 13y agoGreat Idea! May I suggest a tutorial for setting up uwsgi in a robust way, e.g. including a proper startup script in /etc/init.d/ or something similar?
- diziet 13y agoWell -- when you are spending 6+ million a year on AWS, a smaller VPS provider might not work out because of scale.
- Negitivefrags 13y agoWhat bugs me most is the false dichotomy I get when I talk about this with friends; their choice is presented as either use AWS or "hire a full-time sysadmin, buy multiple server-grade boxes and manage all this in a rented data center". I've been told Amazon is saving people "easily" $100k/year by not having to hire staff and buy expensive hardware. This absolutely hits the nail on the head. The dumb part is that the next option down, renting dedicated hardware, seems to be effectively identical with regard to server administration overhead. The only difference is that the time to provision is longer (4 hours with our host), and billing monthly instead of hourly. In either case, you need to know how you are setting up new machines, monitoring them and deploying your application to them. The part that really kills me is this though. Using AWS is supposed to be good for start-ups because it allows you to get started quickly and think about building your product rather than focusing on technology that someone else could handle. The problem is, how you are going to scale your technology on AWS is a problem you need to think about very early. Even the lowest end dedicated hardware is so fast that you can have millions of daily active users before you even need to move beyond a single box. It's amazing how many things you don't need to think about when you only have a single box.
- shrooms 13y ago>The problem is, how you are going to scale your technology on AWS is a problem you need to think about very early. Yep, and in my experience getting developers to wrap their head around decoupling systems and make sure the system is always decoupled is difficult.
- jmathai 13y agoI've done both. In my previous startup (circa 2005) we started at The Planet (are they still around?) and within 18 months we were colocating physical servers at a nearby Level 3. I'm sure it's gotten better but when we colocated I had to project what type of traffic and storage (photos) we'd need. That led us to lease a few servers from HP. We were able to reuse hardware we owned already for reporting type tasks. But I got 1TB storage servers when we were using about 1/5 of that. In my current startup (photos, again) we were on AWS from the beginning. I think we could save money now if we wanted. But when we first started out all we needed were 2 micro instances and S3. I'd say we've increased capacity by 8x since then. But here's the kicker. Since we started on AWS we were able to keep our costs fairly low at the beginning and as we grew we never had to make any long term projections. We simply added capacity (literally) on a weekly basis. Once you start to buy into the AWS ecosystem you begin to reap some serious benefits. You simply cannot think of AWS as just EC2 instances. Of course, the trade-off by going all in is some level of lock-in (though this can easily be minimized). Having done both I am happy to pay AWS more for the ecosystem. -- We're using EC2, ELB, SNS, ElasticTranscoder, RDS, S3, Route53, CloudSearch, CloudFront & Glacier.
- Veratyr 13y agoOne that not many people seem to know about but which interests me significantly is http://www.instacompute.com/ http://www.instacompute.com/. It's run by Tata, which is pretty massive plus according to http://cloudharmony.com/ http://cloudharmony.com/ it's got pretty good performance, especially considering the price. I guess problem for most of you (it seems pretty US centered around here) may be that they don't have a presence in the United States (they're good in Europe, Asia and India though). Anyone have any experiences with them?
- nodata 13y agoThe clue is in your answer: you didn't name a single alternative.
- ilaksh 13y agoI think that at this point EC2 should almost be described as a scam, except for cases where people are going to rely on several of the AWS services like DynamoDB that has little to no competition, and are also relying on having very low latency connections to those other AWS services from their EC2 services. I think scam applies just because the cost differential is so much and only exists because people don't know about other services. But it is weird that people don't know about Linode or Digital Ocean (which is incredibly cheap compared to AWS and actually works, which the micro EC2 instances often stop working if you put a load on them). Even Rackspace would be much better option. So even if you are just thinking of very popular companies, there are well known reliable options out there that are vastly better values for most things than EC2. Then there are probably dozens or even hundreds of small companies that would probably provided even better value and service.