Skip to content

AxonOps — AI-Native Control Plane for Open Source Data Platforms

Cloud Storage Strategy

Storage selection is a fundamental architectural decision for Cassandra in cloud environments. This guide analyzes ephemeral versus persistent storage across cost, performance, durability, and operational dimensions.


Ephemeral storage refers to disks physically attached to the host machine. Data persists only while the instance is running.

Ephemeral instance store across instance lifecycle statesEphemeral instance store across instance lifecycle statesEC2 InstanceInstance LifecycleNVMe SSD(Instance Store)CassandraDataRunningStoppedTerminatedData exists ONLY whileinstance is runningNo survival across stop/terminatestored onstop(data lost)terminate(data lost)terminate

AWS provides multiple storage-optimized instance families with different processor architectures:

Instance FamilyProcessorvCPUs (max)RAM (max)NVMe Storage (max)Notes
I8gGraviton4 (ARM)1921,536 GiB45 TBLatest generation, best performance
I8geGraviton4 (ARM)1921,536 GiB120 TBExtended storage variant
I7iIntel Emerald Rapids1921,536 GiB45 TBLatest Intel, 50% better than I4i
I7ieIntel Emerald Rapids1921,536 GiB120 TBExtended storage variant
I4iIntel Ice Lake1281,024 GiB30 TBPrevious generation Intel
I4gGraviton2 (ARM)64512 GiB15 TBPrevious generation ARM
Im4gnGraviton2 (ARM)64256 GiB30 TBHigher storage density per vCPU
Is4genGraviton2 (ARM)96192 GiB30 TBLowest cost per TB

Processor selection:

ArchitectureBest ForPrice-Performance
Graviton (ARM)Native ARM workloads, cost optimization20-40% better
Intelx86 compatibility, specific instruction setsBaseline
AMD (via R-series)General purpose with EBSCompetitive

GCP offers Local SSD through -lssd suffix on machine types:

Machine SeriesProcessorvCPUs (max)RAM (max)Local SSD (max)Notes
C4D-lssdAMD EPYC Genoa3843 TB12 TBLatest AMD, 55% more QPS vs C3D
C4-lssdIntel Sapphire Rapids1921.5 TB12 TBLatest Intel
C4A-lssdAmpere Altra (ARM)72576 GiB6 TBARM-based option
C3D-lssdAMD EPYC Genoa3602,880 GiB6 TBHigh vCPU count
C3-lssdIntel Sapphire Rapids1761,408 GiB6 TBIntel alternative
N2DAMD EPYC Milan224896 GiB9 TBGeneral purpose

Local SSD disks are 375 GiB each, attached in predetermined quantities per machine type.

Azure L-series provides storage-optimized instances:

VM SeriesProcessorvCPUs (max)RAM (max)NVMe Storage (max)Notes
Lsv3Intel Ice Lake80640 GiB19.2 TB (10×1.92TB)Intel-based, default encryption
Lasv3AMD EPYC 7763v80640 GiB19.2 TB (10×1.92TB)AMD-based alternative
Lsv2AMD EPYC 755180640 GiB19.2 TBPrevious generation

One 1.92TB NVMe device per 8 vCPUs. NVMe drives encrypted by default using hardware-based encryption.

Persistent storage survives instance lifecycle events. Data is stored on network-attached block devices.

Network-attached persistent volume across instance lifecycle statesNetwork-attached persistent volume across instance lifecycle statesInstanceNetwork StorageInstance LifecycleCassandraEBS Volume(Persistent)RunningStoppedTerminated*Data survives stop/startCan be detached and reattachedTerminated: persists if DeleteOnTermination=falsenetwork I/Ostop(data persists)start(data persists)

Cloud offerings:

ProviderStorage TypesPerformance Tiers
AWSEBS (gp3, io2, io2 Block Express)3,000 - 256,000 IOPS
GCPPersistent Disk (pd-ssd, pd-extreme)15,000 - 120,000 IOPS
AzureManaged Disks (Premium SSD, Ultra Disk)5,000 - 160,000 IOPS

