S3 scales to high request rates with latency 100-200ms
- Applications can achieve at least 3,500 PUT/COPY/POST/DELETE or 5500 GET/HEAD requests per second per prefix in a bucket.
- There are no limits to the number of prefixes in a bucket.
Prefix
- bucket/folder1/sub1/file ⇒ prefix is: /folder1/sub1
- bucket/folder2/sub2/file ⇒ /folder2/sub2
- bucket/1/file ⇒ /1/
Performance Optimization
Multi-part Upload
It uses parallel upload to speed up transfers.
- Recommended for files > 100MB, necessary for files > 5GB
S3 Transfer Acceleration
It uses edge locations to increase transfer speed. You upload the file to a close edge location, the it is transferred via AWS private line.
- Compatible with multi-part upload
- Decrease the travel over Internet
S3 Byte-Range Fetches
It works by parallelizing GETs by requesting specific byte ranges.
- Better resilience in case of failures
- Used for speed up downloads
- Can also be used to retrieve partial data (like only the head of the file)