BusinessWeek called it “Amazon’s Risky Bet“, but Amazon’s decision to expose its infrastructure as a set of web services is very exciting for those of us who would rather focus on building apps than infrastructure.
After Werner Voegels’ overview presentation on day 1 of FOWA, I decided to attend the workshop session with Jinesh Varia, Amazon’s web services evangelist.
The two main infrastructure services are the Simple Storage Service (S3), and Elastic Computing Cloud (EC2). Both offer a pay-as-you-go service – you pay only for what you use. When you store an item in an S3 “bucket”, that item is uniquely accessible through a URL. So some of the early uses of the S3 service are for photo/media sharing and backup. There are even a number of front-end tools such as S3 Explorer, Backup
Manager, filicio.us and S3 Fox that allow you to start using the S3 service straight away. If you access the storage through EC2 you pay only for EC2 usage and not the storage.
Jinesh took us through some of the details of S3, including:
- S3 buckets are object containers; you are limited to 100 buckets per account (to encourage you to use the associated namepace more efficiently)
- Objects are limited to 5GB (which seems to be the limit at which POST can operate, due to router constraints, for example)
- Buckets are URL-accessible through AWS’s virtual hosting
- Bucket keys are Unicode, and up to 1024 bytes long; you decide on the key format most suitable for your application
- Access Control Policy can be applied to buckets and objects
Richard Kirk, gave a demonstration of LignUp‘s web service-enabled telephony platform which uses EC2 and S3. Richard demonstrated getting an application to call a cellphone (currently restricted to the U.S. due to an issue with DTMF), recording a message on the cellphone and then associating that recording with a blog. Storage of the resulting WAV bypasses the blog site’s infrastructure, as the EC2-based telephony platform sends the file directly to S3, and the blog references
the WAV file through its AWS URL. LignUp has pricing models for corporations, and also for individual bloggers (with the latter based on a solution hosted by LignUp).
For EC2, the model is to clone existing instances when you need more. You could achieve this using agents to check CPU usage over a period of time (e.g. 5 seconds) and then start another instance if required. (AWSConsole also provides you with a web interface to make administration easier.) Jinesh mentioned that the model for a database like MySQL would be to have it running on EC2 and then replicate to S3 every 15 minutes, say. (In other words it wouldn’t be feasible
to run MySQL directly on top of S3.)
T. J. Kang of Thinkfree also talked about how his company is moving to AWS for DocExchange’s storage and computing resource. Thinkfree currently has 15,000 documents stored and they are targeting 1M by the end of the year. T.J. estimates that they reduced their infrastructure costs from $52,000 to $8,000 in the first year.
Jinesh wasn’t able to go into detail about the outstanding issues they are having, but the question was posed as to how EC2 manages IP address allocation across clones for load balancing; he said they were working on this and expected to have it resolved soon. Clearly Amazon is working with early adopters like Thinkfree to address these issues. I also asked him about the location of data storage; there might be Data Protection or other legal implications depending on the geography; he gave a similar answer to
that given by Werner Voegels on day 1: that the data is spread across data centres but noted that Amazon do have a presence in the UK.
Links: AWS Zone