Amazon S3 Tutorial (2025): Master Storage, Security & Terraform
Imagine storing petabytes of data without ever worrying about servers, disk failures, or capacity planning. You upload a file, and it just works — replicated across multiple data centers, available 99.999999999% of the time, and accessible from anywhere on the planet. That’s the magic of Amazon S3, and if you’re building anything on AWS, you’re going to use it. A lot.
I remember my first real encounter with S3. I was migrating a legacy on-premises backup system that relied on a fragile NAS setup. The thing failed constantly. Within a week of moving to S3, I realized I’d never think about storage the same way again. No more 3 AM alerts about disk space. No more RAID rebuilds. Just reliable, scalable object storage that handled everything we threw at it.
In this Amazon S3 tutorial, I’ll walk you through everything you need to master Amazon Simple Storage Service — from core concepts and storage classes to security best practices and real-world DevOps integrations. Whether you’re preparing for the AWS SAA-C03, DVA-C02, or Storage Specialty exams, or just want to build production-ready storage architectures, this is your starting point.
Let’s dive in.
Table of Contents: Amazon S3 Tutorial
What Is Amazon S3 and Why Does It Matter?
Amazon S3 (Simple Storage Service) is AWS’s fully managed object storage service. Unlike traditional file systems with hierarchies of folders and drives, S3 stores data as objects inside buckets. Each object can be anything — a log file, a Docker image, a machine learning dataset, a video, or your application’s static assets.
Think of S3 like GitHub for your data. Just as Git repositories store and version your code, S3 buckets store and version your objects. But instead of commits, you have object versions. Instead of branches, you have prefixes (which look like folder paths but aren’t really folders).
Here’s why S3 has become the backbone of modern cloud architectures:
Durability and Availability: S3 Standard delivers 99.999999999% (11 nines) durability. AWS automatically replicates your data across at least three Availability Zones. You’d have to lose three data centers simultaneously to lose your data. That’s not happening.
Infinite Scale: There’s no practical limit to how much data you can store. I’ve worked with buckets containing tens of millions of objects. S3 handles it without breaking a sweat.
Deep AWS Integration: Almost every AWS service integrates with S3 — Lambda, CloudFront, Athena, EMR, SageMaker, CodePipeline, you name it. S3 is the glue that holds your AWS architecture together.
Common S3 Use Cases in DevOps:
- Static website hosting — Serve your React or Vue app directly from S3 with CloudFront in front.
- Backup and disaster recovery — Store database snapshots, AMI backups, and configuration exports.
- Application data storage — User uploads, media files, and document storage.
- CI/CD artifact storage — Build artifacts, deployment packages, and container images.
- Data lakes and analytics — Store raw data for Athena queries, EMR processing, or ML pipelines.
- Log aggregation — Central storage for CloudTrail logs, VPC flow logs, and application logs.
- AI/ML workloads — Store vector embeddings, model weights, training datasets, and inference outputs.
If you’re doing DevOps on AWS, S3 isn’t optional. It’s foundational.
S3 Core Architecture: Buckets, Objects, Keys, and Regions
Before you start creating buckets, let’s understand how S3 is architected. Getting these fundamentals right will save you from countless headaches down the road.
Buckets are the top-level containers for your objects. Every object in S3 lives inside a bucket. Bucket names must be globally unique across all AWS accounts — yes, globally. If someone else has already taken my-awesome-bucket, you can’t use it. This is because bucket names become part of the URL.
Objects are the actual files you store. An object consists of the data itself (the file), metadata (key-value pairs describing the object), and a unique identifier called the key.
Keys are the unique identifiers for objects within a bucket. A key looks like a file path — logs/2025/01/app.log — but S3 doesn’t actually have folders. That “path” is just a flat string. The console shows it as folders for convenience, but under the hood, it’s all flat namespace.
Regions determine where your data physically resides. When you create a bucket, you choose a region (like us-east-1 or eu-west-1). Your data never leaves that region unless you explicitly replicate it elsewhere. Choose regions close to your users or applications to minimize latency.
Here’s how you might interact with S3 in different contexts:
AWS Console: Great for exploration, quick uploads, and policy configuration. Not ideal for automation.
AWS CLI: Perfect for scripts and automation. Commands like aws s3 cp, aws s3 sync, and aws s3 ls become second nature.
SDKs: When your application needs to interact with S3 programmatically. Python’s boto3, Node’s aws-sdk, Go’s aws-sdk-go — pick your language.
S3 API: Direct HTTP requests to S3 endpoints. Useful for understanding what’s happening under the hood.
💡 Note — Mental Model: Picture S3 as a massive, globally distributed key-value store. The key is the object’s path, and the value is the object’s content. Every operation is just looking up or modifying entries in this store.
S3 Buckets and Objects: Versioning, Metadata, and Lifecycle
Now let’s get practical. When you create a bucket and start storing objects, there are three features you need to understand deeply: versioning, metadata, and lifecycle rules.
Object Versioning
Versioning keeps multiple variants of an object in the same bucket. When you overwrite or delete an object, S3 doesn’t actually remove it — it creates a new version or adds a delete marker.
This is incredibly powerful for:
- Accidental deletion recovery — Oops, someone deleted the production config file. No problem, just restore the previous version.
- Audit trails — See exactly what changed and when.
- Ransomware protection — Attackers can’t truly delete your data if versioning is enabled.
Enabling versioning is straightforward:
# Enable versioning on a bucket
aws s3api put-bucket-versioning \
--bucket my-production-bucket \
--versioning-configuration Status=Enabled
Once enabled, versioning can be suspended but never fully disabled. Every object uploaded after enabling versioning gets a unique version ID.
🤔 Note — Reflection Prompt: Should you enable versioning for every production bucket? Consider the storage cost implications. Versioning means you’re storing every version of every object. For buckets with frequently updated large files, costs can add up. Use lifecycle rules to expire old versions.
Object Metadata
Every S3 object has metadata — key-value pairs that describe the object. There are two types:
- System metadata: Managed by S3 (Content-Type, Content-Length, Last-Modified, etc.)
- User metadata: Custom metadata you define (must be prefixed with
x-amz-meta-)
Metadata is useful for tracking object context without reading the object itself — things like the original uploader, processing status, or application-specific tags.
Lifecycle Rules
Lifecycle rules automate object management. You can:
- Transition objects between storage classes after a certain number of days
- Expire objects (delete them) after a retention period
- Delete incomplete multipart uploads to reclaim storage
- Expire old object versions to control versioning costs
Here’s a real-world example. Suppose you have application logs that are:
- Hot for the first 30 days (developers actively query them)
- Warm for 90 days (occasional access for debugging)
- Cold for 1 year (compliance requirements)
- Deleted after 1 year
You’d create a lifecycle rule that transitions objects from Standard → Standard-IA after 30 days → Glacier after 90 days → expires after 365 days. This can cut your storage costs by 70-80% compared to keeping everything in Standard.
S3 Storage Classes Explained: Choosing the Right One
Not all data is accessed equally. Some files are read every minute; others sit untouched for years. S3 offers multiple storage classes optimized for different access patterns and cost requirements.
Storage Class Comparison Table
| Storage Class | Min Duration | Min Size | AZ Count | Best For |
|---|---|---|---|---|
| S3 Standard | None | None | ≥3 | Frequently accessed data |
| S3 Express One Zone | None | None | 1 | Ultra-low latency (AI/ML) |
| S3 Intelligent-Tiering | None | None | ≥3 | Unknown access patterns |
| S3 Standard-IA | 30 days | 128 KB | ≥3 | Infrequent but immediate access |
| S3 One Zone-IA | 30 days | 128 KB | 1 | Recreatable infrequent data |
| Glacier Instant Retrieval | 90 days | 128 KB | ≥3 | Archive with millisecond access |
| Glacier Flexible Retrieval | 90 days | 40 KB | ≥3 | Archive (minutes to hours) |
| Glacier Deep Archive | 180 days | 40 KB | ≥3 | Long-term compliance (7+ years) |
S3 Standard
The default. High durability (11 nines), high availability (99.99%), low latency, and high throughput. Use this for frequently accessed data — application assets, active datasets, anything that’s read regularly.
S3 Express One Zone (The Speed Demon)
This is the new kid on the block, and it’s a game-changer for performance-critical workloads. Unlike One Zone-IA (which is for cold data), Express One Zone is built for hot data that demands extreme speed.
It uses a new bucket type called Directory Buckets to deliver single-digit millisecond latency — up to 10x faster than S3 Standard. The catch? Your data lives in a single Availability Zone, so durability is lower than Standard.
Use Case: AI/ML training pipelines, financial modeling, real-time analytics, and high-performance computing where latency matters more than multi-AZ redundancy. If you’re running data-intensive EKS workloads or training models, Express One Zone is worth serious consideration.
S3 Intelligent-Tiering
Don’t know your access patterns? Let AWS figure it out. Intelligent-Tiering automatically moves objects between tiers based on access patterns. There’s a small monthly monitoring fee per object, but no retrieval charges. Ideal for unpredictable workloads.
S3 Standard-IA (Infrequent Access)
Same durability as Standard, but lower storage cost and higher retrieval cost. Use this for data accessed less than once a month but still needs to be immediately available when requested. Think disaster recovery files or older backups.
S3 One Zone-IA
Like Standard-IA, but stored in only one Availability Zone. 20% cheaper, but less resilient. If that AZ goes down, so does your data. Use this for easily reproducible data or secondary backups — not for your only copy of anything important.
S3 Glacier Instant Retrieval
Archive storage with millisecond retrieval. Perfect for data accessed once a quarter but needs immediate access when requested — like medical images or media archives.
S3 Glacier Flexible Retrieval
Lower cost than Instant Retrieval, but retrieval takes minutes to hours. Three retrieval options: Expedited (1-5 minutes), Standard (3-5 hours), Bulk (5-12 hours). Great for compliance archives where you occasionally need to pull data.
S3 Glacier Deep Archive
The cheapest storage class. Retrieval takes 12-48 hours. Use this for data you must retain for regulatory reasons but almost never access — financial records, legal documents, 7-year audit logs.
📝 Note — Quick Quiz: Which S3 storage class is best for log archives that must be kept for 7 years but are almost never accessed? Answer: Glacier Deep Archive — lowest cost, and the long retrieval time is acceptable for compliance-only access.
Cost Optimization Strategy
Here’s my general approach:
- Start with Intelligent-Tiering for new buckets where access patterns are unknown.
- Use Standard for anything accessed more than once a month.
- Use Express One Zone for latency-critical AI/ML or analytics workloads.
- Use Standard-IA for backups and disaster recovery files.
- Use Glacier Deep Archive for compliance archives with multi-year retention.
- Implement lifecycle rules to automatically transition data as it ages.
S3 Security Best Practices: Locking Down Your Buckets
Security is where S3 gets serious. Misconfigured S3 buckets have caused some of the biggest data breaches in history. Don’t become a cautionary tale. Here’s how to lock down your buckets properly.
Block Public Access — Your First Line of Defense
AWS introduced S3 Block Public Access settings specifically because too many people accidentally made buckets public. Enable this at both the account level and bucket level. Seriously, do this first.
# Block all public access at the account level
aws s3control put-public-access-block \
--account-id 123456789012 \
--public-access-block-configuration \
"BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
🚀 Note — Security Tip: Never rely only on ACLs. Modern S3 security = IAM Policies + Bucket Policies + Block Public Access. ACLs are legacy and should be disabled for most new buckets.
IAM Policies vs. Bucket Policies
Both control access, but from different perspectives:
- IAM policies attach to users, groups, or roles. They define what actions that identity can perform on S3.
- Bucket policies attach to the bucket. They define who can access the bucket and what they can do.
Use IAM policies for your internal users and applications. Use bucket policies for cross-account access or when you need resource-based conditions (like IP restrictions).
S3 Access Points
For large organizations with complex access patterns, S3 Access Points simplify permission management. Instead of one massive bucket policy, create multiple access points with different policies for different teams or applications.
VPC Endpoints
If your applications run in a VPC and access S3, use a VPC Gateway Endpoint. Traffic stays within the AWS network, improving security and often reducing costs (no NAT Gateway charges for S3 traffic).
Encryption
Encrypt everything. S3 offers multiple encryption options:
- SSE-S3: AWS manages the keys. Simplest option.
- SSE-KMS: AWS KMS manages the keys. Gives you more control, audit trails, and key rotation.
- SSE-C: You provide the keys. AWS doesn’t store them.
For most production workloads, I recommend SSE-KMS with a customer-managed CMK. You get the convenience of managed encryption with full audit trails in CloudTrail.
S3 Bucket Keys — The KMS Cost Saver
Here’s a pro tip that separates senior engineers from the rest. When you enable SSE-KMS encryption and process millions of objects, KMS API calls get expensive fast. Each object operation hits KMS.
S3 Bucket Keys solve this by creating a bucket-level key that reduces KMS request traffic by up to 99%. The bucket key handles the heavy lifting, and KMS only gets called to generate the bucket key periodically.
Enable it like this:
aws s3api put-bucket-encryption \
--bucket my-production-bucket \
--server-side-encryption-configuration '{
"Rules": [{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": "your-kms-key-id"
},
"BucketKeyEnabled": true
}]
}'
If you’re running high-volume workloads with KMS encryption, this is a must.
MFA Delete
For your most critical buckets, enable MFA Delete. This requires multi-factor authentication to delete object versions or change versioning configuration. It’s an extra layer of protection against both malicious actors and accidental deletions.
S3 Monitoring and Logging: Seeing What’s Happening
You can’t secure what you can’t see. Here’s how to monitor your S3 buckets effectively.
S3 Server Access Logs capture detailed records of every request made to your bucket — who accessed what, when, and from where. Enable these for security-sensitive buckets.
CloudTrail Data Events go deeper, capturing S3 object-level operations as events you can analyze, alert on, and archive. More expensive than Server Access Logs, but integrates beautifully with the rest of your AWS security tooling.
S3 Storage Lens provides organization-wide visibility into storage usage and activity. It’s like having a dashboard that shows you which buckets are growing fastest, which have public objects, and where you can optimize costs.
CloudWatch Metrics give you bucket-level metrics — total bucket size, number of objects, and request metrics. Set up alarms for unexpected changes.
GuardDuty S3 Protection uses machine learning to detect anomalous access patterns — potential data exfiltration, unusual API calls from suspicious IPs, or access from Tor exit nodes.
🤔 Note — Reflection Prompt: When was the last time you reviewed access patterns for a production S3 bucket? If you can’t remember, it’s time to enable Storage Lens and take a look.
S3 Integrations with DevOps and AWS Services
S3 doesn’t exist in isolation. Its real power comes from how it integrates with everything else in AWS.
S3 + CloudFront (Static Website Hosting)
This is the classic pattern for hosting static websites. S3 stores your HTML, CSS, JavaScript, and assets. CloudFront caches and serves them globally with HTTPS. You can deploy a React or Vue app for pennies per month.
# Sync your build folder to S3
aws s3 sync ./build s3://my-website-bucket --delete
# Invalidate CloudFront cache
aws cloudfront create-invalidation \
--distribution-id E1234567890 \
--paths "/*"
S3 + Lambda (Event-Driven Architectures)
S3 can trigger Lambda functions on object events — uploads, deletions, or tagging changes. Use this for:
- Image thumbnail generation when users upload photos
- Log processing when new log files arrive
- Data validation before downstream processing
S3 + CodePipeline (CI/CD Artifacts)
CodePipeline uses S3 as its artifact store. Build outputs, deployment packages, and pipeline state all live in S3 buckets. Understanding this helps when debugging stuck deployments.
S3 + Athena (Serverless Queries)
Store your data in S3, query it with SQL using Athena. No servers to manage. Pay per query. Perfect for analyzing logs, exploring datasets, or building ad-hoc reports.
S3 Tables (Managed Apache Iceberg)
This is a major 2025 development. S3 Tables transforms S3 into an optimized store for tabular data using Apache Iceberg format. It automates table maintenance tasks like compaction, snapshot management, and unreferenced file removal.
Why does this matter for DevOps? It bridges the gap between raw object storage and data warehousing. Instead of managing Iceberg tables yourself (dealing with compaction, manifest cleanup, etc.), S3 Tables handles it automatically. Your data pipelines become simpler, and query performance improves without manual tuning.
S3 + EKS (Kubernetes Workloads)
Kubernetes workloads running on EKS often need shared storage. S3 is ideal for:
- Storing ML model artifacts for inference pods
- Sharing build outputs between pipeline stages
- Persisting application state that needs to survive pod restarts
Mountpoint for Amazon S3 is the modern way to integrate S3 with Kubernetes. It’s a high-performance, open-source file client that translates local file system API calls to S3 object API calls. Your pods can mount S3 buckets as if they were local file systems — no code changes required.
For AI/ML workloads running on EKS, Mountpoint combined with S3 Express One Zone delivers the low-latency, high-throughput access that training jobs demand.
Managing S3 with Terraform (Infrastructure as Code)
Real DevOps engineers don’t click buttons in the console. If you’re managing S3 at scale, you need Infrastructure as Code. Here’s a production-ready Terraform configuration that creates a secure bucket with all the best practices baked in:
# Secure S3 bucket with versioning, encryption, and public access blocked
resource "aws_s3_bucket" "production_assets" {
bucket = "mycompany-prod-assets-us-east-1"
tags = {
Environment = "production"
ManagedBy = "terraform"
}
}
# Enable versioning for recovery and audit trails
resource "aws_s3_bucket_versioning" "enabled" {
bucket = aws_s3_bucket.production_assets.id
versioning_configuration {
status = "Enabled"
}
}
# Block ALL public access — no exceptions
resource "aws_s3_bucket_public_access_block" "block_public" {
bucket = aws_s3_bucket.production_assets.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
# Enable KMS encryption with bucket keys for cost optimization
resource "aws_s3_bucket_server_side_encryption_configuration" "encryption" {
bucket = aws_s3_bucket.production_assets.id
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
kms_master_key_id = aws_kms_key.s3_key.arn
}
bucket_key_enabled = true # Reduces KMS costs by up to 99%
}
}
# Lifecycle rule to transition old data and control costs
resource "aws_s3_bucket_lifecycle_configuration" "lifecycle" {
bucket = aws_s3_bucket.production_assets.id
rule {
id = "archive-old-data"
status = "Enabled"
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 90
storage_class = "GLACIER"
}
noncurrent_version_expiration {
noncurrent_days = 30
}
}
rule {
id = "cleanup-incomplete-uploads"
status = "Enabled"
abort_incomplete_multipart_upload {
days_after_initiation = 7
}
}
}
This configuration gives you versioning, encryption with bucket keys, blocked public access, and cost-optimized lifecycle rules — all defined as code, version-controlled, and repeatable across environments.
Advanced S3 Features for Enterprise Workloads
Once you’ve mastered the basics, these advanced features let you build enterprise-grade storage architectures.
S3 Replication (CRR & SRR)
Cross-Region Replication (CRR) copies objects between buckets in different regions. Use it for disaster recovery or reducing latency for globally distributed users. Same-Region Replication (SRR) copies within the same region — useful for log aggregation or maintaining production/dev copies.
S3 Object Lock
Makes objects immutable. Once locked, an object cannot be deleted or overwritten — even by the root account. This is essential for:
- Regulatory compliance (SEC 17a-4, FINRA)
- Ransomware protection
- Immutable backup strategies
Multi-Region Access Points
For truly global applications, Multi-Region Access Points provide a single global endpoint that routes requests to the closest bucket. Combined with replication, you get low-latency access worldwide with automatic failover.
S3 Batch Operations
Need to copy, tag, or invoke Lambda on millions of objects? Batch Operations lets you perform large-scale operations with a single job. I’ve used this to migrate terabytes of data between storage classes overnight.
Event Notifications
S3 can send notifications to SNS, SQS, Lambda, or EventBridge when specific events occur. Build event-driven architectures that react to data as it arrives.
Common S3 Mistakes to Avoid
After years of working with S3, I’ve seen these mistakes repeatedly:
Making buckets public accidentally: Always enable Block Public Access at the account level. Review bucket policies before applying them.
Using Standard storage for cold data: If you’re not accessing data regularly, you’re overpaying. Use lifecycle rules to transition to cheaper storage classes.
Not enabling versioning on production buckets: One accidental aws s3 rm --recursive and your data is gone forever. Versioning is cheap insurance.
Leaving sensitive logs unencrypted: Always enable default encryption. Use KMS for anything containing PII or sensitive business data.
Ignoring Bucket Keys with KMS: If you’re using SSE-KMS at scale, you’re throwing money away without Bucket Keys enabled.
Hardcoding S3 URLs in applications: Bucket names can change. Use environment variables or parameter store. Build URLs dynamically.
Ignoring bucket naming conventions: Establish a naming convention early. Something like {company}-{env}-{purpose}-{region} keeps things organized. Remember, bucket names are global and permanent.
S3 Pricing and Cost Optimization
S3 pricing has three main components:
Storage Cost: How much data you store. Varies by storage class — Standard is most expensive, Glacier Deep Archive is cheapest.
Request Cost: Every GET, PUT, LIST operation costs money. Thousands of small files with frequent access can get expensive.
Data Transfer Cost: Data leaving AWS (to the internet) costs money. Data between S3 and other AWS services in the same region is usually free.
Cost Optimization Strategies:
- Use lifecycle rules aggressively — Transition to cheaper storage classes as data ages. This alone can reduce costs by 70-80%.
- Enable Intelligent-Tiering for unpredictable access patterns — Let AWS optimize automatically.
- Enable S3 Bucket Keys with KMS encryption — Reduces KMS API costs by up to 99%.
- Compress before uploading — Smaller objects mean lower storage and transfer costs.
- Use S3 Inventory instead of LIST operations — LIST calls on large buckets get expensive. Inventory generates daily/weekly reports at a fraction of the cost.
- Delete incomplete multipart uploads — These waste storage but are invisible in the console. Use lifecycle rules to clean them up.
- Monitor with Storage Lens — Find your biggest cost drivers and optimize accordingly.