DimensionEphemeral StoragePersistent Storage
CostIncluded in instance priceAdditional per-GB/IOPS charge
PerformanceLowest latency (local NVMe)Higher latency (network hop)
IOPSVery high (device-limited)Provisioned (pay for what you need)
DurabilityNone (data lost on stop)High (replication within AZ)
CapacityFixed per instance typeFlexible (resize online)
PortabilityCannot detach/reattachCan move between instances
SnapshotsNot availableNative snapshot support
PatchingReplace instanceIn-place updates

With ephemeral storage, storage is bundled with compute. The cost equation is straightforward:

Total Cost = Instance Cost × Hours

Example instances (US-East-1, approximate):

InstanceProcessorvCPUsRAMNVMeOn-demand/hrMonthly (OD)Monthly (1yr RI)
i4g.2xlargeGraviton2864 GiB1.875 TB~$0.53~$380~$240
i4i.2xlargeIntel Ice Lake864 GiB1.875 TB~$0.62~$450~$280
i8g.2xlargeGraviton4864 GiB1.875 TB~$0.55~$400~$250
i7i.2xlargeIntel Emerald Rapids864 GiB1.875 TB~$0.64~$460~$290

Graviton-based instances typically provide 15-30% cost savings over equivalent Intel instances.

Persistent storage separates compute and storage costs:

Total Cost = Instance Cost × Hours + Storage Cost + IOPS Cost

Example (AWS m5.2xlarge + gp3):

ComponentSpecificationCost (US-East-1)
Instance8 vCPU, 32GB RAM~$0.384/hour
Storage2TB gp3~$160/month
IOPS6,000 IOPS~$60/month
Throughput500 MB/s~$40/month
Monthly (on-demand)~$536
Monthly (1yr reserved)~$400
3-Node Cluster Monthly Cost Comparison (Approximate)3-Node Cluster Monthly Cost Comparison (Approximate)Ephemeral - Graviton (i4g.2xlarge × 3)Ephemeral - Intel (i4i.2xlarge × 3)Persistent (m7g.2xlarge + 2TB gp3 × 3)On-demand: ~$1,140/moReserved (1yr): ~$720/moOn-demand: ~$1,350/moReserved (1yr): ~$840/moOn-demand: ~$1,400/moReserved (1yr): ~$1,050/moCosts are approximate and vary by regionReserved pricing assumes 1-year term, no upfrontDoes not include data transfer or backup storageGraviton instances provide 15-30% cost savings

Key cost considerations:

FactorEphemeral AdvantagePersistent Advantage
Storage includedNo additional storage cost-
Right-sizing-Pay only for storage needed
Scaling storageMust change instance typeAdd/resize volumes independently
Backup storageMust use external backupSnapshots (but cost extra)

Storage Latency CharacteristicsStorage Latency CharacteristicsEphemeral NVMeNetwork SSD (gp3/io2)High-Perf Network (io2 BE/Ultra)Read: 50-100μsWrite: 20-50μsRead: 200-500μsWrite: 200-500μsRead: 100-200μsWrite: 100-200μsLatency varies by:- Instance type and generation- Storage tier and provisioned IOPS- Workload characteristics- Network conditions
Storage TypeRandom Read IOPSSequential ThroughputNotes
AWS I8g (Graviton4 NVMe)~400,000+~10 GB/s65% better than I4g
AWS I7i (Intel NVMe)~350,000+~10 GB/s50% better than I4i
AWS I4i (Intel Ice Lake NVMe)~250,000~8 GB/sPer 1.875TB drive
AWS I4g (Graviton2 NVMe)~200,000~7 GB/sPer 1.875TB drive
GCP C4D (Local SSD)~100,000+~4 GB/sPer 3TB attachment
Azure Lsv3 (NVMe)~400,000~4.75 GB/sPer 1.92TB drive
AWS gp3 (baseline)3,000125 MB/sNetwork-attached
AWS gp3 (provisioned)16,0001,000 MB/sAdditional cost
AWS io2 Block Express256,0004,000 MB/sHighest network tier
Workload PatternEphemeral NVMePersistent SSD
Write-heavyExcellent (local append)Good (network latency overhead)
Read-heavy (cached)ExcellentExcellent (page cache)
Read-heavy (disk)ExcellentGood to Excellent (depends on tier)
MixedExcellentGood
CompactionExcellentCan cause I/O contention

