Suvarna Garge (Editor)

Amazon S3

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Type of site
  
Cloud storage

Owner
  
Amazon.com

IPv6 support
  
No

Available in
  
English

Website
  
aws.amazon.com/s3/

Commercial
  
Yes

Amazon S3

Amazon S3 (Simple Storage Service) is a web service offered by Amazon Web Services. Amazon S3 provides storage through web services interfaces (REST, SOAP, and BitTorrent). Amazon launched S3 on its fifth publicly available web service, in the United States in March 2006 and in Europe in November 2007.

Contents

At its inception, Amazon charged end users US$0.15 per gigabyte-month, with additional charges for bandwidth used in sending and receiving data, and a per-request (get or put) charge. On November 1, 2008, pricing moved to tiers where end users storing more than 50 terabytes receive discounted pricing. Amazon says that S3 uses the same scalable storage infrastructure that Amazon.com uses to run its own global e-commerce network.

Amazon S3 is reported to store more than 2 trillion objects as of April 2013. This is up from 102 billion objects as of March 2010, 64 billion objects in August 2009, 52 billion in March 2009, 29 billion in October 2008, 14 billion in January 2008, and 10 billion in October 2007. S3 uses include web hosting, image hosting, and storage for backup systems. S3 guarantees 99.9% monthly uptime service-level agreement (SLA), that is, not more than 43 minutes of downtime per month.

Design

Amazon does not make details of S3's design public, though it clearly manages data with an object storage architecture. According to Amazon, S3's design aims to provide scalability, high availability, and low latency at commodity costs.

S3 is designed to provide 99.999999999% durability and 99.99% availability of objects over a given year, though there is no service-level agreement for durability.

S3 stores arbitrary objects (computer files) up to 5 terabytes in size, each accompanied by up to 2 kilobytes of metadata. Objects are organized into buckets (each owned by an Amazon Web Services account), and identified within each bucket by a unique, user-assigned key. Amazon Machine Images (AMIs) which are used in the Elastic Compute Cloud (EC2) can be exported to S3 as bundles.

Buckets and objects can be created, listed, and retrieved using either a REST-style HTTP interface or a SOAP interface. Additionally, objects can be downloaded using the HTTP GET interface and the BitTorrent protocol.

Requests are authorized using an access control list associated with each bucket and object.

