AWS S3 is a simple object based storage service on AWS cloud that can provide scalability, data-availability up to 99.9% along with security of the data stored. This service can be used to store any amount of data while a single file can be from 0 – 5 TB in size, hence customer or industries of all sizes can use this service to store and protect data.
In AWS S3, you can “create” buckets and “add” objects to these buckets. Think of buckets as folders and objects in those buckets as the files contained in a folder. S3 bucket names must be unique in AWS as a web address is created when you create a S3 bucket. With S3 you get global view of all buckets from all regions
S3 objects consist of the following key parameters:
- Key is the name of object/file.
- Value – It is the data and is made of sequence of bytes.
- Version ID- Important for versioning
- Metadata- Data about data you are storing
- Sub resources – ACLs, & Torrent.
- You get HTTP 200 code back from the browser on the successful upload of any object in bucket.
- Any new file uploaded to S3 is immediately available for R/W.
- R/W on existing file or deleting an existing file may take some time to reflect.
S3 has the following features available:
- Tiered Storage: Store your data at the storage tier of choice. There are 5-6 storage tier options available and based on use case/cost you can select a storage tier and store file to that.
- Lifecycle management: Scheduling/Automating to move the objects to S3 Tiers to optimize cost. You can also configure expiration of objects here.
- Versioning: You can store multiple versions of the same object in buckets.
- Encryption: Allows for the encryption of the objects. Encryption in Transit – SSL/TLS
Encryption at Rest can be done at Server Side (Provided by Amazon) and Client Side (By user).
* Server Side – S3 Managed Keys SSE-S3, AWS Key Mgmt. Service , Managed Keys – SSE-KMS, Server Side Encryption with Customer Provided Keys SSE-C
* Client Side Encryption
- MFA Delete – MFA auth. to delete the object
- Secure data using ACLs and Bucket Policies – Bucket policy will work at bucket level applying the policy to all objects in the bucket while the ACL can be applied at object level.
S3 Storage Tiers:
- S3 Standard – 99.9% availability. Data stored across multiple devices and facilities and can withstand loss of 2 facilities at same time.
- S3 IA (Infrequently accessed): For data accessed less frequently at high speed. Lower fee as compared to S3 standard.
- S3 One Zone IA – Lower cost option of IA with no data resilience using multiple zones. Data stored at one zone only.
- S3 – Intelligent Tiering (Uses ML): Optimize cost by automatically moving data to cost effective tier without performance impact or operational overhead.
- S3 Glacier – Low cost storage cost but retrieval time is minutes to hrs.
- S3 Glacier Deep Archive – Lowest cost storage, Retrieval time is 12 hrs.
S3 Pricing Model:
The pricing on S3 is based on the following:
- Storage – Amt. charged per GB of storage.
- Requests – Larger the number of request to stored objects, it is more expensive.
- Storage Mgmt. Pricing – Tiered storage.
- Transfer Acceleration – Makes use of AWS Cloud Front Edge locations. Copy of files are uploaded from buckets to edge locations to minimize the retrieval time.
- Cross region Replication – You will be charged, if you copy your objects from one region to another region for HA.
Related – AWS Storage Classes in S3
Related- Storage vs Memory