Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News

SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
Rock Solid Storage via Web Services
Storage and bandwidth: the two hardest things to scale up as an application grows

Storage and bandwidth - these have traditionally been the two hardest things to scale up as an application grows. Many a dot-com million has been spent building out rock solid storage infrastructures, sometimes for applications which never saw the light of day. Fast forward to 2006. These are good times for developers, with open source technologies, open APIs, and low-cost, commoditized services to help the little guys play along with the big boys.

If you've struggled with adding storage to your application, Amazon's new Simple Storage Service may be just what you're looking for. Amazon S3, as it is commonly known, provides developers with access to the same rock solid, enterprise-class storage that Amazon uses for its own network of sites - all at a low cost with no minimum usage amounts.

Amazon has always tried to define itself as being more than just a bookstore. It was one of the first companies to embrace web services and to create a community around these developers. The launch of S3 has taken this even further. It's now possible to launch your app without worrying about what happens when you wind up with the next big Web 2.0 phenomenon.

Some of the features of S3 are:

  • It allows you to read, write and delete an unlimited number of objects from 1 byte to 5gb each
  • You pay only for what you use - $0.15 per GB-Month of storage and $0.20 per GB of data transferred
  • It uses standards-based REST (Representational State Transfer) and SOAP interfaces
  • Objects can be made public or private, and links can be set to expire
  • It is scalable, reliable and fast
The S3 web services are made available as either SOAP or REST-based web services. SOAP was the first web services technology to gain acceptance, but REST has quickly caught up due to the simple interface it provides using standard HTTP requests. REST does not suffer from the additional messaging layer and overhead that SOAP needs, and it is generally more lightweight and easier to work with. We're going to use the REST interface for all of our methods, using the CFHTTP tag and subsequently parsing the XML that is returned.

The following operations make up the core of the S3 service:

  • List all buckets for user
  • Put a new bucket
  • Get contents of a bucket
  • Delete a bucket
  • Put a new object
  • Get an object
  • Delete an object
Some of the things to keep in mind about working with the S3 service:
  • Accounts are limited to 100 buckets each and bucket names must be unique across all users
  • Buckets cannot contain other buckets, only objects
  • The number of objects within a bucket is unlimited
Detailing each method is outside the scope of this article, but we'll look at a sample REST request to give you an idea of how things work. You should be able to take it from there.

One of the keys to interacting with the S3 service is the signature that is required to be sent with each request. This is created by using a hash of your Amazon secret access key combined with the HTTP request string for the action being performed. To create the necessary signature, you'll need the <CF_HMAC> custom tag created by Tim McCarthy, which can be downloaded from the Adobe Developer Exchange at http://tinyurl.com/jhn9b.

The code to create a new bucket can be found in Listing 1.

CF7 includes all the other tags you'll need, but, on CF6, a Hex2Bin function is necessary which you can find at http://tinyurl.com/knx22. With CF6, you should change line 17 to read:

<cfset signature = ToBase64(Hex2Bin("#digest#"))>

The signature gets created on line 14, which generates a hash of the canonical string being sent to the web server using the secretAccessKey provided by Amazon as the encryption key. Once the signature is created, we submit the REST request via <cfhttp> on lines 20-24, and pass the appropriate <cfhttpparam> fields into the header of the request. The results are returned as standard XML. The main difference between the various S3 methods lies in the canonical string that gets sent along with the header variables passed in. Amazon provides raw HTTP samples in their Developer Resources which can help with forming the necessary HTTP requests. The raw HTTP request for putting a bucket is found in Listing 2.

Rather than have everyone reinvent the wheel, I created a CFC wrapper to the S3 service which handles all of the basics of adding and deleting buckets and objects. You can download the S3 CFC, which contains a sample application for interacting with the service, from the projects page on my blog at www.ajaxcf.com.

Keep in mind that this is a new service just launched by Amazon in March 2006. It is still evolving and more functionality will be added in the future. To find out more about Amazon S3 and to create a web services account to get started, visit the S3 homepage at http://aws.amazon.com/s3/. There are some alternatives on the horizon from OmniDrive, Streamload, and Box.net, which may suit your needs as well.

About Joe Danziger
Joe Danziger is a senior web applications developer with Multimax, Inc., a provider of Enterprise IT Services and Solutions supporting the critical missions of the Air Force, Army, Navy, and other Department of Defense components. He is certified as an Advanced Macromedia ColdFusion MX Developer, and also maintains the Building Blocks site (www.ajaxcf.com) dedicated to AJAX and ColdFusion, as well as DJ Central (www.djcentral.com), a Website serving DJs and the electronic dance music industry.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

> The launch of S3 has taken this even
> further.

Daniel Cohen of the Gemini Israel Funds noted that he would not invest in any company that bases its strategy on the Amazon S3 storage services, since in his opinion it takes the economics away. This is interesting, it goes against my instinct and what I would recommend to people debating this decision. I'd love to see his math.


Your Feedback
Yaniv Golan wrote: > The launch of S3 has taken this even > further. Daniel Cohen of the Gemini Israel Funds noted that he would not invest in any company that bases its strategy on the Amazon S3 storage services, since in his opinion it takes the economics away. This is interesting, it goes against my instinct and what I would recommend to people debating this decision. I'd love to see his math.
Latest Cloud Developer Stories
Swisscom, the Swiss telecom, is going into the cloud business. Its subsidiary Swisscom IT Services AG has signed up with Red Hat as a Certified Cloud Provider and launched a public cloud Infrastructure-as-a-Service (IaaS) cloud targeting enterprise-class customers primarily in ...
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP)....
In a surprise move on Tuesday, January 10, Oracle wheeled out its Big Data Appliance. That’s the one it said in October would be ready sometime in the first half. Only nobody believed it meant early in the first half. Heck, it’s not even clear anybody thought Oracle could make ...
Rackspace Hosting, the service leader in cloud computing, on Thursday announced its acquisition of SharePoint911, an industry leader in SharePoint consulting, training, and "JumpStart" services within SharePoint. The unification of both companies provides capabilities to deliver ...
CloudLinux, Inc., on Thursday released CafeFS 3, a virtualized file system for shared hosters that cages each customer within its own virtualized file system. CageFS becomes part of CloudLinux OS at no additional charge. CloudLinux OS, the only commercially-supported Linux OS m...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers
ADS BY GOOGLE

Breaking Cloud Computing News

The Khronos™ Group, an industry consortium creating open standards for the accelera...