views:

1514

answers:

7

After stumbling into Amazon Web Services again I have finally checked their prices and am shocked. Positively. With their flexible billing and extremely low prices, is there any reason for still using a dedicated hosting for a website? The only one I can think of is keeping sensitive data confined to the intranet - but for publicly accessible services?

I know the above sounds like an advertisement, but I have - until today - dismissed EC2 as much too expensive, while it is cheaper than a budget web hosting. And S3 seems perfect for home backup solutions, either for one's private VCS or something like Bacula (easy to set up) / Box Backup (for the security-aware).

How does this billing system work out in real applications?

Could StackOverflow move to a cloud?

+2  A: 

I've recently become acquainted with Amazon's S3 service - it works more or less as expected. I have a website for my grandmother to showcase her artwork and within an hour I was able to sign up for the service, transfer the files, and save considerable bandwidth charges on her site. Upload and download speeds were bottlenecked by my DSL speed so I can't speculate how fast the service truly is. It can be used for home backups as well - there's a sophisticated access control system to protect the data and numerous programs have been written to allow S3 volumes to mount.

Kyle Cronin
+3  A: 

It doesn't... I think that everyone should plan their deployment strategies towards the cloud. We have lately been deploying a lot of solutions on EC2.

Our customers have been asking us to design their applications so that they can be deployed on EC2 and be scaled up on demand.

No web hosting solution would allow you to scale up on demand like EC2 can.

Vaibhav
+10  A: 

One of the big reasons against going to the cloud is exactly what you said - the need to keep your sensitive data on your servers. Another one is what happens to your credit card if you have some process that goes into an infinite loop and drains as much CPU/network usage as possible (although Amazon may have some management software to address that).

I think the real issue is the lack of persistence in the VM; that is, you need to use S3 to backup everything important on that box, because if the VM goes down, they just reboot you from a fresh VM instance (e.g., a fresh Ubuntu install or whatever).

I haven't used it a whole lot, but that was the understanding I had from it, and that was how they achieve the scalability behind it all. Feel free to add on if anything is amiss.

@Kyle: Yes, you can use it to make a LAMP, but you have the same persistence issue, so you can either (1) hope your box is always up, in which case it's the same as a traditional LAMP setup, or (2) use it as a LAMP and rewrite everything that needs persistence to use S3 (e.g., replace MySQL with S3).

Since it's kinda complicated, two providers that aim to help with that (although it sounds too pricey for the average developer) are 3tera and RightScale.

Chris Bunch
The Elastic Block Store service is basically a persistent volume that you can mount on a single EC2 instance. So if you set up an image that mounts such a volume at startup, you add persistence to that VM. This is a fairly new addition to AWS.
Liam
+3  A: 

Also check out the latest piece in the Amazon Web services puzzle, Elastic Block Store.

Dare Obasanjo gives a positive initial response

dpp
+3  A: 

@kyle For a really small website you're probably looking at two "small" instances (one for the webserver, one for the database) and, say, 50 Gigabytes of persistent storage.

Small instances cost $0.10 per hour, persistent storage costs $0.10 per Gigabyte/month, hence:

    2 * $0.10 * 24 * 30 = $144
    50 * $0.10              = $5
---------------------------------------
                                      $149

On top of that you'll be paying for traffic ($0.10 per Gigabyte, IIRC), I/O and some other auxiliary fee's but those generally don't amount to much (maybe $2/month in your example), no need to worry about them in the beginning.

One thing that you shouldn't underestimate is the learning curve/administrative effort for deploying your first app to the cloud. Many things are different and you'll spend many man-hours figuring them out and building infrastructure before you'll be able to deploy your first application.

Not every application is suitable for deployment in the cloud either. If your application can not be scaled horizontally over any number of servers then don't even bother looking. Clouds are for scaling out, not up. Furthermore your application must be prepared to handle the failure of any node (yes, that includes your database) at any time. Instances can and will¹ disappear at any time. Generally your app must be architected with n+1 redundancy on all levels or you'll face regular downtimes.

¹ As a datapoint: Our EC2 app (12 instances) has seen 7 instance failures (lockup or crash) this year.

RazMaTaz
Yikes. At those monthly prices, would it not make sense to purchase and colocate your own servers?
Kyle Cronin
+2  A: 

Flexiscale preserves the state of the VM as it it turned off. We use it as devepment machines and to host our company page. It is a bit pricier than Amazons solution though.

sumek
A: 

If one is considering a new website hosting solution one must think cloud! Cloud services should now be the standard for hosting sites. Cloud hosting provides scalability, cost and processing efficiencies.

The company I work for currently uses Amazon services for our CDN. It is a great service with an amazingly low price point.

There are some things to think about when purchasing Amazon Web Services for hosting a website. Amazon EC2 instances are transient - if there is a host failure that causes your instance to terminate, all local data on that could be lost. Amazon EC2 instances have a capped CPU. (I go into more detail here)

topCweb