Bucket names and keys are chosen so that objects are addressable using HTTP URLs:

  • http://s3.amazonaws.com/bucket/key
  • http://bucket.s3.amazonaws.com/key
  • http://bucket/key (where bucket is a DNS CNAME record pointing to bucket.s3.amazonaws.com)
  • Because objects are accessible by unmodified HTTP clients, S3 can be used to replace significant existing (static) web hosting infrastructure. The Amazon AWS Authentication mechanism allows the bucket owner to create an authenticated URL with time-bounded validity. That is, someone can construct a URL that can be handed off to a third-party for access for a period such as the next 30 minutes, or the next 24 hours.

    Every item in a bucket can also be served up as a BitTorrent feed. The S3 store can act as a seed host for a torrent and any BitTorrent client can retrieve the file. This drastically reduces the bandwidth costs for the download of popular objects. While the use of BitTorrent does reduce bandwidth, AWS does not provide native bandwidth limiting and as such users have no access to automated cost control. This can lead to users on the "free-tier" S3 or small hobby users amassing dramatic bills. AWS representatives have previously stated that such a feature was on the design table from 2006 to 2010 but have recently stated the feature is no longer in development.

    A bucket can be configured to save HTTP log information to a sibling bucket; this can be used in later data mining operations.

    Hosting entire websites

    Amazon S3 provides options to host static websites with Index document support and error document support. This support was added as a result of user requests dating at least to 2006. For example, suppose that Amazon S3 was configured with CNAME records to host http://subdomain.example.com/. In the past, a visitor to this URL would find only an XML-formatted list of objects instead of a general landing page (e.g., index.html) to accommodate casual visitors. Now, however, websites hosted on S3 may designate a default page to display, and another page to display in the event of a partially invalid URL.

    Notable users

    Photo hosting service SmugMug has used S3 since April 2006. They experienced a number of initial outages and slowdowns, but after one year they described it as being "considerably more reliable than our own internal storage" and claimed to have saved almost $1 million in storage costs.

    There are various User Mode File System (FUSE)-based file systems for Unix-like operating systems (Linux, etc.) that can be used to mount an S3 bucket as a file system. Note that as the semantics of the S3 file system are not that of a Posix file system, the file system may not behave entirely as expected.

    Apache Hadoop file systems can be hosted on S3, as its requirements of a file system are partially met by S3. As a result, Hadoop can be used to run MapReduce algorithms on EC2 servers, reading data and writing results back to S3.

    Netflix uses Amazon Web Services for their storage and compute operations with S3 being their system of record. To address the consistency limitations of S3, Netflix implemented a tool, S3mper. This stores the filesystem metadata: filenames, directory structure and permissions in Amazon DynamoDB.

    reddit is hosted on S3.

    Dropbox, Bitcasa, and Tahoe-LAFS-on-S3, among others, use S3 for online backup and synchronization services.

    Mojang hosts Minecraft game updates and player skins on S3.

    Tumblr, Formspring, and Pinterest host images on S3.

    Swiftype's CEO has mentioned that the company uses S3.

    S3 was used in the past by some enterprises as a long term archiving solution, until Amazon Glacier was released.

    The API has become a popular method for object storage. As a result, more and more applications have been built to natively support the S3 API. This includes applications that write data to AWS S3, as well as to S3-compatible object stores:

    Amazon S3 logs

    Amazon S3 allows users to enable or disable logging. If enabled, the logs are stored on Amazon S3 buckets which can then be analyzed. These logs contain useful information like,

  • Date / time of access to your content
  • Protocol used etc.
  • HTTP Status
  • Turn around time
  • These logs can be analyzed and managed by using third-party tools such as S3Stat, Cloudlytics, Qloudstat, AWS Stats or Splunk.

    S3 API and competing services

    The broad adoption of Amazon S3 and related tooling has given rise to competing services based on the S3 API. These services use the standard programming interface; however, they are differentiated by their underlying technologies and supporting business models. A cloud storage standard (like electrical and networking standards) enables competing service providers to design their services and clients using different parts in different ways yet still communicate and provide the following benefits:

    1. Increase competition by providing a set of rules and a level playing field, encouraging market entry by smaller companies which might otherwise be precluded.
    2. Encourage innovation by cloud storage & tool vendors, and developers because they can focus on improving their own products and services instead of focusing on compatibility.
    3. Allow economies of scale in implementation (i.e., if a service provider encounters an outage or as clients outgrow their tools and need faster operating systems or tools, they can easily swap out solutions).
    4. Provide timely solutions for delivering functionality in response to demands of the marketplace (i.e., as business growth in new locations increases demand, clients can easily change or add service providers simply by subscribing to the new service).

    Examples of competing S3 compliant storage implementations include:

  • Minio Object Storage
  • NooBaa Hybrid Storage
  • Scality RING
  • Google Cloud Storage
  • Cloudian HyperStore
  • IBM Bluemix object storage
  • IBM CleverSafe for on-premise Clouds
  • Rackspace's Cloud Files
  • Openstack Swift
  • DDN Web Object Scaler (WOS) for on-premises Cloud storage
  • Apache CloudStack
  • Connectria's Cloud Storage in 2011 became the first US cloud storage service provider based on the Scality RING organic storage technology
  • Eucalyptus
  • Nimbula (acquired by Oracle)
  • Riak CS, which implements a subset of the S3 API including REST and ACLs on objects and buckets.
  • Ceph with RADOS gateway.
  • Amazon S3 tools

    Amazon S3 provides an API for third-party developers. It describes various API operations, related request and response structures, and error codes.

    References

    Amazon S3 Wikipedia