Simple Storage Service (S3):- S3 provides developers and IT teams with secure, durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web services interfaces to store and retrieve any amount of data from anywhere on the web.
- S3 is Object based i.e. allows you to upload files and stored file on the platform.
- Files can be from 1 Byte to 5Tb in size.
- There is unlimited storage.
- Files are stored in Buckets. (Buckets like directory any windows and linux file system).
- Buckets have a unique namespace for each given region (eg if i want to create a bucket izapcloudguru in the eu-west-1 region that namespace with then be reserved so somebody else with using another amazon account could not go in and create a izapcloudguru bucket. https://s3-eu-west-1.amazonaws.com/bucketname/)
- Amazon guarantees 99.99% availability for the S3 platform. S3 buckets essentially spread across availability zone. So if availability zone goes down you don’t have to worry your S3 bucket is stored in the other availability zone and amazon do this automatically on a region bases you don’t have to worry about configuring this.
- Amazon also guarantees 99.999999999% durability for S3 information. Durability is simply if you think of storing of file on a disk set i.e Raid 1 and you lose one of the disk because in Raid 1 configuration which mirror all your information is stored across two disks so you can loss of 1 disk now the way amazon structure S3 is that if you stored 10000 files the guarantee those 10000 files stay there with the 99.999999999% durability.
- S3 can have metadata (key value pairs) on each storage (eg file).
- S3 allows you to do Lifecycle Management.
- Encryption (S3 also allows you to do encrypt your buckets. You can store your files encrypted at rest.)
S3 Storage Types
- Standard S3 storage which gives you 99.99% availability, and the 99.999999999% durability
- Reduced Redundancy storage – Still has 99.99% availability and your buckets replicated across different availability zones automatically but they use different disk sets the only give you 99.99% durability over a given year. So it’s little bit cheaper to use reduced redundancy storage but you only stored files on that not important if you lose them.
- Only use Reduced Redundancy Storage for replaceable data. For example if you have 10,000 files, you could expect to lose 100 files over 1 year as opposed to 0.00001 file with standard S3 durability.
- Stores all versions of an object (including all writes and even if you delete an object)
- Great backup tool.
- Once enabled, Versioning cannot be disabled, only suspended that’s quite important to know.
S3 Lifecycle Management
- Lifecycle Management can be used in conjunction with versioning.
- Lifecycle Management can be applied to current versions and previous versions.
- Following actions are allowed in conjunction with or without versioning;
- Archive Only
- Permanently Delete Only
- Archive and then permanently delete.
- You can upload/download your data to S3 via SSL Encrypted Endpoints and S3 can automatically encrypt your data at rest. S3 gives you the choice of managing your keys through AWS key Management Service (AWS Key Management Service), having Amazon S3 manage them for you, or providing your own keys.
- All buckets are private by default.
- Allows Access Control Lists (an individual user, can only have access to 1 bucket and only have read only access).
- Integrates with IAM (using roles for example allows EC2 users to have access S3 buckets by roles).
- All endpoints are encrypted by SSL.
- Static Websites can be hosted on S3. No need for web servers, you can just upload a static .html to an S3 bucket and take advantage of AWS S3’s durability and High Availability.
- S3 also Integrates with Cloud Front which is amazon content delivering network.
- Multipart uploads, allows you to upload parts of a file concurrently.
- Suggested for files a 100Mb over. It is required for any file over 5Gbs.
- Allows us to resume a stopped file upload.
- S3 is spread across multiple availability zones and i guarantee you have Eventual Consistency you just have to remember the sometimes you might upload a file to an S3 bucket and then you go to try and access that file programmatically because you trying to do that so fast it might not replicated across other availability zones. So just important to remember that all AZ’s will eventually be consistent. Put/Write/Delete requests will eventually be consistent across AZ’s.
S3 Use Cases
- File Shares for networks
- Origin for CloudFront CDN’s
- Hosting Static Files
- Hosting Static Websites