Question

I read a lot about the possibilities of Amazons Cloud computing, like S3 or EC2 and I wondered if someone actually uses this for mission-critical applications. Do you host your company website in the cloud? Do you store files there? Do you run your build servers in the cloud?

There are already some services like Scalr or WeoCeo that could help you with this task, but I don't know if management is already at the point where this is a real issue...


edit I'd like to add another point: Do you think, there are hidden issues in the AWS licenses that would keep you (and/or your company) from outsourcing applications or even parts of applications into the cloud?

edit Do you know about some statistics comparing the overall outage times of S3 or EC2 and your own or 3rd party hosting services?

Was it helpful?

Solution

I setup two instances of my application on EC2, and have been using S3 in as a local-to-AWS backup and media asset delivery. We moved over about 15% of our applications content/traffic to EC2 in mid-June. The result is mixed, and we are moving the content heavy usage instance back to our hosted data center, and now are investigating other content delivery options.

Do note that:

  1. My application is bandwidth hungry (starting at 100mbps per instance)
  2. My company and I are based in Switzerland and that surely has had an impact on our evaluation.
  3. I define bandwidth as a rate of flow (mbps, etc.) and traffic as volume (mb, gb, etc.)

Pros:

  • Traffic costs for low to medium volumes, assuming less than maybe a terabyte per month. Exceed that fuzzy line and either do it yourself or find a proper CDN
  • Active user community
  • Effectively unlimited bandwidth with S3/CloudFront-delivered content
  • Flexibility (kick off an instance and have it running in minutes)
  • CPU power available in an instance, even the small instance type, was always enough for my application. There are other high-CPU instance types for those who need it.

Cons:

  • We had an instance become unreachable (a not unheard of occurrence) and had execute our disaster recovery procedure. 12h.
  • Network latency, for both S3 and EC2, can be unacceptably high (100s of ms)
  • EC2 instance bandwidth is limited. Despite hours of search, I never found an official statement with hard numbers one what users can expect. Initially we saw a max of ~250mpbs in tests but that seems to have improved dramatically.
  • Per HTTP connection bandwidth can be unacceptably low. 1-2mbps from even our Swiss data center with a 800mpbs connection and quality peering. EDIT: We have recently seen rates between our data center and EC2 in the 3-4mpbs range.
  • S3 is not a 'normal' file system, and special software is required. We chose JungleDisk, which I now find inappropriate for a 24/7, moderately sized data set server environment. Strange things would happen (file listed twice with an 'ls' command) and unexpected crashes. Use EBS for persistent data, although that is not without caveats.
  • S3 is not a CDN. My company, like many others, have tried to use Amazon S3 as a CDN. There are other low cost alternatives out there. (Akamai, voxel.net, easycache.com)

I'm a fan of the cloud concept, and we will continue to run an instance out of EC2, but we found it inappropriate for our main production needs in its current form. AWS has some issues to sort out.

OTHER TIPS

I'm currently using S3 for video hosting and I love it. If you're using .NET give yourself a little lead time to get the setup integrated in your site. I would highly reccomend their services.

The only thing that I found rough was that you had to spend >100 to get silver level of service, our site will be spending that much eventually but we're not even in beta yet. I didn't have a question, I just wanted to see what their support was like.

The support was great, and very helpful, however I would have liked to be able to ask some questions without having to go in my pocket (rather the boss's pocket)

Oh, I haven't run into any license issues.

Comparatively, for the money, I would pick S3 above other hosting services because their reach is so vast and the price point it so low.

Regarding Reliability

I don't have anything running on a cloud service, but I would like to address the reliability issue.

I'm sure that the Amazon team has much more experience and resources available to run a heavy-duty web site than I do. They were down for a couple of hours last week, but I believe overall their uptime will be better than if you or I would have on our own, with our present level of experience and resources.

I'm using S3 for image hosting (currently over 5 million files,) and for server backups. I used EC2 for image processing and SQS for coordinating between these tasks. I must say I have removed EC2 since for that specific task, non-virtualized server proved to be 10x as fast. And I wrote my own solution of queuing using mysql, which proved to be much faster and didn't tie a close bond with AWS.

There's an important post at Coding Aloud [http://www.codingaloud.com/2008/01/going-bankrupt-with-amazon-s3.html] called Going Bankrupt With Amazon S3, grab a look.

Disclaimer: I'd a grad student at UCSB, who puts out the software I'm about to mention.

If you're worried about cloud ownership (e.g., not physically owning your cloud boxes), you may want to look at Eucalyptus. It's EC2 API-compliant and lets you use your servers, and it's open source so you can see exactly what's going on.

But to the actual question, no, we don't host our website in the cloud, although we certainly have many ideas coming for stuff to do in it.

For your second edit, check out CloudStatus. It monitors the AWS stuff and Google App Engine for outages and performance. Amazon also tracks their outages at http://status.aws.amazon.com/.

We store our company files on S3 so they could be accesible to the employees on the go. Extremily cheap and easy. Plenty of apps to access your files on S3. The one we use is a nice online file manager: S3fm.

A group of friends and I are working on an application that lives in the cloud. However, the part of the cloud it lives in is under our control. I would never trust a third party to do that sort of lifting for my application, because I don't have control over it. The recent Amazon S3 outage is an excellent illustration of why.

And I absolutely, positively, would never put any part of my infrastruture on (for example) Amazon's servers. Build servers, source code, etc, is always tightly controlled. Not only because of potential unreliability, but because I find the licenses for these services overly permissive for the service provider. Besides that, an unscrupulous host* could potentially take my source code and use it for their own purposes, even if something like that is not legalized by the license agreement I would have to accept in order to use the service.

*Probably doesn't apply to Amazon, but I've never heard of the other two you mentioned, and until they're around for ten years or so, I probably wouldn't trust them, or any services like them.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top