This chapter covers Amazon Simple Storage Service (S3), the foundational object storage service on AWS. For the CLF-C02 exam, this topic falls under Domain 3: Cloud Technology Services, Objective 3.2, which typically accounts for about 12-15% of the exam questions. Understanding S3 is critical because it is one of the most widely used AWS services and a frequent subject of scenario-based questions. By the end of this chapter, you will understand what S3 is, how it works, its storage classes, pricing, security features, and common use cases—all aligned with what the CLF-C02 exam expects.
Jump to a section
Imagine you run a massive global logistics company. You need to store shipping containers (your data files) of all sizes, from small parcels to massive crates (from a few bytes to terabytes). Your warehouse (Amazon S3) is not a single building but a network of warehouses distributed worldwide (AWS Regions and Availability Zones). You don't need to lease or manage any building; you just pay for the space you use and the number of times you move containers in and out (pay-per-use pricing). Each container is stored on a shelf with a unique barcode (the S3 object key). You can set rules: some containers are stored in climate-controlled vaults for long-term archiving (S3 Glacier), others are kept on high-speed shelves for frequent access (S3 Standard). You can also create 'buckets'—like sections of your warehouse—to organize containers by customer or department. The warehouse automatically makes three copies of each container in separate fireproof rooms (99.999999999% durability) so even if one room burns down, your container is safe. You can grant access to specific carriers (IAM users) or even the public (public read) by setting permissions on the barcode labels (bucket policies). Your warehouse manager (AWS Management Console) lets you view, upload, and set rules without ever stepping inside. This system is infinitely scalable—you never run out of shelf space—and you only pay for what you store and the labor (requests) used. That's Amazon S3: a globally distributed, highly durable, pay-as-you-go object storage service.
What is Amazon S3 and the Problem It Solves
Amazon Simple Storage Service (S3) is a highly scalable, durable, and secure object storage service. It solves the problem of storing and retrieving any amount of data from anywhere on the internet. Traditional on-premises storage solutions require you to provision and manage physical hard drives, RAID arrays, and file servers. With S3, you store data as objects in buckets, and AWS handles all the underlying infrastructure. S3 is designed for 99.999999999% (11 nines) durability and 99.99% availability for the Standard storage class. You can store virtually any type of data: backups, media files, static website content, logs, and big data analytics datasets.
How S3 Works: Buckets and Objects
S3 is a flat namespace where you create a bucket (a container for objects) in a specific AWS Region. Each bucket name must be globally unique across all AWS accounts (e.g., my-company-backups). An object consists of the data itself (any file type) plus metadata (key-value pairs) and a unique identifier called the object key (the full path like images/2024/photo.jpg). Objects are stored redundantly across multiple devices within an Availability Zone (AZ) and across at least three AZs in the same Region for Standard storage. You can access objects via a RESTful API using HTTP/HTTPS. The maximum object size is 5 TB, but you can upload objects up to 5 GB in a single PUT operation; larger objects must be uploaded using multipart upload.
Key Features of S3
Data Consistency: S3 provides read-after-write consistency for PUTS of new objects and eventual consistency for overwrite PUTS and DELETES (for the exam, remember: new objects are immediately consistent; updates and deletes are eventually consistent).
Versioning: You can enable versioning on a bucket to keep multiple versions of an object. This protects against accidental deletion or overwrite. Once enabled, you cannot disable versioning—only suspend it.
Lifecycle Policies: Automate transitioning objects between storage classes (e.g., move to S3 Standard-IA after 30 days, then to S3 Glacier after 90 days) and expiring objects after a specified period.
Security: S3 integrates with IAM for user-level permissions, bucket policies for bucket-level access control, and ACLs (legacy) for object-level permissions. You can also enable encryption at rest using SSE-S3 (AES-256), SSE-KMS (AWS KMS), or SSE-C (customer-provided keys), and enforce encryption in transit using HTTPS.
Static Website Hosting: You can configure a bucket to host a static website (HTML, CSS, JS) with a custom domain via Amazon Route 53.
Logging and Monitoring: S3 access logs can be delivered to another bucket, and you can use AWS CloudTrail to log API calls. Amazon CloudWatch metrics provide storage and request metrics.
Storage Classes (Tiers)
S3 offers several storage classes, each optimized for different access patterns and cost profiles:
S3 Standard: For frequently accessed data. 99.99% availability, 11 nines durability. Good for active workloads, content distribution, and analytics.
S3 Standard-IA (Infrequent Access): For data accessed less frequently but requires rapid access when needed. Lower storage cost than Standard but higher retrieval cost. Minimum 30-day storage charge per object.
S3 One Zone-IA: Similar to Standard-IA but stored only in a single AZ. 99.5% availability. Lower cost but risk of data loss if the AZ fails. Suitable for re-creatable data.
S3 Glacier Instant Retrieval: For long-lived, rarely accessed data that needs millisecond retrieval. Minimum 90-day storage charge.
S3 Glacier Flexible Retrieval: For archival data with retrieval times from minutes to hours. Very low storage cost. Minimum 90-day storage charge.
S3 Glacier Deep Archive: For long-term retention of data accessed maybe once or twice a year. Retrieval time is 12 hours. Lowest cost storage. Minimum 180-day storage charge.
S3 Intelligent-Tiering: Automatically moves objects between access tiers based on changing access patterns. No retrieval fees. Monthly monitoring and automation charge per object. Ideal for data with unknown or unpredictable access patterns.
Pricing Model
S3 pricing is pay-as-you-go with no upfront costs. You pay for: - Storage: Per GB per month, varying by storage class. - Requests: Per PUT, GET, LIST, etc. Costs differ by operation type and class. - Data Transfer: Data transfer IN to S3 from internet is free. Data transfer OUT to internet is charged per GB (with a free tier of 1 GB per month for first year). Data transfer between S3 and EC2 in the same Region is free. - Management Features: Additional charges for features like S3 Inventory, S3 Analytics, and Object Lambda.
Comparison to On-Premises Storage
On-premises storage requires capital expenditure for hardware, ongoing maintenance, power, cooling, and floor space. You must estimate capacity ahead of time, leading to either overprovisioning (waste) or underprovisioning (risk). S3 eliminates these concerns by offering virtually unlimited capacity on demand. You pay only for what you use. Additionally, S3 provides built-in durability, replication (Cross-Region Replication, Same-Region Replication), and integration with other AWS services (e.g., S3 Events can trigger Lambda functions).
When to Use S3 vs Alternatives
S3 vs EBS (Elastic Block Store): EBS provides block-level storage volumes for use with EC2 instances. EBS is like a virtual hard drive; you attach it to a single EC2 instance at a time (unless using multi-attach). S3 is object storage accessed via API, suitable for large-scale data lakes, backups, and static content. Use EBS for databases, boot volumes, and low-latency applications. Use S3 for unstructured data, archival, and web content.
S3 vs EFS (Elastic File System): EFS is a scalable file system for use with multiple EC2 instances concurrently. It provides a POSIX-compliant file system interface. S3 is not a file system; it's an object store. Use EFS for shared file storage across instances (e.g., web servers sharing code). Use S3 for data lakes, backups, and static assets.
S3 vs Glacier (now part of S3): Glacier storage classes are actually part of S3. You can transition objects to Glacier tiers using lifecycle policies. The distinction is access speed and cost.
How S3 Handles Data Durability and Availability
S3 Standard automatically replicates objects across a minimum of three Availability Zones within a Region. This design provides 99.999999999% durability (11 nines) over a given year. That means if you store 10 million objects, you can expect to lose one object every 10,000 years on average. Availability for S3 Standard is 99.99%, meaning no more than ~53 minutes of downtime per year. For One Zone-IA, availability is 99.5% (about 2.6 days of downtime per year) because it's in a single AZ.
S3 Security and Access Control
S3 offers multiple layers of security: - IAM Policies: Grant permissions to IAM users, groups, or roles to perform actions on buckets/objects. - Bucket Policies: Resource-based policies attached to a bucket that define who can access it and what actions they can perform. Can grant cross-account access. - Access Control Lists (ACLs): Legacy method to grant basic read/write permissions to other AWS accounts. Not recommended for new setups. - Pre-signed URLs: Generate temporary URLs for specific objects that grant time-limited access without requiring AWS credentials. - Block Public Access: Settings at account and bucket level to prevent any public access, overriding other permissions. - Encryption: Server-side encryption (SSE-S3, SSE-KMS, SSE-C) and client-side encryption. - VPC Endpoints: Access S3 from within a VPC without traversing the internet using gateway endpoints or interface endpoints (PrivateLink).
S3 Events and Notifications
S3 can send events (e.g., object created, object deleted, object restored) to various destinations: Amazon SNS, Amazon SQS, or AWS Lambda. This enables event-driven architectures, such as automatically generating thumbnails when a new image is uploaded.
S3 Object Lock and Glacier Vault Lock
S3 Object Lock: Prevents objects from being deleted or overwritten for a fixed retention period or indefinitely (legal hold). Used for compliance and governance.
Glacier Vault Lock: Allows you to deploy and enforce compliance controls on a Glacier vault (now part of S3 Glacier storage classes). Once locked, the policy cannot be changed.
S3 Transfer Acceleration and Multipart Upload
Transfer Acceleration: Uses AWS edge locations to accelerate uploads over long distances. You upload to an edge location, which then forwards data to S3 over optimized network paths.
Multipart Upload: Recommended for objects larger than 100 MB. Breaks the object into parts and uploads them in parallel, improving throughput and allowing recovery from failures.
S3 Cross-Region Replication (CRR) and Same-Region Replication (SRR)
CRR: Automatically replicates objects to a bucket in a different AWS Region. Useful for compliance, latency reduction, and disaster recovery.
SRR: Replicates objects to another bucket in the same Region. Useful for log aggregation or live replication between production and test environments.
S3 Performance Optimization
Use prefixes: Distribute objects across multiple prefixes (e.g., 2024/01/, 2024/02/) to achieve higher request rates. S3 automatically scales to high request rates when you use diverse prefixes.
Use CloudFront: Distribute content globally with low latency using Amazon CloudFront CDN, which caches objects at edge locations.
Use S3 Transfer Acceleration for large uploads from distant locations.
S3 and AWS CLI
Here are common CLI commands:
# Create a bucket
aws s3 mb s3://my-bucket --region us-east-1
# Upload a file
aws s3 cp myfile.txt s3://my-bucket/
# Sync a local folder to S3
aws s3 sync ./local-folder s3://my-bucket/
# List objects
aws s3 ls s3://my-bucket/
# Enable versioning
aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled
# Apply lifecycle policy
aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration file://lifecycle.jsonS3 in CloudFormation/CDK
Example CloudFormation snippet:
Resources:
MyBucket:
Type: 'AWS::S3::Bucket'
Properties:
BucketName: my-unique-bucket-name
VersioningConfiguration:
Status: Enabled
LifecycleConfiguration:
Rules:
- Id: ArchiveRule
Status: Enabled
Transitions:
- TransitionInDays: 30
StorageClass: STANDARD_IA
- TransitionInDays: 90
StorageClass: GLACIERSummary of Exam-Relevant Points
S3 is object storage, not block or file storage.
Bucket names are globally unique.
Durability: 99.999999999% (11 nines) for Standard.
Availability: 99.99% for Standard.
Consistency: Read-after-write for new objects; eventual for overwrites/deletes.
Storage classes: Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval, Glacier Flexible Retrieval, Glacier Deep Archive.
Security: IAM policies, bucket policies, ACLs, pre-signed URLs, encryption.
Versioning cannot be disabled once enabled.
Lifecycle policies automate transitions and expiration.
S3 events can trigger Lambda, SNS, SQS.
Transfer Acceleration uses edge locations.
Multipart upload for large objects.
CRR and SRR for replication.
S3 can host static websites.
Create an S3 Bucket
Log in to the AWS Management Console, navigate to S3, and click 'Create bucket'. Choose a globally unique name (e.g., 'my-company-data-2024') and select an AWS Region (e.g., US East (N. Virginia) us-east-1). You can also configure options like versioning (enable for protection against overwrites), server access logging, tags, and default encryption. For the exam, remember that bucket names must be DNS-compliant (lowercase, no underscores, 3-63 characters). After creation, the bucket is empty and private by default. AWS stores the bucket's metadata and prepares the underlying infrastructure to handle objects.
Upload an Object to the Bucket
In the S3 console, select your bucket and click 'Upload'. You can drag and drop files or use the 'Add files' button. Choose a destination folder (prefix) like 'images/'. You can set storage class (default Standard), encryption (default SSE-S3), and permissions (keep private). Click 'Upload'. AWS stores the object redundantly across multiple devices. The object is assigned a unique ETag (MD5 hash). You can now access the object via a URL like https://my-company-data-2024.s3.us-east-1.amazonaws.com/images/photo.jpg. Note that by default, the URL returns an Access Denied error because the object is private.
Set Permissions for Public Read Access
To make an object publicly accessible, you need to modify the bucket policy or ACL. For a static website, you often attach a bucket policy that grants 's3:GetObject' to 'Principal': '*'. For example: {"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::my-company-data-2024/*"}]}. Additionally, ensure 'Block public access' settings are turned off at bucket level. AWS warns you about making objects public. Once set, anyone with the object URL can read it. For the exam, know that bucket policies override ACLs and IAM policies can further restrict access.
Enable Versioning on the Bucket
In the bucket properties, under 'Versioning', click 'Enable'. Once enabled, S3 keeps multiple versions of each object. If you upload the same key, the new version becomes the current version; previous versions are retained. You can view and restore previous versions. Versioning is irreversible—you can only suspend it (which stops creating new versions but preserves existing ones). This feature protects against accidental deletions and overwrites. For the exam, remember that versioning is a prerequisite for lifecycle policies and replication.
Configure a Lifecycle Policy
In the bucket 'Management' tab, create a lifecycle rule. Define a rule name and scope (e.g., apply to entire bucket or a prefix). Add transitions: e.g., 'Transition to Standard-IA after 30 days', 'Transition to Glacier after 90 days'. Add expiration: 'Permanently delete after 365 days'. AWS automatically moves objects between storage classes based on the rule. Note that minimum storage charges apply: 30 days for Standard-IA, 90 days for Glacier. Lifecycle policies help optimize costs. For the exam, know that you can also use lifecycle to abort incomplete multipart uploads.
Set Up Static Website Hosting
In bucket properties, enable 'Static website hosting'. Specify an index document (e.g., 'index.html') and optionally an error document (e.g., 'error.html'). You can also redirect requests. After enabling, AWS provides a bucket website endpoint (e.g., http://my-company-data-2024.s3-website-us-east-1.amazonaws.com). You must make the bucket publicly readable (via bucket policy) for the website to be accessible. For custom domains, use Amazon Route 53 to create an alias record. S3 static hosting is ideal for low-cost, scalable websites with no server-side logic.
Scenario 1: Backup and Disaster Recovery for a Medium-Sized Enterprise
A financial services company needs to back up its on-premises databases and file servers to the cloud for disaster recovery. They use AWS S3 with versioning enabled. Daily backups are uploaded using the AWS CLI sync command. They configure a lifecycle policy to transition backups older than 30 days to S3 Standard-IA, and after 90 days to S3 Glacier Flexible Retrieval for long-term archival. The bucket is in the us-east-1 region with Cross-Region Replication to us-west-2 for additional resilience. Cost is minimized by using lifecycle transitions. If a disaster occurs, they can restore from Glacier (retrieval time ~5-12 hours). Common mistakes: forgetting to enable versioning, not setting up replication, or choosing the wrong storage class (e.g., using Standard for archival data, leading to higher costs).
Scenario 2: Hosting a Static Website for a Startup
A startup wants a low-cost, scalable website for their product landing page. They create an S3 bucket with static website hosting enabled. They upload HTML, CSS, JS, and image files. They configure a bucket policy to allow public read access. They use Amazon CloudFront as a CDN in front of S3 to reduce latency and offload requests. The cost is minimal: only pay for S3 storage and CloudFront data transfer. A common pitfall: not disabling 'Block public access' settings, causing the site to return 403 errors. Also, forgetting to set the index document correctly.
Scenario 3: Data Lake for Analytics
A retail company collects clickstream data from its e-commerce platform and stores it in S3 for analytics. They create a bucket with a folder structure like logs/year/month/day/. They use S3 Inventory to track objects and S3 Select to query subsets of data without downloading entire objects. Data is processed by Amazon Athena (serverless SQL queries) and Amazon EMR (Spark). They use S3 Intelligent-Tiering because access patterns are unpredictable. Misconfiguration issues: using a single prefix for all logs (limiting throughput), not enabling encryption for sensitive data, and not setting up lifecycle policies to expire old data, leading to ever-growing storage costs.
What CLF-C02 Tests on This Objective
Domain 3.2: 'Identify AWS compute, storage, networking, and database services.' For S3, the exam expects you to:
Know that S3 is an object storage service.
Recognize the key features: durability (11 nines), availability (99.99% for Standard), scalability, security, and lifecycle management.
Differentiate between storage classes (Standard, Standard-IA, One Zone-IA, Glacier, etc.).
Understand versioning, encryption, and bucket policies.
Identify use cases: backup, static website hosting, data lakes, archival.
Know that S3 is not block or file storage (tricky: EBS is block, EFS is file).
Common Wrong Answers and Why Candidates Choose Them
'S3 provides file-level access like a network drive.' Candidates confuse S3 with EFS. S3 does not mount as a file system; it's accessed via API. The exam may describe a scenario requiring shared file storage across EC2 instances—S3 is not the answer; EFS is.
'S3 Standard-IA has higher durability than S3 Standard.' Both have 11 nines durability. The difference is availability (99.99% vs 99.9%) and retrieval cost. Candidates think 'IA' means more durable because it's 'infrequent access' but durability is the same.
'S3 can be used as a boot volume for EC2.' No, boot volumes require block storage (EBS). S3 cannot be attached as a disk.
'Versioning can be disabled after enabling.' Once enabled, you can only suspend versioning; you cannot revert to unversioned state. Candidates think it's a toggle.
'S3 provides strong consistency for all operations.' It provides read-after-write for new objects, but eventual consistency for overwrites and deletes. The exam tests this nuance.
Specific Terms and Values That Appear on the Exam
Durability: 99.999999999% (11 nines)
Availability: 99.99% (for Standard)
Minimum object size: 0 bytes (but you pay for storage)
Maximum object size: 5 TB
Multipart upload: recommended for objects > 100 MB
Bucket name: globally unique, 3-63 characters, lowercase, no underscores
Storage classes: S3 Standard, S3 Standard-IA, S3 One Zone-IA, S3 Intelligent-Tiering, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive
Consistency: read-after-write for new PUTs; eventual for overwrites and deletes
Encryption: SSE-S3, SSE-KMS, SSE-C
Tricky Distinctions
S3 vs EBS vs EFS: Understand the use cases. S3 is object storage (API, unlimited, globally accessible). EBS is block storage (attached to one EC2, like a hard drive). EFS is file storage (shared across multiple EC2, like a NAS).
S3 Standard vs S3 Standard-IA vs S3 One Zone-IA: All have same durability, but availability differs (99.99% vs 99.9% vs 99.5%). One Zone-IA is cheaper but only one AZ.
S3 Glacier vs S3 Glacier Deep Archive: Both are archival, but retrieval times differ (minutes to hours vs 12 hours). Deep Archive is cheaper but has longer minimum storage duration (180 days vs 90 days).
Decision Rule for Multi-Choice Questions
If the question mentions 'high durability,' 'unlimited storage,' 'object storage,' or 'static website hosting,' think S3. If it mentions 'block storage,' 'boot volume,' or 'attached to EC2,' eliminate S3. If it mentions 'shared file system' or 'POSIX,' eliminate S3. If it asks about 'lowest cost for archival data accessed once a year,' choose S3 Glacier Deep Archive. If it asks about 'data that is accessed infrequently but requires millisecond retrieval,' choose S3 Standard-IA or S3 Glacier Instant Retrieval.
Amazon S3 is an object storage service with 99.999999999% durability and 99.99% availability for Standard.
S3 storage classes include Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval, Glacier Flexible Retrieval, and Glacier Deep Archive.
Bucket names must be globally unique, 3-63 characters, lowercase, no underscores.
Versioning protects against accidental deletion/overwrite and once enabled cannot be disabled, only suspended.
S3 provides read-after-write consistency for new PUTs and eventual consistency for overwrites and deletes.
Lifecycle policies automate transitions between storage classes and object expiration.
S3 can host static websites and integrate with CloudFront for CDN.
Security features include IAM policies, bucket policies, ACLs, pre-signed URLs, encryption (SSE-S3, SSE-KMS, SSE-C), and Block Public Access.
S3 is not a file system; use EBS for block storage and EFS for file storage.
Multipart upload is recommended for objects larger than 100 MB.
These come up on the exam all the time. Here's how to tell them apart.
Amazon S3 (Object Storage)
Unlimited storage capacity, pay per GB used
Accessed via HTTP/HTTPS API, not mountable
Data stored as objects in buckets
Ideal for static content, backups, data lakes
Global namespace, cross-region replication
Amazon EBS (Block Storage)
Maximum volume size 16 TB, provisioned capacity
Attached to a single EC2 instance as a block device
Data stored as blocks on a virtual hard disk
Ideal for databases, boot volumes, low-latency apps
Tied to a single Availability Zone (except Multi-Attach)
Mistake
S3 is a type of file system you can mount on an EC2 instance.
Correct
S3 is an object storage service accessed via API, not a file system. You cannot mount S3 as a drive. For file-level access, use Amazon EFS or Amazon FSx.
Mistake
S3 Standard-IA has lower durability than S3 Standard.
Correct
Both S3 Standard and S3 Standard-IA offer 99.999999999% durability. The difference is availability (99.99% vs 99.9%) and retrieval costs.
Mistake
You can disable versioning after enabling it.
Correct
Once you enable versioning on a bucket, you cannot disable it. You can only suspend it, which stops creating new versions but preserves existing versions.
Mistake
S3 provides strong consistency for all operations.
Correct
S3 provides read-after-write consistency for PUTS of new objects. However, for overwrite PUTS and DELETE operations, it provides eventual consistency.
Mistake
S3 bucket names must be unique within an AWS account only.
Correct
S3 bucket names are globally unique across all AWS accounts. No two buckets in the entire AWS ecosystem can have the same name.
S3 Standard is for frequently accessed data with 99.99% availability and no retrieval fees. S3 Standard-IA is for infrequently accessed data with lower storage cost but higher retrieval cost and 99.9% availability. Both have the same durability (11 nines). Use Standard-IA for data accessed less than once a month. Exam tip: questions about cost optimization for rarely accessed data often point to Standard-IA or Glacier.
No, S3 can only host static websites (HTML, CSS, JavaScript, images). For dynamic content (server-side processing, databases), use services like EC2, Elastic Beanstalk, or AWS Amplify. S3 static hosting is ideal for landing pages, portfolios, or single-page apps. Exam tip: if the question says 'static website', think S3; if 'dynamic website', think EC2 or Elastic Beanstalk.
The maximum object size is 5 TB. For objects larger than 5 GB, you must use multipart upload. The maximum upload size in a single PUT operation is 5 GB. Exam tip: multipart upload is recommended for objects over 100 MB to improve throughput and allow recovery from failures.
S3 Standard automatically replicates objects across a minimum of three Availability Zones within a Region. Each object is stored redundantly on multiple devices. This design ensures that even if two entire AZs fail, your data remains intact. The 11 nines durability means you can expect to lose one object out of 10 million every 10,000 years. Exam tip: durability is about data loss; availability is about uptime.
A bucket policy is a resource-based policy attached directly to the bucket that defines access for principals (users, accounts) to the bucket and its objects. An IAM policy is attached to an IAM user, group, or role and defines what actions that principal can perform on which resources. Both can grant permissions, and the effective permissions are the intersection of all policies. Exam tip: bucket policies are useful for cross-account access or making a bucket public.
Yes, you can change the storage class of an object by copying it to the same bucket with a new storage class, or by using lifecycle policies to automatically transition objects. You can also use S3 Batch Operations to change storage class for many objects. Exam tip: lifecycle policies are the easiest way to automate transitions.
S3 Transfer Acceleration uses AWS edge locations to speed up uploads over long distances. You upload to an edge location, which then forwards the data to S3 over optimized network paths. It's useful for users uploading from far away. There is an additional cost. Exam tip: if a scenario mentions slow uploads from a distant location, consider Transfer Acceleration.
You've just covered Amazon S3 — now see how well it sticks with free CLF-C02 practice questions. Full explanations included, no account needed.
Done with this chapter?