SAP-C02
Deep Dive
The SAP-C02 evaluates picking the right storage for each workload, including S3's advanced features (classes, replication, Object Lambda), EBS types, and when to use EFS vs FSx for shared file systems.
Contents
| Class | Retrieval latency | Storage cost | Best for |
|---|---|---|---|
| S3 Standard | ms | $$$$ | Frequently accessed data. Websites, active apps. |
| S3 Standard-IA | ms | $$$ | Infrequent access but needs fast retrieval. Recent backups. |
| S3 One Zone-IA | ms | $$ | Infrequent access + tolerant of AZ loss. Data copies. 20% cheaper than Standard-IA. |
| S3 Intelligent-Tiering | ms – min | $$$ | Unpredictable access patterns. Automatically moves between tiers with no overhead. |
| Glacier Instant Retrieval | ms | $$ | Medical records, compliance data rarely accessed but needing ms latency. |
| Glacier Flexible Retrieval | 1–12h (Expedited: min) | $ | Archives and backups with occasional access. Expedited for emergencies. |
| Glacier Deep Archive | 12–48h | $ (cheapest) | Long-term archiving (7-10 years). Compliance, historical data never accessed. |
| S3 Reduced Redundancy (legacy) | ms | $$$ | DEPRECATED — use Standard-IA. Only mentioned in older questions. |
S3 Lifecycle Policies
Automatic transitions between classes and object expiration based on time or versions.
S3 Replication
S3 Object Lambda — transforms data on the fly
S3 Object Lambda intercepts S3 GET requests and calls a Lambda function to transform the object before returning it to the requester. No separate copies of the data. Use cases: redacting PII (card number → ****), converting formats (XML → JSON), enriching with DynamoDB metadata, resizing images on the fly.
S3 Transfer Acceleration
Speeds up uploads to S3 using CloudFront's edge locations. The client uploads to the nearest edge, then the data travels over the AWS backbone (faster than the public internet) to S3.
S3 Multipart Upload
Splits large objects into parts uploaded in parallel. Recommended for files over 100 MB, required for files over 5 GB.
S3 prefix performance — using many prefixes isn't an anti-pattern
S3 automatically scales to 3,500 PUT/COPY/POST/DELETE and 5,500 GET/HEAD requests per second PER PREFIX. If you have a bucket with millions of objects and need higher throughput, spreading objects across multiple prefixes gives N × 3,500/5,500 req/sec. The limit is per prefix, not per bucket.
| Type | Max IOPS | Max throughput | Best for |
|---|---|---|---|
| gp3 (general SSD) | 16,000 IOPS (independent of size) | 1,000 MB/s | Boot volumes, general apps, dev/test. Replaces gp2. IOPS/throughput independently configurable. |
| gp2 (legacy SSD) | 3 IOPS/GB, max 16,000 | 250 MB/s | Legacy. Migrate to gp3 for lower cost and more flexibility. |
| io2 Block Express | 256,000 IOPS | 4,000 MB/s | Critical databases needing sub-ms latency and high durability (99.9999%). |
| io1/io2 | 64,000 IOPS | 1,000 MB/s | Oracle, SQL Server, Cassandra DBs with high IOPS. Provisioned IOPS independent of size. |
| st1 (throughput HDD) | 500 IOPS | 500 MB/s | Data warehouses, log processing, streaming. High sequential throughput, low cost. |
| sc1 (cold HDD) | 250 IOPS | 250 MB/s | Infrequently accessed data. Cheapest EBS option. Cold backups. |
EBS Multi-Attach — io1/io2 only
EBS Multi-Attach lets an io1 or io2 volume attach to up to 16 EC2 instances in the SAME AZ simultaneously. The application must manage write concurrency (e.g., clustering with Oracle RAC). It doesn't work for sharing files between instances — use EFS for that.
Key features
EFS vs EBS — when to use each
Do multiple EC2 instances access the same filesystem?
→ EFS — native multi-instance sharing
Windows OS or Windows applications?
→ EBS or FSx for Windows (EFS is Linux only)
Boot volume for an EC2 instance?
→ EBS — EFS can't be a boot volume
Maximum disk performance (OLTP database)?
→ EBS io2 — lower latency and higher IOPS than EFS
Home directories shared across multiple AZs?
→ EFS — accessible from any AZ in the region
ECS Fargate containers with shared state?
→ EFS — the only shared storage option for Fargate
FSx for Windows File Server
Managed SMB/CIFS, natively Windows-compatible. Active Directory integration. For Windows apps requiring file shares (DFS, SQL Server log shipping, Windows home directories).
FSx for Lustre
High-performance file system for HPC, ML training and video processing. Native S3 integration for lazy loading of data.
FSx for NetApp ONTAP
Managed ONTAP features on AWS: NFS, SMB, iSCSI. Migrate on-premises NetApp workloads with no changes. Native Multi-AZ.
FSx for OpenZFS
Managed OpenZFS. Highly available NFS v3/v4 with native snapshotting, compression and deduplication. For Linux/Unix workloads using ZFS.
Unstructured objects with no directory structure (images, backups, data lake)?
→ S3
Disk for a single EC2 instance (OS, database, app data)?
→ EBS (gp3 for general, io2 for high IOPS)
Shared NFS filesystem across multiple Linux EC2/ECS?
→ EFS
SMB/CIFS for Windows apps or Active Directory?
→ FSx for Windows File Server
HPC, ML training, maximum filesystem throughput?
→ FSx for Lustre
Migrating on-premises NetApp ONTAP workloads to AWS?
→ FSx for NetApp ONTAP
Archiving very infrequently accessed data (7-10 years)?
→ S3 Glacier Deep Archive
Trap: "EFS works with Windows EC2"
Reality: FALSE. EFS only supports Linux/Unix (NFS protocol). For shared file systems on Windows, use FSx for Windows File Server.
Trap: "S3 Standard-IA charges for access — never use it for frequent data"
Reality: It does charge for retrieval, that's correct, but Standard-IA is perfect for data accessed less than once a month. If accessed more often, Standard is cheaper overall.
Trap: "EBS can be shared between instances in different AZs"
Reality: FALSE. EBS is zonal — it can only attach to instances in the same AZ. For sharing across AZs, use EFS. For sharing between instances in the same AZ, use EBS Multi-Attach (io1/io2 only).
Trap: "Glacier Deep Archive is the same as Glacier but just cheaper on storage"
Reality: The key difference is retrieval time: Glacier Instant Retrieval = ms, Glacier Flexible = 1-12h, Glacier Deep Archive = 12-48h. It's not just a price difference — it's a functional one.
Did you get this topic?
Test what you just learned
A company has a video rendering application running on 500 Linux EC2 instances in an Auto Scaling Group. All instances need simultaneous read/write access to the same video project files (several TB). Instances are frequently created and destroyed. What is the most appropriate storage solution?
Put what you learned to the test with original SAP-C02 exam questions.
Start SAP-C02 mock examUnlimited mock exams with the Pro plan
Log in to track your progress.