Skip to content

tfstack/terraform-aws-elasticache-redis

Repository files navigation

terraform-aws-elasticache-redis

Terraform module to provision and manage an AWS ElastiCache Redis cluster

Requirements

Name Version
terraform >= 1.0
aws >= 5.0

Providers

Name Version
aws 6.10.0

Modules

No modules.

Resources

Name Type
aws_elasticache_cluster.this resource
aws_elasticache_parameter_group.this resource
aws_elasticache_replication_group.this resource
aws_elasticache_subnet_group.this resource
aws_security_group.this resource

Inputs

Name Description Type Default Required
apply_immediately Specifies whether any modifications are applied immediately, or during the next maintenance window bool true no
at_rest_encryption_enabled Whether to enable encryption at rest bool false no
auth_token The password used to access a password protected server string null no
auto_minor_version_upgrade Specifies whether a minor engine upgrade will be applied automatically to the underlying Cache Cluster instances bool null no
automatic_failover_enabled Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails bool false no
availability_zone The Availability Zone for the cache cluster string null no
availability_zones A list of cache cluster availability zones list(string) [] no
cluster_id The name of the ElastiCache cluster string null no
create_parameter_group Whether to create a new parameter group bool true no
create_replication_group Whether to create a replication group bool true no
create_security_group Whether to create a new security group bool true no
create_single_node Whether to create a single node cluster bool false no
create_subnet_group Whether to create a new subnet group bool true no
data_tiering_enabled Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type bool false no
engine_version The version number of the cache engine string "7.0" no
final_snapshot_identifier The name of your final cluster snapshot string null no
kms_key_id The ARN of the key that you wish to use if encrypting at rest string null no
log_delivery_configurations List of log delivery configurations
list(object({
destination = string
destination_type = string
log_format = string
log_type = string
}))
[] no
maintenance_window Specifies the weekly time range for when maintenance on the cache cluster is performed string "wed:03:00-wed:04:00" no
multi_az_enabled Specifies whether to enable Multi-AZ Support for the replication group bool false no
node_type The compute and memory capacity of the nodes string "cache.t3.micro" no
notification_topic_arn An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to string null no
num_cache_clusters Number of cache clusters (primary and replicas) this replication group will have number 2 no
parameter_group_family The family of the ElastiCache parameter group string "redis7" no
parameter_group_name Name of the parameter group string null no
parameter_group_parameters List of parameters to apply to the parameter group
list(object({
name = string
value = string
}))
[] no
port The port number on which each of the nodes accepts connections number 6379 no
replication_group_description The description of the ElastiCache replication group string "Redis replication group" no
replication_group_id The name of the ElastiCache replication group string null no
security_group_egress_rules List of security group egress rules
list(object({
description = string
from_port = number
to_port = number
protocol = string
cidr_blocks = optional(list(string))
security_groups = optional(list(string))
}))
[
{
"cidr_blocks": [
"0.0.0.0/0"
],
"description": "All outbound traffic",
"from_port": 0,
"protocol": "-1",
"to_port": 0
}
]
no
security_group_ids List of security group IDs to associate with the cluster list(string) [] no
security_group_ingress_rules List of security group ingress rules
list(object({
description = string
from_port = number
to_port = number
protocol = string
cidr_blocks = optional(list(string))
security_groups = optional(list(string))
}))
[
{
"cidr_blocks": [
"0.0.0.0/0"
],
"description": "Redis port",
"from_port": 6379,
"protocol": "tcp",
"to_port": 6379
}
]
no
security_group_name Name of the security group string null no
security_group_names List of security group names to associate with the cluster list(string) [] no
snapshot_retention_limit Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them number 0 no
snapshot_window Daily time range during which ElastiCache will take a snapshot of the cache cluster string "06:30-07:30" no
subnet_group_name Name of the subnet group string null no
subnet_ids List of VPC subnet IDs for the cache subnet group list(string) [] no
tags A map of tags to assign to the resources map(string) {} no
transit_encryption_enabled Whether to enable encryption in transit bool true no
vpc_id The VPC ID where the ElastiCache cluster will be created string n/a yes

Outputs

Name Description
at_rest_encryption_enabled Whether encryption at rest is enabled
automatic_failover_enabled Whether automatic failover is enabled
cluster_arn The ElastiCache cluster ARN
cluster_endpoint_address The DNS address of the cache node
cluster_id The ElastiCache cluster ID
cluster_port The port number on which each of the nodes accepts connections
engine_version The version number of the cache engine
multi_az_enabled Whether Multi-AZ is enabled
node_type The compute and memory capacity of the nodes
parameter_group_id The ElastiCache parameter group ID
parameter_group_name The ElastiCache parameter group name
redis_endpoint The Redis endpoint address
redis_port The Redis port number
redis_url The Redis connection URL
replication_group_arn The ARN of the ElastiCache Replication Group
replication_group_configuration_endpoint_address The address of the configuration endpoint for the replication group
replication_group_id The ID of the ElastiCache Replication Group
replication_group_member_clusters The identifiers of all the nodes that are part of this replication group
replication_group_port The port number on which each of the nodes accepts connections
replication_group_primary_endpoint_address The address of the endpoint for the primary node in the replication group
replication_group_reader_endpoint_address The address of the endpoint for the reader node in the replication group
security_group_arn The ElastiCache security group ARN
security_group_id The ElastiCache security group ID
security_group_name The ElastiCache security group name
subnet_group_id The ElastiCache subnet group ID
subnet_group_name The ElastiCache subnet group name
transit_encryption_enabled Whether encryption in transit is enabled

About

Terraform module to provision and manage an AWS ElastiCache Redis cluster

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages