S3 is a storage service offered by Amazon. It stands for simple storage service and provides cloud storage for various types of web development applications. Amazon employs the same infrastructure used by its e-commerce arm. S3 uses publicly available web interfaces like SOAP, REST and BitTorrent to provide storage service.
The focus of the S3 has been on scalability. The amount of storage required should be scalable. To that end, Amazon introduced different storage tiers, with a focus on users who required larger cloud storage.
The S3 guarantees 99.9% of monthly uptime, which translates to 43 minutes of unavailability per month in the worst case scenario. While AWS does provide a Service level agreement (SLA) for uptime, AWS does not provide a SLA for durability. It only mentions that S3 has an object durability of 99.999999999%.The S3 also uses an object storage architecture for the purpose of data management.
The S3 has been designed to store up to 5 terabytes of data, with metadata of 2 kilobytes attached to it. The data file is then stored in form within a bucket and the bucket is linked to an Amazon Web Services account. Since all objects (data) that pertain to one AWS account are stored in a bucket, they can be given a unique key by the user for identification. The objects as well as the bucket can be deleted as per the convenience of the user. The permissions granted for the bucket can also be changed, to either download, upload or both. This helps limit access in case of multiple users.
S3 also provides a consistency in case of read and write operations. If an object is read before it is written, it will eventually return the object if it has been written.
If the data is in the process of being modified, the PUTS command is used to read an object that will return older data for the same object. Because S3 implements data consistency across the board, it mitigates the chance of a corrupt or partial data-write. The same case applies for data that is in the process of deletion. If process is executed that attempts to read deleted data, the deleted data will be returned until it is completely removed.
Processes are served based on the timestamp of the process. The latest process is executed first.
Alternatives to Amazon S3 include Microsoft Azure and some open-source services like Openstack Swift. They vary in usability and number of features. Many don’t have features like PUT/GET/Overwrite commands or the presence of a Lambda function.
Ultimately, one’s choice of cloud storage must depend on the infrastructure already in place for reasons that pertain to latency and optimization. In this case, it would make no sense to use the S3 at one stage, and, say, an Azure instance at another.