Skip to content

AWS Storage Services — S3, EBS, EFS, Glacier

Object storage for any amount of data at web scale. S3 is the foundation of AWS storage — buckets hold objects (data + metadata + unique ID), and every bucket has a globally unique name.

Different classes optimize for access patterns and cost:

ClassUse CaseRetrieval
StandardFrequent access, millisecond latencyInstant
Standard-IAInfrequent access but need fast retrievalInstant
One Zone-IAInfrequent, single AZ, cost-optimizedInstant
Glacier InstantArchive with instant retrievalInstant
Glacier FlexibleArchive, can wait 3–5 hoursMinutes to hours
Glacier Deep ArchiveLong-term archive, lowest cost12+ hours

Automate transitions between storage classes and set deletion rules. A common pattern: transition to Standard-IA after 30 days, Glacier after 90 days, delete after 365 days.

Bucket policies define bucket-level access. IAM policies control principal access. ACLs provide legacy object-level control. Pre-signed URLs grant temporary, time-limited access to private objects for specific users or applications.

  • SSE-S3: AWS manages all keys. Simplest, no overhead.
  • SSE-KMS: You control keys in AWS Key Management Service. CloudTrail logs all usage for compliance.
  • SSE-C: You provide a key with every request. Highest control, your responsibility to manage key lifecycle.

Versioning keeps multiple versions of objects — great for accidental overwrites. Cross-Region Replication (CRR) and Same-Region Replication (SRR) automate object copies for disaster recovery and data locality.

Persistent block-level storage attached to EC2 instances in the same AZ. EBS volumes are durable but AZ-bound — you cannot attach an EBS volume across AZs.

TypeUse CasePerformance
gp2/gp3General purpose, most workloads3–16k IOPS
io1/io2High I/O databases, transaction workloadsUp to 64k IOPS
st1Throughput-optimized HDD for big data500 Mbps
sc1Cold HDD for archival, infrequent access250 Mbps

Point-in-time backups stored in S3 — but you can’t access them as S3 objects directly. Snapshots are incremental; only changed blocks are stored.

Managed file storage that mounts on multiple EC2 instances simultaneously. EFS scales automatically as files are added or removed, and spans multiple AZs for high availability.

  • General Purpose: Default for most workloads, lowest latency.
  • Max I/O: Optimized for highly parallelized workloads, higher latencies but better throughput.
  • Standard: For frequently accessed files.
  • Infrequent Access: Lower cost, slightly higher retrieval latency — use lifecycle policies to auto-transition.

Low-cost archival storage for compliance and long-term retention. Glacier Flexible is for infrequent retrieval; Deep Archive is for “never touch again” backups.

OptionTimeUse Case
Expedited1–5 minutesUrgent retrieval
Standard3–5 hoursNormal archival
Bulk5–12 hoursCost-optimized, batch jobs
DimensionS3EBSEFSGlacier
TypeObjectBlockFileArchive
AccessWeb APIEC2 volumeMountRetrieval request
ScopeRegional/globalAZ-lockedMulti-AZRegional
Durability99.999999999%99.8–99.9%High99.999999999%
Cost$$$$$ (multi-AZ)$ (archival)
Use CaseBackups, data lake, CDNBoot volumes, databasesShared storage, NFSLong-term retention