In the second part on my Cloud Hosting series I'm taking a look at the Amazons collective offerings, Elastic Cloud Computing (EC2) and Simple Storage Service (S3).
In part 2 of 'how sites get hacked' we look at XSS and SQL Injection
Amazon EC2 and S3
Of the various 'Cloud Hosting' services I'm going to be looking at, Amazon's services are the only ones I haven't used directly. Amazon's two cloud computing services are not actually directly aimed at web hosting, rather, it is a general computing platform on top of which a hosting platform can be built and configured. Because of this developers are using EC2 for hosting applications with unusual hosting requirements. S3 is marketed somewhat separately from EC2 but in practice the two services work together to form a complete package. S3 is a storage platform based around web services, Amazon charge for the amount of data transferred in and out of the service (focussing on the bandwidth used rather than the amount stored).
Issues
EC2 instances are not persistent. What this means is that if an instance goes down, then it has to be manually restarted, and it may not have access to the same IP address or memory it had before it crashed. Another side effect of this is that an EC2 instance cannot have a domain pointed directly at it. To get domain names pointing at EC2 instances you have to use a Dynamic DNS service which allows the EC2 instance to tell the DNS system what its new IP address is every-time it boots up.
Another issue is the level of flexibility the service provides. You pretty much get access to the entire machine image and its configuration is entirely down to you. If you are uncomfortable configuring system level services and security and installing and configuring Linux server images then EC2 probably isn't for you.
EC2 has not exactly been know recently for its reliability. As a cloud computing service its supposed to be highly redundant and resistant to large scale failure. A number of full outages in recent times,however,have shown this not to be the case. So if mission critical reliability is a big issue for you, for now its probably best to avoid both EC2 and S3 until they get the bugs ironed out.
Advantages
The main advantages to Amazon's services revolve around its flexibility. You can set up an EC2 instance (so long as its using linux) to do pretty much anything from being an email relay to a fully fledged ruby on rails web hosting platform. Because its cloud based it has the same advantages as other similar services such as scalability and high levels of uptime and resilience.
Amazon certainly seem to be serious about the service and have been active in upgrading and maintaining it as interest and use has increased. Apart from that, EC2 is fairly cheap in comparison with services like Mosso and the pay as you go model also seems sensible.
Conclusion
Well, thats about all I can say about Amazons EC2 and S3 for now. They seem aimed primarily at the professional developer rather than the novice and are more flexible than many other hosting services (with some obvious limitations also).
If you have any practical experience using EC2 and S3 then please feel free to drop me a line and let me know, or comment using the form below!