NotesAmazon S3
Amazon S3
Object storage on AWS — buckets, storage classes, encryption, versioning, replication
Updated Sep 26, 2026
Amazon S3 Quick Notes
Basics
- Model: Object store (not a mountable disk). Objects live in buckets.
- Object size:
0 bytes→5 TB. - Bucket names: Globally unique; created in a Region.
- Structure: Flat; “folders” are prefixes (e.g.
images/). - High request rates: Use many prefixes — don’t create a bucket per customer as the first fix.
Storage Classes
Class: When to use
Standard: Hot, frequent access; short-lived staging
Standard-IA: Infrequent but immediate; ~30-day min
One Zone-IA: Infrequent + replaceable; single AZ
Intelligent-Tiering: Unknown / changing patterns; no retrieval fees for F/IA tiers
Glacier Instant: Archive with millisecond get (~quarterly access)
Glacier Flexible: Minutes–hours retrieval
Glacier Deep Archive: Cheapest; hours–days; ~180-day min
- Same 1 GB cost order (exam): S3 Standard < EFS < EBS (you pay for provisioned EBS GB).
Lifecycle
- Actions: Transition and/or expiration rules (prefix/tag filters allowed).
- Invalid transitions: One Zone-IA → Standard-IA; Intelligent-Tiering → Standard.
- Snow → archive: Snowball jobs target an S3 bucket, then lifecycle to Deep Archive (not a Glacier vault directly).
Versioning & MFA Delete
- States: Disabled → Enabled → Suspended (cannot fully disable once enabled).
- Simple delete: Creates a delete marker (prior versions remain).
- MFA Delete: MFA required to change versioning state and permanently delete versions.
Encryption (SSE)
Method, Who holds keys, Notes
SSE-S3, S3, Default / AES256; least control
SSE-KMS, KMS, Audit + key policy + role separation
SSE-C, You, Bring key every request; AWS encrypts
Client-side, You, Encrypt before upload; strongest isolation
- Bucket Keys: Cut KMS API call volume/cost on high Put rates (not retroactive).
- Same key across Regions for CRR: Use a KMS multi-Region key.
Access Control
- Bucket policies: Same-account and cross-account; user-level + account-level.
- Object ownership trap: Uploader account owns the object by default (classic Redshift
UNLOADissue). - Block Public Access: Account/bucket guardrails against accidental public grants.
- Requester Pays: Requester pays for requests/download when enabled.
Replication
- SRR / CRR: Same Region / cross-Region. Versioning required on source and destination.
- Not retroactive: Use S3 Batch Replication and/or
aws s3 syncfor existing objects.
Object Lock (WORM)
- Compliance mode: Even root cannot shorten/delete until expiry.
- Governance mode: Privileged bypass with special permission.
- Legal hold: ON/OFF latch with no retention period.
- Vault Lock: Separate WORM control plane for Glacier vaults.
Performance Helpers
- Multipart upload: Prefer for objects typically ≥ 100 MB.
- Transfer Acceleration (S3TA): Edge-accelerated uploads. No S3TA fee if AWS decides it did not accelerate.
- Presigned URLs: Temporary access with the signer’s permissions.