Wrapping Up: S3 as Your Data Foundation
If there’s one thing I want you to take away from this guide, it’s this: S3 is the backbone of your AWS data strategy. Get S3 right, and everything above it — your applications, pipelines, analytics, and ML workloads — stays scalable, secure, and predictable.
Start with the fundamentals: proper bucket organization, versioning for protection, and Block Public Access for security. Then layer on lifecycle rules for cost optimization, encryption for data protection, and monitoring for visibility.
For 2025 workloads, pay attention to the newer features — S3 Express One Zone for latency-critical AI/ML pipelines, S3 Tables for managed data lakes, and Mountpoint for seamless Kubernetes integration.
S3 isn’t just storage. It’s the foundation that everything else builds upon.
Frequently Asked Questions
What is Amazon S3?
Amazon S3 (Simple Storage Service) is AWS’s fully managed object storage service designed for storing and retrieving any amount of data from anywhere. It provides 99.999999999% durability and integrates with virtually every AWS service.
What are S3 buckets and objects?
Buckets are containers that hold objects. Objects are the actual files you store, along with their metadata and a unique key (identifier). Every object lives inside a bucket, and bucket names must be globally unique.
How do S3 storage classes work?
S3 offers multiple storage classes optimized for different access patterns and cost requirements. Standard is for frequently accessed data, Express One Zone delivers ultra-low latency for AI/ML workloads, Infrequent Access tiers are for occasional access, and Glacier tiers are for archival. You can use lifecycle rules to automatically transition objects between classes.
How do you secure an S3 bucket?
Enable Block Public Access, use IAM policies and bucket policies to control access, enable default encryption with SSE-KMS (and Bucket Keys for cost savings), consider VPC endpoints for private access, and enable MFA Delete for critical buckets. Monitor with CloudTrail and GuardDuty.
Is Amazon S3 good for static website hosting?
Yes. S3 combined with CloudFront is one of the most cost-effective and scalable ways to host static websites. You get global CDN distribution, HTTPS support, and pay only for what you use.
Is Amazon S3 free?
S3 has a free tier that includes 5 GB of Standard storage, 20,000 GET requests, and 2,000 PUT requests per month for 12 months. Beyond that, you pay for storage, requests, and data transfer.
What is S3 Intelligent-Tiering?
Intelligent-Tiering automatically moves objects between access tiers based on changing access patterns. It’s ideal when you don’t know how frequently data will be accessed and want to optimize costs automatically.
What is S3 Express One Zone?
S3 Express One Zone is a high-performance storage class that uses Directory Buckets to deliver single-digit millisecond latency — up to 10x faster than Standard S3. It’s designed for AI/ML training, real-time analytics, and other latency-sensitive workloads.
👉 Ready to put this knowledge into practice? Take the Free “Amazon S3 Hands-On Crash Course” and start building real-world storage architectures today.
