S3 is accessed over HTTP(S), whether we access the S3 from browser, CLI or programatically internally all of these will be called over REST API
Operations on S3
HTTP Verb
CRUD operations in AWS S3
GET
Read
PUT
Create/Update
DELETE
Delete
POST
Create
The S3 URI for the CLI is written as s3://<bucket-name>
AWS S3 Data Conistency Model
S3 is a object store which can be accesed over web (web-store).
The S3 service is intended to "write once ready many" usecase.
Thats the reason why S3 architecture is different from traditional File System or network SAM architecutre.
S3 Infrastructure
The above image shows only AZs whereas in real life Standard s3 uses a minimum of three AZ’s to store the data.
When we create a new object, the data will be synchronously stored across multiple facilities before returning success, this provides the read-after-write consistency
For all the other objects (apart from new ones), S3 is eventually consistent
AWS S3 Performance Considerations
Its important to understand the best practice for partitioning the workload if your are planning to run on S3 bucket is going to exceed 100 PUT/LIST/DELETE requests per second or 300 GET requests per second.
In this case we need to make sure we follow the partitioning guidelines so that we don’t end up with performance bottleneck.
S3 bucket is unique and every object name (key) in your bucket can be identified uniquely across the globe
AWS S3 scales to support very high request rate, to do so S3 automatically partitions all your buckets
Object keys are stored in UTF-8 binary with a maximum size of 1024 bytes
Bucket name is qtaws and we have an image image2.1.png