A Terraform module to create an AWS Redis ElastiCache cluster
- For AWS Provider >= 4.0.0, pin module version to
~> v3.0
. - For Terraform 0.14.5 and higher and AWS Provider < 4.0.0, pin module version to
~> v2.0
. - For Terraform 0.12 to 0.14.4, pin module version to
~> v1.0
. - Submit pull-requests to
main
branch.
module "redis" {
source = "umotif-public/elasticache-redis/aws"
version = "~> 3.0.0"
name_prefix = "core-example"
num_cache_clusters = 2
node_type = "cache.t4g.small"
engine_version = "7.0"
port = 6379
maintenance_window = "mon:03:00-mon:04:00"
snapshot_window = "04:00-06:00"
snapshot_retention_limit = 7
automatic_failover_enabled = true
at_rest_encryption_enabled = true
transit_encryption_enabled = true
auth_token = "1234567890asdfghjkl"
apply_immediately = true
family = "redis7"
description = "Test elasticache redis."
subnet_ids = module.vpc.private_subnets
vpc_id = module.vpc.vpc_id
ingress_cidr_blocks = ["0.0.0.0/0"]
parameter = [
{
name = "repl-backlog-size"
value = "16384"
}
]
log_delivery_configuration = [
{
destination_type = "cloudwatch-logs"
destination = "aws_cloudwatch_log_group.example.name"
log_format = "json"
log_type = "engine-log"
}
]
tags = {
Project = "Test"
}
}
Module managed by uMotif
Name | Version |
---|---|
terraform | >= 1.0.11 |
aws | >= 4.12.0 |
random | >= 3.3.2 |
Name | Version |
---|---|
aws | >= 4.12.0 |
random | >= 3.3.2 |
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 |
"" |
no |
auto_minor_version_upgrade | n/a | string |
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 |
egress_cidr_blocks | List of Egress CIDR blocks. | list(string) |
[ |
no |
engine_version | The version number of the cache engine to be used for the cache clusters in this replication group. | string |
"6.x" |
no |
family | The family of the ElastiCache parameter group. | string |
"redis6.x" |
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 |
"" |
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 |
"" |
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 |
n/a | yes |
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 |
"" |
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_description | The description of the ElastiCache parameter group | 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_name | The name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. | string |
null |
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 |
"" |
no |
subnet_group_name | The name of the subnet group. If it is not specified, the module will create one for you | string |
null |
no |
subnet_ids | List of VPC Subnet IDs for the cache subnet group. | list(string) |
[] |
no |
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 for full details.
pre-commit
terraform-docs
required forterraform_docs
hooks.TFLint
required forterraform_tflint
hook.
brew install pre-commit terraform-docs tflint
brew tap git-chglog/git-chglog
brew install git-chglog