How Do AWS EC2 Standard C-Series and NVMe Instances Differ?
Amazon EC2 compute-optimized C-series instances come in two primary storage configurations, consisting of standard EBS-only instances and instances equipped with local NVMe SSD instance store volumes. While both variants deliver identical vCPU and memory ratios designed for compute-intensive workloads, they differ fundamentally in storage architecture, data persistence, input/output latency, and hourly pricing. Standard instances rely entirely on network-attached Amazon Elastic Block Store for storage, whereas NVMe-equipped instances, denoted with a d suffix in their instance type name, include physically attached solid-state drives on the host server. Choosing between them depends on whether an application requires persistent block storage or ultra-fast, temporary scratch space.
Naming Conventions in the C-Series Family
Amazon Web Services uses a structured naming convention to
distinguish between standard compute-optimized instances and those with
local NVMe storage. In any generation and processor architecture, a
standard instance name consists of the family letter, generation number,
optional processor identifier, and size. When local NVMe storage is
included, the letter d is appended before the dot and size
designation.
- Intel-based instances:
c5.largevs.c5d.large,c6i.xlargevs.c6id.xlarge,c7i.2xlargevs.c7id.2xlarge - AMD-based instances:
c5a.largevs.c5ad.large,c6a.xlargevs.c6ad.xlarge - AWS Graviton-based instances:
c6g.largevs.c6gd.large,c7g.xlargevs.c7gd.xlarge
Storage Architecture and Performance
The core difference between these two instance variants lies in how storage is connected to the underlying hypervisor and virtual machine.
Standard C-Series Instances (EBS-Only)
Standard C-series instances (c6i, c7g,
c6a, etc.) are EBS-only. They do not have any physical
disks exclusively allocated to them on the local host hardware. Instead,
all storage volumes—including the root volume and any attached data
volumes—are provisioned over the network using Amazon Elastic Block
Store (EBS).
Although these instances use dedicated EBS bandwidth (often enhanced
via the AWS Nitro System) to prevent storage traffic from competing with
general network traffic, every read and write operation still traverses
the internal AWS network fabric. Consequently, latency typically starts
around a fraction of a millisecond to a few milliseconds depending on
the EBS volume type (gp3, io2 Block Express),
and IOPS and throughput are governed by both the instance's maximum EBS
bandwidth limits and the provisioned limits of the attached EBS
volumes.
C-Series Instances with Local NVMe Storage
C-series instances with the d suffix (c6id,
c7gd, c5ad, etc.) still support EBS volumes
for persistent storage and root devices, but they also include one or
more Non-Volatile Memory Express (NVMe) SSDs physically attached to the
host server's PCIe bus.
Because the NVMe drives reside directly on the physical host, I/O operations bypass the network stack completely. This provides:
- Sub-millisecond latency: Significantly lower and more consistent read/write latency compared to network-attached block storage.
- High random IOPS: Capable of delivering hundreds of thousands of IOPS directly out of the box without provisioning extra storage capacity or paying per-IOPS fees.
- Proportional scaling: The capacity and number of local NVMe drives scale linearly with the instance size. If a single unit of instance size provides a specific capacity \(C_{\text{base}}\) and throughput \(T_{\text{base}}\), scaling up by a multiplier \(k\) generally yields a total local storage capacity of \(C_{\text{total}} = k \cdot C_{\text{base}}\).
Data Persistence and Lifecycle
Understanding the lifecycle of data on local NVMe storage versus EBS is critical for preventing accidental data loss.
Ephemeral Nature of Local NVMe Instance Store
The local NVMe storage attached to d variant instances
is an EC2 Instance Store, which provides temporary
(ephemeral) block-level storage. Data written to local NVMe drives
persists only during the lifecycle of the running instance under
specific conditions:
- Instance Reboot: Data survives if
the guest operating system reboots (
sudo rebootor via the RebootInstance API). - Instance Stop or Hibernate: Data is
permanently lost when the instance is stopped
(
StopInstancesAPI), because starting the instance again usually migrates it to a new physical host. - Instance Termination: Data is permanently lost upon termination.
- Hardware Failure: Data is lost if the underlying physical drive or host server fails.
Persistent Nature of EBS on Standard Instances
Because standard C-series instances store all data on Amazon EBS, the storage lifecycle is decoupled from the compute instance lifecycle:
- Stop and Start: Stopping a standard C-series instance preserves all data on the attached EBS volumes.
- Snapshots and Backups: EBS volumes support native point-in-time snapshots to Amazon S3, automated lifecycle policies, and detached volume reattachment to other instances.
- Built-in Redundancy: EBS volumes automatically replicate data within their Availability Zone to protect against single-drive hardware failures.
Security and Encryption
Both standard and NVMe-equipped C-series instances built on the AWS Nitro System incorporate hardware-level security, though key management differs:
- Local NVMe Encryption: On Nitro-based
dinstances, all local NVMe instance store volumes are automatically encrypted using an XTS-AES-256 block cipher implemented in a dedicated hardware module on the Nitro card. The encryption keys are generated randomly per drive when the instance boots and are destroyed permanently when the instance stops or terminates. You cannot manage, export, or rotate these keys via AWS KMS. - EBS Encryption: On both standard and
dinstances, EBS volumes can be encrypted using AWS Key Management Service (KMS) keys, allowing full control over customer-managed keys (CMKs), key rotation, and IAM access policies.
Pricing and Total Cost of Ownership
On an hourly compute basis, C-series instances with local NVMe storage carry a higher on-demand, Reserved Instance, and Spot price than their standard counterparts of the same size. For a running duration \(t\), the total cost \(Cost_{\text{standard}}\) of a standard instance compared to \(Cost_{\text{nvme}}\) can be modeled as:
\[Cost_{\text{standard}}(t) = R_{\text{compute}} \cdot t + C_{\text{EBS\_GB}} \cdot S_{\text{GB}} \cdot t + C_{\text{IOPS}} \cdot I_{\text{prov}} \cdot t\]
\[Cost_{\text{nvme}}(t) = R_{\text{compute\_d}} \cdot t + C_{\text{EBS\_root}} \cdot S_{\text{root}} \cdot t\]
Where:
- \(R_{\text{compute}}\) and \(R_{\text{compute\_d}}\) are the hourly compute rates (\(R_{\text{compute\_d}} > R_{\text{compute}}\)).
- \(C_{\text{EBS\_GB}}\) and \(C_{\text{IOPS}}\) represent the extra costs
of provisioning high-capacity, high-IOPS EBS volumes (
io2or high-performancegp3).
If a workload requires high temporary IOPS and throughput, a
d instance is often more cost-effective than a standard
C-series instance paired with expensive provisioned-IOPS EBS volumes,
because the local NVMe IOPS and storage capacity are bundled directly
into the hourly instance price.
Feature Comparison Summary
| Feature | Standard C-Series (e.g., c6i,
c7g) |
NVMe C-Series (e.g., c6id,
c7gd) |
|---|---|---|
| Primary Storage Type | Amazon EBS only | Amazon EBS + Local NVMe SSD |
| Storage Attachment | Network-attached | Network (EBS) + PCIe Host Bus (NVMe) |
| NVMe Data Persistence | N/A (EBS persists across stops) | Ephemeral (lost on stop or termination) |
| Disk I/O Latency | Low (sub-millisecond to single-digit ms) | Ultra-low (microseconds) |
| Hourly Compute Rate | Lower baseline rate | Higher baseline rate (includes local SSD) |
| Hardware Encryption | Optional via AWS KMS (on EBS) | Always-on ephemeral hardware encryption |
| Dynamic Storage Scaling | Can resize EBS volumes independently | Fixed NVMe size per instance type |
Ideal Use Cases for Each Variant
When to Choose Standard C-Series Instances
- Stateless microservices and web servers: Workloads where compute is the bottleneck and local disk I/O is minimal.
- Containerized workloads with remote state: Kubernetes (EKS) or ECS nodes where state is stored in managed databases (RDS, DynamoDB) or shared filesystems (EFS).
- Instances that stop and start frequently: Development environments or batch servers that are stopped outside of business hours to save compute costs while preserving disk state.
When to Choose C-Series Instances with Local NVMe Storage
- High-performance scratch space and video encoding: Media transcoding, scientific modeling, and EDA workloads that generate large intermediate files requiring rapid read/write cycles before uploading final outputs to Amazon S3.
- Distributed caches and replicated NoSQL databases: Self-managed clusters (such as Redis, Aerospike, or Apache Cassandra) that handle data replication at the application layer across multiple Availability Zones and benefit from ultra-low disk latency.
- Big data shuffle and spill operations: Apache Spark, Hadoop, or Presto nodes that frequently spill large intermediate query datasets to disk during complex joins and aggregations.
- CI/CD build agents: Ephemeral build runners that check out large repositories, compile artifacts with heavy disk I/O, push images to a registry, and terminate immediately afterward.