6 ms·
> 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 eve
by 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.
- rschmitty 13y ago> 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). That's why you mix. We know our base needs, these are reserved instances 100% utilization. When something comes up that drives a lot of traffic the on demand instances kick in automatically. If you have somewhat "regular" spikey traffic you can buy reserved instances with less utilization and still save vs raw on-demand pricing. I'll be the first to say we could do this all cheaper with some other VPS and a bunch more labor, but we are using a _ton_ of AWS services. My personal/moonlighting customers I use DO where a single nginx/sql droplet can handle everything with ease for small load sites
- 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?