S3 upload and transfer performance: SAA-C03 study notes and practice questions
What to know about S3 upload and transfer performance for the SAA-C03 exam, from the Design High-Performing Architectures domain (24% of the exam guide), then 2 free questions to test it. Part of the SAA-C03 study guide.
S3 performance questions are usually about big files, distant users or huge request rates. Each has a specific answer.
Key facts
A single PUT can upload up to 5 GB. Objects can be up to 5 TB and must use multipart upload above 5 GB; AWS recommends it from about 100 MB.
Multipart upload sends parts in parallel and retries only the parts that fail. Add a lifecycle rule to abort incomplete multipart uploads after a few days, or you keep paying for orphaned parts.
S3 Transfer Acceleration routes uploads and downloads through the nearest CloudFront edge location and then over the AWS network. It helps users far from the bucket’s Region, needs a DNS-compliant bucket name without dots, and uses a different endpoint.
Byte-range fetches download parts of an object in parallel, or just the part you need (such as a file header).
Request rates: S3 supports at least 3,500 PUT/COPY/POST/DELETE and 5,500 GET/HEAD requests per second per prefix, and there’s no limit on the number of prefixes. Spreading keys across prefixes scales throughput.
S3 Express One Zone is a high-performance storage class in a single zone, with single-digit millisecond access, for latency-sensitive workloads such as ML training. It uses directory buckets.
Moving big data sets: AWS DataSync for ongoing online transfers from on premises (NFS, SMB, HDFS, other clouds), the AWS Snow Family for offline transfers when the network is too slow.
How to choose
The scenario says
Look for
Files over 5 GB fail to upload, or uploads restart after a network drop
Multipart upload (and an abort lifecycle rule)
Customers on other continents upload slowly to one bucket
Transfer Acceleration
Users worldwide download the same files slowly
CloudFront (a cache, not Transfer Acceleration)
Need only the first few KB of large objects
Byte-range fetch
Throttling at very high request rates
Spread keys across more prefixes
Weeks to transfer petabytes over the existing link
Snowball Edge devices
Common traps
Transfer Acceleration for repeated downloads. Downloads of the same files are a caching problem; use CloudFront.
Forgetting abandoned parts. Incomplete multipart uploads are billed until aborted.
Assuming random key names are still needed. Modern S3 scales per prefix automatically; you only need more prefixes for very high rates.
A video production company uploads finished films of 2 GB to 20 GB from its studio to an Amazon S3 bucket using single PUT requests.
Over the studio's unreliable connection, uploads often fail part-way and must restart from the beginning, and the largest films are always rejected. A developer has been testing multipart uploads with a script, and a billing review now shows the bucket is charged for storage that does not appear as any object.
Which solution addresses all of these problems?
Choose one answer.
AA. Turn on S3 Transfer Acceleration and keep the single PUT requests, with a lifecycle rule that aborts incomplete multipart uploads after 7 days.
BB. Use multipart uploads with 100 MB parts, retrying only failed parts, and a lifecycle rule that aborts incomplete multipart uploads after 7 days.
CC. Use multipart uploads with 100 MB parts, retrying only failed parts, and a lifecycle rule that expires noncurrent object versions after 7 days.
DD. Use multipart uploads with 100 MB parts uploaded in parallel, and turn on S3 Versioning so that interrupted uploads can resume from earlier versions.
B. Right: Correct. Multipart upload is required for objects over 5 GB and lets the client retry only the parts that fail, instead of the whole file. Parts of uploads that were never completed are billed as storage until the upload is stopped, and the AbortIncompleteMultipartUpload lifecycle action removes them automatically. Learn more: Uploading and copying objects using multipart upload in Amazon S3 (opens in a new tab)
C. Wrong: Multipart upload fixes the size limit and the restarts. However, noncurrent version expiration only removes old versions of completed objects; it does not touch the parts of incomplete multipart uploads, so the unexplained storage charge remains. Learn more: Managing the lifecycle of objects (opens in a new tab)
D. Wrong: Multipart upload fixes the size limit, but versioning keeps versions of completed objects only. It does nothing for incomplete uploads, so the abandoned parts would keep being billed. A lifecycle rule that aborts incomplete multipart uploads is needed. Learn more: How S3 Versioning works (opens in a new tab)
Explanation
Three problems point to the answer: files over 5 GB cannot be sent in one PUT, failed uploads restart from scratch, and abandoned multipart parts are billed. Multipart upload solves the first two because parts are retried individually, and an AbortIncompleteMultipartUpload lifecycle rule removes leftover parts. Noncurrent version rules and versioning only affect completed objects.
A media-sharing company collects large video files from customers worldwide into one Amazon S3 bucket in us-east-1, where an event-driven pipeline starts processing each file as soon as it arrives.
Customers in Asia and Australia report uploads that run far below their available bandwidth. The bucket name is DNS-compliant and contains no dots. The company wants faster uploads for distant customers without changing the processing pipeline or running new servers.
Which solution meets these requirements?
Choose one answer.
AA. Create buckets in Asia Pacific Regions behind an S3 Multi-Region Access Point, and replicate new objects to the us-east-1 bucket for processing.
BB. Deploy upload proxy servers on EC2 behind a Network Load Balancer, and put an AWS Global Accelerator accelerator in front of the proxies.
CC. Turn on S3 Transfer Acceleration for the bucket, and change the upload clients to use the bucket's s3-accelerate endpoint.
DD. Spread the uploaded objects across many key prefixes in the bucket, so that S3 can scale its request rate for the uploads.
Show the answer and explanation
Answer: C
A. Wrong: A Multi-Region Access Point sends each upload to the nearest bucket, which does speed up the upload. However, files would arrive in the us-east-1 bucket only after replication, and the extra buckets and replication rules add work. Transfer Acceleration keeps a single bucket. Learn more: Managing multi-Region traffic with Multi-Region Access Points (opens in a new tab)
Slow uploads from distant customers to one central bucket are the case S3 Transfer Acceleration is built for: uploads enter the AWS network at a nearby edge location. It needs a DNS-compliant bucket name without dots and a change to the client endpoint only. Multi-Region Access Points add buckets and replication delay, a proxy fleet adds servers, and prefixes address request rate, not distance.
Want more on S3 upload and transfer performance? The 5 full-length practice sets have 10 more S3 upload and transfer performance questions, 325 in all, none of them in the free exam. One payment of $14.99, no subscription. See the practice sets →