Practical performance difference:

For most Cassandra workloads with proper sizing, the performance gap is smaller than raw specifications suggest:

  1. Page cache effect: Hot data served from memory, masking storage latency
  2. Compaction scheduling: Background I/O can be tuned to avoid impact
  3. Modern network storage: io2 Block Express and Ultra Disk approach local NVMe performance

Ephemeral storage provides zero durability guarantees. Data is lost when:

  • Instance is stopped (not just rebooted)
  • Instance is terminated
  • Underlying hardware fails
  • Host is retired for maintenance
Data Loss Scenarios - Ephemeral StorageData Loss Scenarios - Ephemeral StorageRunning Cluster (RF=3)After Node 1 Stop/FailNode 1✓ DataNode 2✓ DataNode 3✓ DataNode 1✗ Data LostNode 2✓ DataNode 3✓ DataWith RF=3, data survives on remaining nodesNode 1 must bootstrap from peersFull streaming requiredinstancestop/fail

Cassandra's replication provides durability across ephemeral storage:

Replication FactorNodes That Can FailData Safety
RF=10No redundancy - data loss on any failure
RF=21Single node failure tolerance
RF=32Recommended minimum for production
RF=4+N-2Higher availability, increased storage cost

Requirements for ephemeral storage safety:

# Minimum requirements for ephemeral storage durability
replication_factor: 3 # Must be >= 3
consistency_level_write: LOCAL_QUORUM # Ensures multiple copies
rack_awareness: enabled # Spread across failure domains

RF < 3 with Ephemeral Storage

Operating with RF < 3 on ephemeral storage creates significant data loss risk. A single instance stop or hardware failure results in permanent data loss for affected partitions.

Ephemeral storage requires robust backup strategies since provider snapshots are not available.

AxonOps Backup Architecture for Ephemeral StorageAxonOps Backup Architecture for Ephemeral StorageCassandra ClusterNode 1Cassandra JVMNode 2Cassandra JVMNode 3Cassandra JVMBackup StorageSSTablesaxon-agentaxonopsjava agentSSTablesaxon-agentaxonopsjava agentSSTablesaxon-agentaxonopsjava agentAWS S3Azure BlobGCSLocal/SFTPbackup

AxonOps backup components:

ComponentLocationFunction
axonops java agentInside Cassandra JVMCollects metrics, triggers snapshots
axon-agentEach Cassandra hostUploads SSTables to object storage, executes commands
AxonOps ServiceCentral serverSchedules backups, orchestrates restores, stores metadata
Object StorageS3/GCS/Azure BlobStores backup data with cross-region replication

Backup frequency recommendations:

Data Change RateBackup FrequencyPoint-in-Time Granularity
Low (< 1GB/hour)Every 6-12 hoursDaily
Medium (1-10GB/hour)Every 1-4 hoursHourly
High (> 10GB/hour)Every 15-60 minutesSub-hourly

