ElastiCache Redis
What does zop.dev create for ElastiCache Redis?
zop.dev provisions an ElastiCache Redis cluster with its subnet group, parameter group and security group, wired into the VPC private tier with no public access path. Node type and replica count are the 2 settings that determine both resilience and monthly cost.
| Field | Value |
|---|---|
| Cloud | aws |
Amazon ElastiCache provides managed Redis for low-latency caching and session storage. zop.dev provisions the replication group with networking and an in-cluster DNS alias so services reach the cache by a stable Kubernetes service name.
A Redis replication group with an ExternalName alias
ElastiCache replication group (cluster mode on when num_node_groups > 1, otherwise single node group), subnet group, security group on port 6379, and a Kubernetes ExternalName service.
cache.m5.large default and node group sizing
node_type default cache.m5.large; replicas_per_node_group 1; num_node_groups 2; engine_version 6.2. Cluster mode adds multi-AZ, automatic failover, and at-rest encryption; 74 node types cataloged (m7g/m6g/m5/m4/t4g/t3/t2/r-series/c7gn).Standalone and replication-group deployment types
The provisioner API also supports standalone vs replication-group deployment types with a filterable 36-entry node-type catalog and 26 default regions.
Replicas do two different jobs
A read replica in ElastiCache serves read traffic and acts as a failover target, and those are different requirements that people conflate.
If you need failover, you need Multi-AZ with automatic failover enabled. A replica alone does not promote itself. If you need read throughput, replicas help only if your client is configured to use reader endpoints, which many are not by default.
Provisioning replicas for resilience and then pointing every client at the primary endpoint is the common outcome: you pay for the replica and get neither benefit.
Sizing is about memory, not CPU
Redis is single-threaded for command execution, so a larger node type mostly buys memory rather than throughput. The right size is driven by working-set size plus overhead for replication buffers and fragmentation, typically a meaningful margin above raw data size.
Undersizing produces evictions rather than errors, which is why a cache can be silently too
small for months. Evictions on CloudWatch is the metric that tells you.
The private-subnet default
The cluster lands in the VPC’s private tier with a security group scoped to it. There is no public access path, which is correct: Redis has no meaningful authentication story for internet exposure, and an internet-reachable Redis is one of the more reliably exploited misconfigurations.
What it costs when idle
ElastiCache bills per node-hour regardless of traffic. A cluster nobody connects to costs the same as a busy one, which is why the idle-cluster rule requires four separate signals before recommending removal. The cost is real, but so is the risk of deleting a cache something is about to need.