Amazon S3


Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its global e-commerce network.
Amazon S3 can be employed to store any type of object which allows for uses like storage for Internet applications, backup and recovery, disaster recovery, data archives, data lakes for analytics, and hybrid cloud storage.
AWS launched Amazon S3 in the United States on March 14, 2006, then in Europe in November 2007.

Design

Although Amazon Web Services does not publicly provide the details of S3's technical design, Amazon S3 manages data with an object storage architecture which aims to provide scalability, high availability, and low latency with 99.999999999% durability and between 99.95% to 99.99% availability.
The basic storage units of Amazon S3 are objects which are organized into buckets. Each object is identified by a unique, user-assigned key. Buckets can be managed using either the console provided by Amazon S3, programmatically using the AWS SDK, or with the Amazon S3 REST application programming interface. Objects can be managed using the AWS SDK or with the Amazon S3 REST API and can be up to five terabytes in size with two kilobytes of metadata. 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 object bucket and support versioning which is disabled by default. Note that since buckets are typically the size of an entire file system mount in other systems, this access control scheme is very coarse-grained, i.e. you cannot have unique access controls associated with individual files.
Bucket names and keys are chosen so that objects are addressable using HTTP URLs:
Amazon S3 can be used to replace significant existing web-hosting infrastructure with HTTP client accessible objects. The Amazon AWS authentication mechanism allows the bucket owner to create an authenticated URL which is valid for a specified amount of time.
Every item in a bucket can also be served as a BitTorrent feed. The Amazon S3 store can act as a seed host for a torrent and any BitTorrent client can retrieve the file. This can drastically reduce the bandwidth cost 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 of Amazon S3, or small hobby users, amassing dramatic bills. AWS representatives have stated that a bandwidth limiting feature was on the design table from 2006 to 2010, but in 2011 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 data mining operations.
There are various User Mode File System -based file systems for Unix-like operating systems that can be used to mount an S3 bucket as a file system such as S3QL. The semantics of the Amazon S3 file system are not that of a POSIX file system, so the file system may not behave entirely as expected.

Hosting websites

Amazon S3 provides the option to host static HTML websites with index document support and error document support. Websites hosted on S3 may designate a default page to display and another page to display in the event of a partially invalid URL, such as a 404 error, which provide useful content to visitors of a URL containing a CNAME record hostname rather than a direct Amazon S3 bucket reference when the URL does not contain a valid S3 object key, such as when a casual user initially visits a URL that is a bare non-Amazon hostname.

Amazon S3 logs

Amazon S3 allows users to enable or disable logging. If enabled, the logs are stored in Amazon S3 buckets which can then be analyzed. These logs contain useful information such as:
Logs can be analyzed and managed using third-party tools like , , , AWStats, and Splunk.

Amazon S3 tools

Amazon S3 provides an API for developers. The AWS console provides tools for managing and uploading files but it is not capable of managing large buckets or editing files. Third-party websites like or software like Cloudberry Explorer, ForkLift and WebDrive have the capability to edit files on Amazon S3.

Amazon S3 storage classes

Amazon S3 offers four different storage classes that offer different levels of durability, availability, and performance requirements.
TypeCompany NameProduct
Client BackupHaystack Software LLCArq backup
Client BackupCloudBerry LabCloudBerry Backup
Client Backupopen-sourceDuplicati
Client BackupNovosoft LLCHandy Backup
File BrowserBinarynightsForkLift
File Browserodriveodrive
MySQL BackupOracleMySQL Enterprise Backup
Oracle Database BackupOracleOracle Secure Backup Cloud Manager
Server BackupActifioActifio
Server BackupAtempoDigital Archive
Server BackupCommvaultCommvault
Server BackupVeritasNetBackup
Server BackupAsigraAsigra Cloud Backup
Server BackupRubrikRubrik
Cloud StorageWasabiWasabi Hot Storage
Cloud Storage GatewayCTERA NetworksC00 Series
Cloud Storage GatewayAvereFXT Series
Cloud Storage GatewayEMCCloudArray
Cloud Storage GatewayMicrosoftStorSimple
Cloud Storage GatewayNasuniNF Series
Cloud Storage GatewayNetAppAltavault
Cloud Storage GatewayPanzuraGlobal File System
Sync & ShareStorage Made EasySME
Hybrid StorageCloudianCloudian HyperStore
Hybrid StorageSeaweedFSSeaweed File System
Hybrid StorageNooBaa Storage
Hybrid StorageWestern DigitalActiveScale
Hybrid StorageSwiftStackSwiftStack 1space
On-Premises StorageMinIOMinIO
On-Premises StorageOpenIOOpenIO SDS
On-Premises StoragePure StorageFlashBlade
On-Premises StorageScalityRING Storage
Open SourceOpen Source S3 Server

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 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, & developers because they can focus on improving their own products and services instead of focusing on compatibility.
  3. Allow economies of scale in implementation .
  4. Provide timely solutions for delivering functionality in response to demands of the marketplace.
Examples of competing Amazon S3-compliant storage implementations:
*
*
*
Amazon Web Services introduced AmazonS3 in 2006.
Amazon S3 is reported to store more than 2 trillion objects. This is up from 10 billion objects as of October 2007, 14 billion objects in January 2008, 29 billion objects in October 2008, 52 billion objects in March 2009, 64 billion objects in August 2009, and 102 billion objects in March 2010.. In November 2017 AWS added default encryption capabilities at bucket level.

Citations