Why Auto-Scaling In the Cloud Is a Bad Idea
George Reese writes "It seems a lot of people are mistaking the very valuable benefit that cloud computing enables — dynamically scaling your infrastructure — with the potentially dangerous ability to scale your infrastructure automatically in real-time based on actual demand. An O'Reilly blog entry discusses why auto-scaling is not as cool a feature as you might think."
I think auto-scaling the clouds based on actual demand is a really great idea. I think farmers would really like that feature, in fact.
Wait, what clouds?!
Without a hard-limit, some people run up big cell-phone bills. If you are forced to stop and plan and budget when you exceed resources, then you have better control over them. Cloud companies will likely not make metering very easy or cheap because they *want* you to get carried away.
Table-ized A.I.
THe author states that one reason he doesn't like autoscaling is because it can take a while to take effect. Thats bad technology, waiting for someone to come along and improve it.
He also says he doesnt like autoscaling even with limiters. Autoscaling with limiters makes sense to me, especially if the limits are things along the line of 'dont spend more than XXX over time Y'.
Finally, not using autoscaling because you might get DDoS'd is just stupid. You lose business/visitors. Thats worse than paying more to avoid being taken down, because your reputation gets hurt AS WELL AS losing you business.
The blogosphere has disagreed with the use of web2.0 in the cloud. Sure, we all know that data is king and that's why we use software as a service nowadays with the web as a platform using AJAX and RSS extensively. This has helped to solve the challenge of findability since lightweight companies helps to connect user needs. The fact is that the long tail is part of the paradigm of user as co-developers in server wiki-like sites. Unfortunately this brings up the problem of ownership of user generated content. But I think that perpetual betas help the architecture of participation to stimulate web2.0. Interaction does make the experience good.
Knowledge is power. Knowledge shared is power lost.
"then determinate what the best way to respond is going forward." Sometimes some things are bettered not left not unsaid.
Someone get this guy a cane to shake at the whipper-snappers. "In my day, you learned proper capacity planning or you didn't enter the data center!"
It can take up to 10 minutes for your EC2 instances to launch. That's 10 minutes between when your cloud infrastructure management tool detects the need for extra capacity and the time when that capacity is actually available. That's 10 minutes of impaired performance for your customers (or perhaps even 10 minutes of downtime).
Like, you could do it so much faster than 10 minutes without auto-scaling. Bah! If you've read The Art of Capacity Planning you would've mailed in the coupon for the free crystal ball and seen this coming!
Properly used, automation is a good thing. Blindly relying on it will get you burned, but to totally dismiss it out of hand is foolish.
Learning HOW to think is more important than learning WHAT to think.
So I hand over my business logic and data to a third party, who may or may not meet a promised SLA, and whose security I cannot verify? Does this mean I can be rooted and lose my customer data faster, and at a rate proportional to the hack attempts? Cool!
I want to delete my account but Slashdot doesn't allow it.
Its apparent that the blog author doesn't like auto scaling but I hope he planned for the slashdot effect that is gonna happen to his site now.
While a content site might run the risk of getting slashdotted or Dugg, that isn't necessarily a big risk for applications. And your platform choice makes a big difference. We do our business applications on a LAMP stack. If we need capacity, we can stand it up for the cost of hardware. Nice thing about LAMP is at least the AMP part is OS portable, so we can rent capacity where ever it's cheap. So far we haven't needed to do that but it's nice to have the ability.
To date we haven't run into any problems. If we're expecting a surge of new customers, we have a pretty good idea of expected traffic per customer. We can stand up the capacity well in advance. Hardware is cheap and can be repurposed if end up not needing all the extra capacity.
Our platform choice gives us a tremendous amount of flexibility. You don't get that with Windows. Any increase in capacity has a significant price tag in license fees associated with it. Once you build the capacity there are fairly significant ongoing expenses to maintain it. You can take it offline if you need to scale down but you don't get your money back on the licenses. There's a whole new set of problems outsourcing your hosting.
I like our setup. The flexibility, the scalability, the peace of mind of not struggling with capacity issues, negotiating license agreements with MS or one of their solution providers and not being limited to their development environment. We can build out a lot of excess capacity and just leave it sit in the rack. If we need more just push a button and light it up. I'm not sure an Amazon or anyone else could do it cheap enough to justify moving it. And I really like having the extra cash. Cash is good. Peace of mind and extra money...what's not to like? Keep your cloud.
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
When in doubt, use a ladder. Elevators cannot be trusted.
I record my sleeptalking
He seems to be assuming that you only want to run a website on this service. I don't think hosting websites on this kind of service is a good idea at all. There are many other types of application you run on clould computing infrastructure, which makes much more sense, and negates almost all of his claims.
Consider for example a rendering farm. One day you may have two items to render. Another day 10 items. The next day 5 items. Should you really scale up and down manually each day, when you could just as easily just start the amount of servers you need based on how many jobs have been submitted for that day, and how large the jobs are?
There are many other examples. Websites are not the only thing you run on these services.
Posted by a Debian GNU/Linux user
This guy makes a good case against "dumb" auto-scaling; that is, doing a simple "more traffic = scale up" calculation. However, it should be trivial to create more sophisticated algorithms that eliminate or at least reduce the problems he gives. For example, a module that can "recognize" DoS attacks versus slashdotting in most cases and either block or scale based on the results shouldn't be hard.
ceci n'est pas une
Yeap, that's right. With over 7yrs of solid hosting industry experience, it's very easy to see.
Atleast Amazon's service is WAY overpriced for long term use. Sure if you need it just for few hours ever it's all good, but for 24/7 hosting it ain't, none of them.
It's cheaper to get regular servers, even from a very high quality provide than to use amazon's services.
Best of all: You can still use their service to autoscale up if you prepare right, and yet have low baseline cost.
If it's only filehosting service you need, the BW prices amazon offers are outrageous, take a bunch of cheapend shared accounts, and you'll get way better ROI, and still, for the most part, do not sacrifice any reliability at all. Cost: Greater setup time, depending upon on several contingency factors.
Case examples: you can get from bluehost, dreamhost etc. plenty of HDD & Bandwidth for few $ a month. Don't even try to run any regular website on it, they'll cut you off (CPU & Ram usage), but for filehosting, it's great bang for buck :)
Scared of reliability? Automatically edit DNS zone according to locations availability and have low(ish) TTL. Every added location increases reliability.
Pulsed Media Seedboxes
I posted this as a comment on the blog post, but I'm copying it here as well:
http://blogs.smugmug.com/don/2008/06/03/skynet-lives-aka-ec2-smugmug/
Outside of one instance where it launched 250 XL nodes, it seems to be performing pretty well. Their software takes into account a large number of data points (30-50) when deciding to scale up or down. It also takes into account the average launch time of instances, so it can be ahead of the curve, while at the same time not launching more than it needs.
Those are horrible examples.
Cheaper environments can be shared resources, have poor SLAs and not provide service gurantees. Sure, you can run cheap and it won't cost you until it breaks.
DNS isn't exactly a real time solution when those entries are cached. I have encountered a large number of providers who flat out ignored cache time out settings.
Again, a business can run on the cheap, but the idea is the servers are generally generating revenue when they are in use. Some places don't like down time.
"You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
I did some rough cost comparisons for a high-traffic web site in my similarly cynical article a few weeks ago (disclaimer: I run a hosting company flogging unfashionable servers, and am not a cloud fan yet :) ).
Matthew @ Bytemark Hosting
Not having used the providers in question, I have to ask, why shouldn't I try to run a regular website on them? Isn't that exactly what they do - web hosting, of regular web sites? There's no reason why a regular web site should use excessive amounts of CPU or RAM.
I just skimmed the DreamHost TOS and saw that they explicitly ban "File upload / sharing / archive / backup / mirroring / distribution sites." Maybe not that great for file hosting after all...
Take a bunch of cheapend shared accounts, and you'll get way better ROI, and still, for the most part, do not sacrifice any reliability at all. Cost: Greater setup time, depending upon on several contingency factors.
Are you seriously proposing this as a way to run a business? That strikes me as seriously retarded. I know a lot of people who run a lot of sites, and depending on their bandwidth draw and other needs, they'll rent servers, they'll rent a cabinet and buy bandwidth, or they'll use one of the reasonably priced CDNs. But I've never heard of anybody doing this unless they're running something semi-legal and want to dodge MAFIAA threat letters.
Swapping your shit around between a bunch of cheap hosting accounts strikes me as a) very Fisher-Price, and b) totally pointless. Good sysadmins cost real money, and for all the time spent on jiggery-pokery, it seems like a much better deal to just get a discount CDN or a cheap colo'd pipe, and let the sysadmin spend their time on something useful.
His argument basically boils down to "Auto-scaling is a bad idea because you might implement it badly and then it will do the wrong thing". Isn't that true of everything? The flip side, is that if you implement it well, then auto-scaling would be a great idea!
It's like saying that dynamically sized logical partitions are a bad idea, because you should just anticipate your needs in advance and use statically sized partitions. Or dynamically changing CPU clock frequencies are a bad idea, because you should just anticipate your CPU needs and set your clock frequency in advance. Or dynamically changing process counts that adapt to different multi-core/CPU availability factors are a bad idea... you get the picture.
The idea that some computational factor can be automatically dynamically adjusted isn't necessarily a bad idea, it's just the implementation that might be.
Another risk, at least in theory, is a kind of very short term "Tragedy of the Commons".
In the long term (a function of the Amazon accounting timeframe - maybe minutes, hours, or days) it may not be a problem because rational customers whose systems work correctly will voluntarily limit their usage in a predictable manner.
However very fast DDOS, for example, of several autoscaling systems could cause a system-wide failure before the Amazon accounting system and customer strategies kicked in.
Because the cloud is by nature distributed, there is no central algorithm that can prevent this (other than providing more computer capacity than can be consumed by the maximum incoming traffic on the pipes). However it is possible to construct an 'immune response' type of corrective strategy, analogously to the way our bodies respond to a sudden stress.
It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
Clouds are a good thing, es[ecially at this time of year. Its a clear sky outside right now, and the temperature is down to 254 Kelvin.
Yes, Amazon's not the best for 24/7 hosting - the best idea is to have an infrastructure which can run partially on Amazon and partially on dedicated boxes. Your dedicated boxes handle your standard load so you only need to scale to Amazon occasionally.
That said, the completely virtual infrastructure lets you avoid dealing with datacentres, buying loads of servers, etc.
"The dynamic scaling to plan can also be automated" massive retardation here.
I can summarize this article in one sentence:
"X is only useful for those who are too lazy to do Y."
It's been said about assembly language, high-level languages, garbage collection, plug-n-play, and practically any other technology you can name. It is not actually a valid criticism.
If you mod me Overrated, you are admitting that you have no penis.
On the surface auto-scaling is obviously a great thing. But it doesn't take much thought to start punching holes in it.
Lets first look at the Data center that provides such a glorious capability.
1. It is their own best interest for you to scale up. Scale up processing, disk, bandwidth or what ever. For the simple reason it's more money. Since you signed the contract you will probably be scaled well and truly before you know it. Usually you only find out when the bill comes in.
2. The data center has very little incentive to make sure you are notified in a timely manor of autoscaling. As a matter of fact this feature is usually crippled or even broken. I don't care what the contract says. The datacenter rarely honors this part of the contract to anyones satisfaction.
Now lets look at the client and the horrible things that can go wrong. By no means even remotely a complete list.
The new version of the app list.
1. Bob the developer forgets to index that new DB table. Database goes nuts trying to do a simple select. BAM autoscaling of DB CPU resources goes through the roof.
2. New AJAX call is not properly tested. For some reason it now triggers div refreshes as the mouse moves. App server is now flooded. BAM Band Width and CPU autoscale through the roof.
3. App no longer properly caches that all important query. BAM again DB and APP CPU skyrockets.
4. The genius in dev decides to make the jsession stateful. Works fine on the desktop. Works fine when load test hammers only 10 users. Oh Oh real world kicks in, in Prod. We have 10k users. Everything goes through the roof.
5. The list of new version issues goes on.
The bad guys come a knocking.
OK so now your a hot property on the net and you sign up for autoscaling so that you don't have to worry about capacity planning. You are focused on that cash machine that is your cool app.
1. You didn't know about that monster hole in the app. The bad guys inject a phishing site onto your Uber site. The phishing site is wildly successful. Oh crap we just paid for the biggest fraud site on the net.
2. The dev team leaves that back door on the site so they can maintain it remotely. Oh Oh all of a sudden you notice port 25 traffic is off the charts from the site. OMG we just uploaded 25Tbtyes in the last 24hours. You have just joined the ranks of the largest SPAM generators on the planet. You have a monster bandwidth bill and a very expensive legal bill.
3. What are these very large globs in the database all of a sudden. OH crap we left a hole and are vulnerable to SQL injection. OH crap it's all encrypted kiddie porn. Bills for bandwidth, disk and legal come a knocking.
I do have experience with this sort of thing. And it always goes sour at some point. The techies are always overruled by the marketing and business types on this. As the deal is always so great on paper. At some point something will go wrong. Software is never perfect. Between defects and bad guys you are a sitting duck for the big man carrying the bill to your door. It's only ever a matter of time.
Oh and lastly. Geuss what some times the autoscaling fails. Make that a lot of the time. And you are then off the air.
The best situation is for you as a customer of scaling is to have a close relationship with the supplier. Once you start to reach certain predefined levels of usage they should contact you and give you the option of an upgrade. Make the scaling feature by human choice. Never let the supplier decide that for you.
well, they actually provide an online storage service with at least some of their web hosting packages. you just can't use it for public data storage.
so if you yourself want to backup a few hundred gigs of personal files that only you will have access to, you can (as long as it's not pirated material). though if you create a dreamhost account just so you can dump your company's 200 TB data warehouse onto their servers and exploit their "unlimited" storage offer, then you'll probably run into some trouble.
When your revenues scale with the services rendered, it *does* make business sense to auto-scale. Auto-scaling is a technical solution, not a business one. Being Slashdotted isn't typically associated with more commercial activity, it's associated with "hit-and-run" visitors. The same with social networks. Does Twitter even have a business model? But wherever there's a business model where margins are relatively stable but activity rises and falls, auto-scaling makes you money rather than costing you severely. Like many things, it's a tool which should be used wisely, where not paying attention can leave you missing fingers.
500GB of disk, 5TB of transfer, $5.95/mo
You lost me at x arguments were true, therefore x arguments are not true. Could you please start over again with more steps?
Help stamp out iliturcy.
I use Bluehost and feel like I get my money's worth. They put tons of sites on fairly beefy linux servers, which is fine most of the time. The problem is that every now and them someone else's site or script runs out of control or the whole box gets DOSed (seriously, they attack the box's CPanel IP instead of a specific domain). There are also CPU limits (idk about RAM). I've only run into the CPU limits when batch resizing images with a photo gallery. Your account goes offline for 5 mins when that happens.
I run several mostly static domains and a moderately active forum, and I'm generally satisfied. The #1 problem is the server load bouncing around because there are so many sites on one box. The load usually hangs around under 8, but sometimes it will bounce from ~20 to 60 for a few hours for no apparent reason. My sites will be noticeably slower, but it's still responsive until the load goes over 80 or so.
The main reasons I keep them instead of switching to someone like NearlyFreeSpeech are CPanel 11 (with lots of drop-in scripts), the cheap storage (I host a lot of files), and the email hosting, which is pretty reliable and offers fast IMAP. Think of it as a nice apartment with lousy tenets.
The government can't save you.
That's fairly aweful since you put it that way.
Modern virtualization allows for limits per instance.
The reason it's cheap is you are only getting an apache vhost. I don't think it matters what address they are attacking.
It's not a fair comparison to say this shared host provider is cheaper then X cloud provider. Perhaps looking at the cost of leasing a virt would be a better comparison.
In the end, you get what you pay for and that is a very inexpensive setup.
"You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
Sorry folks...the cloud sounds like an all around bad idea to me. I will contimue to run apps on my own computer, and keep my files on my own hard drive .NOTHING that you put out there on the net, (or in the cloud) is safe. You all can keep your cloud!
I have. My company lives (or dies) by the !@# SLA.
Our agreements require no less than 99.9% uptime, about 8 hours of downtime per year. We never gotten close to that - our worst year was about 2.5 hours of downtime because of a power failure at our "fully redundant" hosting facility.
In this world, where I have up to 8 hours per year, 10 minute response would be a god-send. We've just spent *alot* of money revamping our primary cluster so that we now operate with 100% full redundancy on everything. Redundant network feeds. Redundant logic servers. Redundant load balancers. Redundant database servers. All with auto failure, dynamic routing with DNS. (which is, itself, very failure tolerant)
But an application has to be constructed in a very particular way in order to scale, particularly if data integrity is important. (EG: ACID compliance SQL) This is often counter-intuitive and non-obvious, and porting an existing application to such an environment is not a quick investment. It's very typical to give up raw performance for performance scalability. We've devoted approximately 6 man-months over the past year to take full advantage of clustered, redundant computing in order to try for 1 hour over the next year along with near-linear scalability.
It's not just about capacity - it's about keeping all those !@# servers organized and coordinated!
Bottom line? Take a look at your SLA.
In our case, if we suffered a few hours of downtime every year or so, it would be an inconvenience to our users and clients. In any event, our uptime is best-of-breed in our niche-ish industry, but I'd put our uptime as mid range for hosted products overall, when you include companies that are much bigger than our still-somewhat-small rapidly-maturing startup.
Spend money where it counts. This requires an understanding of your economic base. If somebody slashdots your site, is that your golden opportunity, or is that an annoyance. In our case, a few hours of downtime if we got slashdotted wouldn't cause any particular long-term problem if it brought us down. If you have a few hundred customers paying $10/month for some cheap-o websites, a few hours of downtime every year or two won't cause much problem.
I have no problem with your religion until you decide it's reason to deprive others of the truth.
A number of readers have correctly noted the poor logic in George Reese's article. Additionally there is some question as to his motives.
George Reese runs an early stage start-up called enStratus that doesn't offer auto-scaling capabilities. His competitors such as Right Scale offer auto-scaling as part of their applications.
I can certainly understand why someone whose company is missing a major feature, relative to the competition, would argue that the missing feature is not important.
It's 4pm on a Saturday, and your site is getting hit hard. Rally the troops, call a meeting, decide the proper action, call Fedex to ship you more infrastructure, deploy new hardware, profit from your new customers, all the while laughing at the fools who waited 10 minutes for their cloud to auto-scale.
RTFA. The author specifically makes the case for dynamic scaling, just not auto-scaling.
That is, you rally the troops, call a meeting, decide the proper action, and have someone do an 'ec2-run-instances' command.
It's 4pm on a Saturday and chances are that your site is being hit hard either because you were being an idiot or because someone is engaged in an attack on you.
Or you got Slashdotted.
If you plan properly, there are no sudden 4pm on Saturday spikes in traffic.
If you plan properly, you are prepared for the typical 4pm-on-Saturday spikes, if those are typical for you.
Which does nothing if you then get Slashdotted at 7 AM on a Sunday. Or whenever.
As to which is better, the question you have to ask is, what is the cost of not responding to that sudden spike in traffic?
Don't thank God, thank a doctor!
+1 Irony to the author of TFA, if the article becomes slashdotted....
Because of any degree of higher traffic (think 100k visitors a week) and you get suspended, that's why running an regular website on it sucks, unless you have very low traffic website. Nevermind their CPUs & ram are anyways quite damn busy -> slow page views.
Filehosting: Ie. installation file of your application is not included in that, while being technically distribution, not distribution in the sense of the TOS, which interpreted means sites where you have the latest game demos for download.
Pulsed Media Seedboxes
No jiggery is needed, ie. swapping hosts etc.
Done right there's no problems at all. Just because something is CHEAP doesn't mean one couldn't utilize it ;)
Everything has their own place and time, what you are saying is like Mini-ITX setups should be banned and never used because they are so cheap and doesn't offer performance.
Setup once, forget then. You get to run at a cost of say 40$ a month with 4 locations, versus 100-250$ a month with one 1 location, and practical usable bandwidth 1/10th.
besides, ones the setup is done, and you need to keep swapping places, you've done something wrong, or are trying to acheive too high of an ROI. Also, after initial setup done, almost any monkey can setup new locations shall the need arise.
Pulsed Media Seedboxes
When you have say 10 different locations setup, one being utilized when down for 10minutes accounts still for 90% uptime on the period.
However, that being said, there are mission critical application, and i never said this is the perfect solution for everyone.
Also there are other means to load balance, say you want a host a single file, ie. your application on each of these, on your main website you have download page, which chooses the mirror according to availability.
Pulsed Media Seedboxes
This is a classical automated control problem. A good analysis of this topic should be done by a control expert.
Should the problem be solved by some type of feed-forward controller based on some assumptions as the author favours, or should the controller be a feed-back controller as the author critizises or should it be a combination?
It would be interesting see an analysis of someone who knew the topic of automatic control well.
The biggest flaw I see in autoscaling isn't that it isn't fast enough or might cost too much (in both cases it beats the current "scramble out a new server" or "continuous overcapacity" solutions. The biggest flaw is that it doesn't go far enough. I see it as only the first baby step torwards Transcontinental Demand Load Balancing
This reminds me of a large company which outsourced enthusiastically, until at one point they discovered they'd outsourced decisions about maintenance... causing the outsourcer to have control over the maintenance budget.
As you might expect, after it ballooned, they started in-sourcing!
Giving others control over financial decisions is almost always unwise, even if doing so is the newest, coolest idea of the week.
--dave
davecb@spamcop.net
So you're just talking static sites? Using cheap hosting plans as a dodgy CDN? If so, I've got no issue with that. But $60 a month pays for little sysadmin time, and not much more monkey time.
If people are having that kind of traffic, it's worth starting to think about how to make their project sustainable. Things that are pure cost tend to disappear. Figuring out how to match revenues with costs means the project is much more likely to last.
People should also be a little afraid of hosting companies when doing this. Hosting companies offer their low-end packages with the expectation that most people will use almost nothing. And that those who do will eventually swap up to higher packages. If you balance your traffic so you're fully using a bunch of low-end packages, you will probably cost the hosting company more than they are making on you. Even if their AUP currently allows it, they may find reasons to give you poor service or close your account entirely.
Business relationships are only sustainable when both sides are getting good value.
Personally I am not opposed to some degree of capacity planning, but the very example used repeatedly in this article undermines the premise. Who ever knows when they're about to get \.ed? How can the tech guys know the exact impact that the sales teams' latest promotion is going to have on traffic? And 10 minutes startup time isn't all that bad if you have software that looks at the traffic trends rather than waiting for their to be an actual capacity shortage. It might not be perfect, but it's better than trying to plan (and by plan, I mean guess) exactly how much capacity you will need at any given time.
so obvious it hurts...
A web head that just uses one of the stock EC2 images, and then uses the distro's package manager to install apache, etc., is going to take, at most, 5 minutes to come online. Yes, that's right, you can specify a boot-up script for your images, and the boot-up script can call 'apt-get install' to your heart's content.
Summary: Yeah, you should do capacity planning, but auto-scaling is important to handle unexpected traffic surges. If your application is slow for 90 seconds, the world is not going to end.
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
Cloud companies will likely not make metering very easy or cheap because they *want* you to get carried away.
I've only used Amazon EC2, but I can tell you for a fact that they make it very easy for you to know where you stand. And yes, they also have hard limits.
With EC2, you are limited to 20 concurrent instances unless you request more. The cost of running 20 of their highest-priced servers is $18.00/hr. So as long as your auto-scaling system pings you when your resources go over your comfort threshold, you should be able to get yourself to a computer, cellphone, whatever, and override what your auto-scaler did.
Also, with EC2 you can always log into your account and get an up-to-the-second, detailed account activity listing. There is no surprises. They even provide a detailed calculator so you can forecast what your AWS bill will be.
EC2 is highly transparent. If you can spare $0.10, give it a try sometime. It's pretty neat.
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
You are saying that static compute requirements are better met by static computing platforms. Well... duh.
The whole point of the Elastic Compute Cloud is that it is for elastic computing use cases (usage spikes, nightly/monthly/periodic heavy processing, cold spare, etc.) It's not supposed to be cheaper than a dedicated server.
Let me tell you one way that I use EC2, and you tell me if you can give me what I want for cheaper. I own several apartment buildings, and I run my business website on a lousy, inexpensive, totally-inappropriate-for-business-use webhost (dreamhost). My website at dreamhost goes down every few months for minutes, hours sometimes, but I don't mind.
I have a process running that tries my business website every 15 seconds, and if I get 4 straight failures, the website is automatically failed-over to EC2, and DNS is automatically remapped. The entire process from first detected failure to my website's return to operation takes about 2.5 minutes, but obviously any client who has the wrong IP in his or her cache will take a while to access the site on EC2. This is a level of downtime that I am more than willing to live with.
The cost of this service? $0.10/hr, but only when I am using it. Can you provide me this service for less? My EC2 bill (for that usage, anyhow) runs about $1.50/year. Can you provide that service for $1.50/year or less?
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
This post is completely retarded on so many levels, let me explain.
Yes, Amazon's prices are slightly more expensive on a point-to-point basis, but they're completely different models and cannot be compared directly. Amazon costs more because the technology is far more advanced than something traditionally used. This requires more engineering to design and run, therefore increasing the cost. The savings comes from services that have irregular usage patterns. You're only paying for what you use, where as with a more traditional hosting model, you're paying for your maximum commit, or rather the amount of resources you need for your peak traffic. The rest of the time you're paying for resources you're not using.
If you know exactly how much resources your service will consume then sure, something not-cloud will be cheaper. But if your service is fairly dynamic by nature then suddenly it gets a whole lot more competitive. If your service levels vary widely, then Amazon quickly becomes the most fiscally responsible choice.
For file hosting, the suggestion of using shared hosts has to be the absolute worst solution ever proposed. In fact, this solution is so bad I question your "7 years of solid hosting experience" and also your common sense as a human being.
Shared hosts all have a few things in common:
You seem to have no concept of the difference between the "bandwidth" you buy from a shared host and the "bandwidth" you buy from a real solution.
"OmG, Dreamhost offers unlimited storage and transfer, why doesn't Sourceforge move their entire website to them for like $6 bucks a month?!?!"
Is not too far of a stretch of what you sound like to anyone with half a clue.
To address your specific example, here is a quote from Dreamhost ToS:
What's not allowed in "Unlimited"? Basically, sites whose essential purpose is to use disk or bandwidth.
And here's a quote from Bluehost:
Please note, however, that the BlueHost.Com service is designed to host websites . BlueHost.Com does NOT provide unlimited space for online storage, backups, or archiving of electronic files, documents, log files, etc., and any such prohibited use of the Services will result in the termination of Subscriber's account, with or without notice.
Yup, they both disallow file hosting. Never read a ToS before? Try running one of these nasties by your lawyer before signing up next time, you'll be surprised at what they say.
Any company with the sole purpose of having an Internet prescence should be using a CDN to distribute their content, period. There's no excuse for even the smallest of startups now with the drastically falling prices.
It's not even all about the price. Using a proper file serving service instead of "cheap shared accounts" will increase the speed and reliability of the connections. Try pumping out tons of throughput from a shared package, and then from a CDN... it's not even a competition.
Cliffnotes: Poster is a drastically misinformed.
(notes: my apologies if this post sounds condescending or offensive, it's not meant to do anything but expose the truth and to stop the spreading of bad information)