ScenarioEphemeral StoragePersistent Storage
Single node failureStream from peers or restore from backupReattach volume or restore snapshot
Multiple node failureRestore from backupRestore from snapshots
Full cluster lossRestore from backupRestore from snapshots
Datacenter lossCross-DC replication + backupCross-DC replication + snapshots
Node Recovery Time ComparisonNode Recovery Time ComparisonEphemeral: Stream from PeersEphemeral: Restore from BackupPersistent: Reattach VolumePersistent: Snapshot RestoreDuration: Hours to DaysFactors:- Data size- Network bandwidth- Cluster loadDuration: Minutes to HoursFactors:- Backup location- Object store throughput- Data sizeDuration: MinutesFactors:- Volume attachment time- Cassandra startupDuration: Minutes to HoursFactors:- Snapshot size- Volume creation time

AxonOps provides accelerated restore capabilities for ephemeral storage environments:

Key capabilities:

FeatureBenefit
Incremental backupsReduces backup size and duration
Parallel restoreStreams data to multiple nodes simultaneously
Object store integrationS3, GCS, Azure Blob with multipart download
Restore orchestrationAutomated multi-node restore with proper sequencing
Point-in-time recoveryRestore to specific timestamp
Restore stages across AxonOps, the object store, and the target nodesRestore stages across AxonOps, the object store, and the target nodesIdentify restore pointPrepare target nodesVerify data integrityStart Cassandra serviceValidate cluster healthLocate backup filesInitiate parallel downloadReceive backup dataWrite to data directoriesRestore commitlog (if PITR)AxonOpsObject StoreTarget Nodes

Restore time estimates:

Data Size (per node)Network ThroughputEstimated Restore Time
100 GB1 Gbps~15 minutes
500 GB1 Gbps~70 minutes
1 TB1 Gbps~140 minutes
1 TB10 Gbps~15 minutes

Storage choice significantly impacts patching and upgrade procedures.

With persistent storage, patches are applied to running nodes using rolling restart:

In-Place Patching (Persistent Storage)In-Place Patching (Persistent Storage)Drain Node 1Stop CassandraApply OS/JVM/Cassandra patchesStart CassandraRepeat for each nodeWait for node to rejoinDrain Node 2Stop CassandraApply patchesStart CassandraWait for node to rejoinDrain Node 3Stop CassandraApply patchesStart CassandraWait for node to rejoinValidate cluster health

Procedure:

  1. Disable auto-bootstrap (if applicable)
  2. Run nodetool drain on target node
  3. Stop Cassandra service
  4. Apply updates (OS packages, JVM, Cassandra)
  5. Start Cassandra service
  6. Wait for node to rejoin and become healthy
  7. Repeat for next node

Advantages:

  • No data movement required
  • Minimal cluster impact
  • Rollback by downgrading packages

Disadvantages:

  • Configuration drift possible
  • Manual intervention required
  • Slower for large clusters

Ephemeral Storage: Immutable Infrastructure

Section titled “Ephemeral Storage: Immutable Infrastructure”

With ephemeral storage, patching means replacing nodes with new instances from updated images:

Immutable Infrastructure Patching (Ephemeral Storage)Immutable Infrastructure Patching (Ephemeral Storage)Current StateBuild PipelineUpdated ClusterNode 1 (v1.0)Node 2 (v1.0)Node 3 (v1.0)Base AMI/ImageOS UpdatesJVM UpdatesCassandra UpdatesNew AMI v1.1Node 1 (v1.1)Node 2 (v1.1)Node 3 (v1.1)Each node replaced with new instanceData restored from backup or streamed from peersreplacereplacereplace

Procedure:

  1. Build new base image with updates
  2. For each node (one at a time): a. Launch new instance with updated image b. Either:
    • Stream data from existing nodes (slower, uses cluster resources)
    • Restore from recent backup (faster, requires good backup strategy) c. Decommission old node d. Wait for cluster to stabilize
  3. Validate cluster health

Advantages:

  • Guaranteed consistent configuration
  • No configuration drift
  • Clean state (no accumulated cruft)
  • Tested, reproducible deployments
  • Infrastructure-as-code friendly

