Skip to main content



Terraform module to provision an ElastiCache Redis Cluster



alarm_actionsAlarm action listlist(string)false
alarm_cpu_threshold_percentCPU threshold alarm levelnumberfalse
alarm_memory_threshold_bytesRam threshold alarm levelnumberfalse
apply_immediatelyApply changes immediatelyboolfalse
at_rest_encryption_enabledEnable encryption at restboolfalse
auth_tokenAuth token for password protecting redis, transit_encryption_enabled must be set to true. Password must be longer than 16 charsstringfalse
automatic_failover_enabledAutomatic failover (Not available for T1/T2 instances)boolfalse
availability_zonesAvailability zone IDslist(string)false
cloudwatch_metric_alarms_enabledBoolean flag to enable/disable CloudWatch metrics alarmsboolfalse
cluster_mode_enabledFlag to enable/disable creation of a native redis cluster. automatic_failover_enabled must be set to true. Only 1 cluster_mode block is allowedboolfalse
cluster_mode_num_node_groupsNumber of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modificationsnumberfalse
cluster_mode_replicas_per_node_groupNumber of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resourcenumberfalse
cluster_sizeNumber of nodes in cluster. Ignored when cluster_mode_enabled == truenumberfalse
dns_subdomainThe subdomain to use for the CNAME record. If not provided then the CNAME record will use
elasticache_subnet_group_nameSubnet group name for the ElastiCache instancestringfalse
engine_versionRedis engine versionstringfalse
familyRedis familystringfalse
final_snapshot_identifierThe name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.stringfalse
instance_typeElastic cache instance typestringfalse
kms_key_idThe ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. at_rest_encryption_enabled must be set to truestringfalse
maintenance_windowMaintenance windowstringfalse
multi_az_enabledMulti AZ (Automatic Failover must also be enabled. If Cluster Mode is enabled, Multi AZ is on by default, and this setting is ignored)boolfalse
notification_topic_arnNotification topic arnstringfalse
ok_actionsThe list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN)list(string)false
parameterA list of Redis parameters to apply. Note that parameters may differ from one Redis family to anotherlist(object({\n name = string\n value = string\n }))false
parameter_group_descriptionManaged by Terraformstringfalse
portRedis portnumberfalse
replication_group_idReplication group ID with the following constraints: \nA name must contain from 1 to 20 alphanumeric characters or hyphens. \n The first character must be a letter. \n A name cannot end with a hyphen or contain two consecutive hyphens.stringfalse
snapshot_arnsA single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. Example: arn:aws:s3:::my_bucket/snapshot1.rdblist(string)false
snapshot_nameThe name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource.stringfalse
snapshot_retention_limitThe number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them.numberfalse
snapshot_windowThe daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster.stringfalse
subnetsSubnet IDslist(string)false
transit_encryption_enabledSet true to enable encryption in transit. Forced true if var.auth_token is set.\nIf this is enabled, use the following guide to access redis.\nboolfalse
vpc_idVPC IDstringtrue
writeConnectionSecretToRefThe secret which the cloud resource connection will be written towriteConnectionSecretToReffalse
zone_idRoute53 DNS Zone ID as list of string (0 or 1 items). If empty, no custom DNS name will be published.\nIf the list contains a single Zone ID, a custom DNS name will be pulished in that zone.\nCan also be a plain string, but that use is DEPRECATED because of Terraform issues.\nanyfalse


nameThe secret name which the cloud resource connection will be written tostringtrue
namespaceThe secret namespace which the cloud resource connection will be written tostringfalse