Terraform module for provisioning an Elasticache Redis resources.
module "redis" {
source = "dare-global/elasticache-redis/aws"
version = "1.X.X"
name_prefix = "redis-basic"
num_cache_clusters = 2
engine_version = "7.0"
snapshot_retention_limit = 7
automatic_failover_enabled = true
multi_az_enabled = true
at_rest_encryption_enabled = true
transit_encryption_enabled = true
auth_token = "1234567890asdfghjkl"
apply_immediately = true
family = "redis7"
description = "Elasticache redis."
subnet_ids = data.aws_subnets.all.ids
vpc_id = data.aws_vpc.default.id
}
Name | Version |
---|---|
terraform | >= 1.3.0 |
aws | >= 5.28.0 |
random | >= 3.4.3 |
Name | Version |
---|---|
aws | >= 5.28.0 |
random | >= 3.4.3 |
No modules.
Name | Type |
---|---|
aws_elasticache_parameter_group.redis | resource |
aws_elasticache_replication_group.redis | resource |
aws_elasticache_subnet_group.redis | resource |
aws_security_group.redis | resource |
aws_security_group_rule.other_sg_ingress | resource |
aws_security_group_rule.redis_egress | resource |
aws_security_group_rule.redis_ingress_cidr_blocks | resource |
aws_security_group_rule.redis_ingress_self | resource |
random_id.redis_pg | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
allowed_security_groups | List of existing security groups that will be allowed ingress via the elaticache security group rules | list(string) |
[] |
no |
apply_immediately | Specifies whether any modifications are applied immediately, or during the next maintenance window. | bool |
false |
no |
at_rest_encryption_enabled | Whether to enable encryption at rest. | bool |
true |
no |
auth_token | The password used to access a password protected server. Can be specified only if transit_encryption_enabled = true . |
string |
null |
no |
auth_token_update_strategy | Strategy to use when updating the auth_token. Valid values are SET, ROTATE, and DELETE. Defaults to ROTATE | string |
"ROTATE" |
no |
auto_minor_version_upgrade | n/a | bool |
true |
no |
automatic_failover_enabled | Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, number_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. | bool |
true |
no |
cluster_mode_enabled | Enable creation of a native redis cluster. | bool |
false |
no |
data_tiering_enabled | Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. | bool |
false |
no |
description | The description of the all resources. | string |
"Managed by Terraform" |
no |
engine_version | The version number of the cache engine to be used for the cache clusters in this replication group. | string |
"7.0" |
no |
family | The family of the ElastiCache parameter group. | string |
"redis7" |
no |
final_snapshot_identifier | The 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. | string |
null |
no |
global_replication_group_id | The ID of the global replication group to which this replication group should belong. | string |
null |
no |
ingress_cidr_blocks | List of Ingress CIDR blocks. | list(string) |
[] |
no |
ingress_self | Specify whether the security group itself will be added as a source to the ingress rule. | bool |
false |
no |
kms_key_id | The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true |
string |
null |
no |
log_delivery_configuration | Log Delivery configuration for the cluster. | list(object({ |
[] |
no |
maintenance_window | Specifies the weekly time range for when maintenance on the cache cluster is performed. | string |
null |
no |
multi_az_enabled | Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. |
bool |
false |
no |
name_prefix | The replication group identifier. This parameter is stored as a lowercase string. | string |
n/a | yes |
node_type | The compute and memory capacity of the nodes in the node group. | string |
"cache.t4g.small" |
no |
notification_topic_arn | An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to. Example: arn:aws:sns:us-east-1:012345678999:my_sns_topic |
string |
null |
no |
num_cache_clusters | The number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with num_node_groups. | number |
1 |
no |
num_node_groups | Specify the number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. | number |
0 |
no |
parameter | A list of Redis parameters to apply. Note that parameters may differ from one Redis family to another | list(object({ |
[] |
no |
parameter_group_name | Parameter Group name. If not provided, it will use the module name | string |
null |
no |
port | The port number on which each of the cache nodes will accept connections. | number |
6379 |
no |
preferred_cache_cluster_azs | A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important. | list(string) |
null |
no |
replicas_per_node_group | Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. | number |
0 |
no |
security_group_ids | List of Security Groups. | list(string) |
[] |
no |
snapshot_retention_limit | The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. | number |
30 |
no |
snapshot_window | The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. | string |
null |
no |
subnet_ids | List of VPC Subnet IDs for the cache subnet group. | list(string) |
n/a | yes |
tags | A mapping of tags to assign to all resources. | map(string) |
{} |
no |
transit_encryption_enabled | Whether to enable encryption in transit. | bool |
true |
no |
user_group_ids | User Group ID to associate with the replication group | list(string) |
null |
no |
vpc_id | VPC Id to associate with Redis ElastiCache. | string |
n/a | yes |
Name | Description |
---|---|
elasticache_auth_token | The Redis Auth Token. |
elasticache_parameter_group_id | The ElastiCache parameter group name. |
elasticache_port | The Redis port. |
elasticache_replication_group_arn | The Amazon Resource Name (ARN) of the created ElastiCache Replication Group. |
elasticache_replication_group_id | The ID of the ElastiCache Replication Group. |
elasticache_replication_group_member_clusters | The identifiers of all the nodes that are part of this replication group. |
elasticache_replication_group_primary_endpoint_address | The address of the endpoint for the primary node in the replication group. |
elasticache_replication_group_reader_endpoint_address | The address of the endpoint for the reader node in the replication group. |
security_group_arn | The ARN of the Redis ElastiCache security group. |
security_group_description | The description of the Redis ElastiCache security group. |
security_group_egress | The egress rules of the Redis ElastiCache security group. |
security_group_id | The ID of the Redis ElastiCache security group. |
security_group_ingress | The ingress rules of the Redis ElastiCache security group. |
security_group_name | The name of the Redis ElastiCache security group. |
security_group_owner_id | The owner ID of the Redis ElastiCache security group. |
security_group_vpc_id | The VPC ID of the Redis ElastiCache security group. |
See LICENSE file for full details.
pre-commit
terraform-docs
required forterraform_docs
hooks.TFLint
required forterraform_tflint
hook.
brew install pre-commit terraform-docs tflint