Storage is one of the key resources offered as a Cloud Service. By moving data to the Cloud, there are quite a few benefits. Some of them include:
1. Illusion of unlimited storage – Unlike hosting, Cloud storage will virtually give you access to unlimited storage. You will never run out of space on the Cloud.
2. Better scalability – Most of the Cloud storage offerings have a supplementary Content Distribution Network (CDN) that will replicate the static content on their edge server running across the globe. This offers you ultimate scalability.
3.Accessible storage – Because the storage is moved to the Cloud, you can easily integrate that with desktop, web and mobile applications. Cloud Storage APIs are based on standard web protocols like SOAP and REST.
4.Pay-By-Use – The biggest advantage of moving the storage to the Cloud is cost. There is no upfront cost and you will pay only for what you have used. This will help you manage your costs effectively.
5.Reliable and secure storage – Cloud storage is very reliable because it is decentralized and redundant. Most of the vendors replicate their content across multiple physical servers running in multiple physical locations. This makes it more reliable and secure.
In this article, I will introduce you to Amazon Simple Storage Service or S3. The objective is to make you understand the key concepts of S3.
True to its name, Amazon S3 is very simple to understand. Though it is simple, it is extremely powerful. To get the best out of it, you should understand the core concepts of S3 and also the way you should design your application to leverage it.
To get started with S3, go to http://aws.amazon.com/s3 and complete the sign up process. Please make a note of your Access Key and Secret Key.
Visit http://www.CloudBerryLab.com and download the CloudBerry S3 Explorer Freeware. This will give you an intuitive and well designed UI to interact with the S3 Service.
Now that we have the subscription and the right tool with us, let’s take a look at S3.
At a high level, you should have the knowledge of Buckets, Objects and the Access Control List (ACL). Let’s take a closer look at these concepts.
Bucket – Think of the Bucket as the highest level container on the S3 system. Because the Bucket is created at the root level, it got to be unique across the global namespace. The preferred way of creating the unique bucket name is to base it on your domain name which is already unique on the web. AWS imposes a restriction of 100 buckets per account. But with the right design and planning, this would not be a major limitation. Buckets form the integral part of the URI to access the resources on S3. For example, if the bucket name is media.cloud9show, the URI to access it is http://media. cloud9show.s3.amazonaws.com. With the combination of DNS and CNAME, you can completely hide the actual S3 URL and map it your custom domain URLs. Buckets can also have permissions assigned to them in the form of Access Control List (ACL).
Objects – The only hierarchy that S3 has is Buckets and Objects. Buckets contain Objects. These objects can be anything from an image to a serialized Java or .NET object. Each Object can be 5GB in size and can contain up to 2KB of metadata. Every object is URL addressable. The typical format of the URL is http://bucket.s3.amazonaws.com/object. Let’s say we stored a video called screencast.mpg in a bucket called media.cloud9show, the valid URL is http://media.cloud9show.s3.amazonaws.com/screencast.mpg. Objects can also have keys to uniquely identify them. These keys can be up to 1024 bytes in length. An Object’s key name can contain special characters including a forward slash (/). By using a common key delimited by a forward slash, a folder/file like hierarchy can be established. Remember that this is a clever way of using the naming conventions to emulate the folder and file hierarchy. Like Buckets, even the Objects are accessible based on the ACL that is set. If an object has an ACL that allows the public access, they can be accessed through a browser or through the REST based code.
Cloud Berry Explorer let’s me create a folder. But understand that this is not really a folder. It is emulating the folder by creating a key followed by a forward slash.
It’s time for us to understand the concept of ACL.
Access Control List – Every resource in S3 service has an ACL associated with it. When an Object or a Bucket is created, the default ACL marks these resources as private, which implies that you as an owner have full control over it and no one else can access or modify it. Every time a request is made, S3 will authenticate and also checks the ACL to grant access to the Bucket or the Object. An ACL grant consists of one grantee and just one permission. By default, when a Bucket or Object is created on S3, the Owner has FULL_CONTROL permission. Remember that the Bucket’s ACL doesn’t propagate to individual Objects. You need to explicitly define the ACLs for Buckets and Objects separately.
So, that’s the quick introduction to Amazon S3 Service. To quickly recap, we discussed Buckets as containers, Objects as the resources within Buckets and ACLs that define the permissions.
In the coming posts, I will be discussing how to programmatically access and manipulate S3 resources. I will walk you through an end-to-end scenario of building a Jukebox on the Cloud.


As a Cloud Computing Strategist, Janakiram MSV helps businesses understand and adopt the Cloud Computing paradigm. His core strength is designing and architecting solutions for the Cloud. Janakiram focuses on industry's leading Cloud Computing offerings including Microsoft Windows Azure.