Disadvantages:

  • Requires data restoration for each node
  • More time-consuming per node
  • Requires robust backup/restore capability
AspectIn-Place (Persistent)Immutable (Ephemeral)
Time per nodeMinutesMinutes to hours (data restore)
Data movementNoneFull (stream or restore)
Configuration consistencyManual enforcementGuaranteed by image
Rollback complexityMedium (package downgrade)Low (use previous image)
Automation complexityMediumHigh (but well-defined)
Required infrastructurePackage repositoryImage builder, backup system
Section titled “Recommended Patching Workflow for Ephemeral Storage”
Ephemeral Storage Patching WorkflowEphemeral Storage Patching WorkflowTrigger on security updateor scheduled maintenancePull base imageApply OS updatesApply JVM updatesApply Cassandra updatesRun validation testsPublish new imageCreate fresh backupVerify backup integritySelect first nodeLaunch replacement nodewith new imageRestore data from backup(or stream from peers)Wait for restore completionStart CassandraWait for node to joinRun health checksDecommission old nodeTerminate old instanceWait for cluster stabilizationSelect next nodemore nodes?yesFinal cluster validationUpdate documentationBuild SystemAxonOpsOrchestration

Ephemeral storage is appropriate when:

ConditionRationale
Performance is criticalLocal NVMe provides lowest latency
Cost optimization is priorityStorage included in instance price
Robust backup system existsAxonOps or similar provides data protection
Immutable infrastructure modelOrganization embraces infrastructure-as-code
Cluster size is moderateStreaming/restore manageable
RF >= 3 is acceptableReplication provides durability

Persistent storage is appropriate when:

ConditionRationale
Simplicity is priorityNative snapshots, familiar operations
Limited backup infrastructureRelies on provider snapshots
Traditional operations modelIn-place patching preferred
Independent scaling neededStorage grows independently of compute
Compliance requires snapshotsAudit trail via native snapshots
Large nodes (10TB+)Restore time becomes prohibitive
Storage Selection Decision TreeStorage Selection Decision TreePerformance requirements?Ultra-low latency requiredStandard latency acceptableConsider EphemeralBackup infrastructure?AxonOps or equivalentLimitedOperations model?Immutable/IaCTraditionalEphemeral RecommendedEither viablePersistent Recommended

Some organizations use a hybrid approach:

TierStorage TypeUse Case
Production (performance-critical)Ephemeral NVMeLowest latency workloads
Production (standard)Persistent SSDBalanced workloads
Development/TestEphemeral (smaller instances)Cost optimization
DR/Backup clusterPersistentSimplified recovery

  • Replication factor >= 3 configured for all keyspaces
  • Rack awareness enabled and properly configured
  • Backup solution (AxonOps) deployed and tested
  • Backup schedule defined based on data change rate
  • Restore procedure documented and tested
  • Image build pipeline established
  • Node replacement runbook created
  • Monitoring includes storage health alerts
  • DR plan includes full cluster restore scenario
  • Storage tier selected based on IOPS/throughput requirements
  • Snapshot schedule configured
  • Volume encryption enabled
  • DeleteOnTermination set appropriately
  • IOPS provisioning matches workload
  • Patching runbook created
  • Monitoring includes volume metrics
  • Cross-AZ or cross-region backup configured

RecommendationEphemeral StoragePersistent Storage
Best forPerformance-critical, cost-sensitive, modern opsSimplicity, traditional ops, compliance
Required infrastructureBackup system (AxonOps), image pipelineSnapshot configuration
Minimum RF3 (strongly recommended)2 (3 recommended)
Patching modelImmutable (replace nodes)In-place (rolling restart)
Recovery methodRestore from backupReattach volume or snapshot
Cost modelBundled with computePay separately for storage

Key takeaway: Ephemeral storage offers superior performance and cost efficiency but requires investment in backup infrastructure and operational automation. Persistent storage provides simpler operations at the cost of performance and flexibility.