Skip to content

x-qdo/tf_aws_elasticache_redis

 
 

Repository files navigation

Breaking changes

In version 3.0.0, the module was reworked to operate with the 5.x.x version of the AWS provider.

A Terraform module to create a Redis ElastiCache cluster

A terraform module providing a Redis ElastiCache cluster in AWS.

This module

  • Creates Redis ElastiCache clusters
  • Creates, manages, and exports a security group

Terraform versions

Terraform 0.12. Pin module version to ~> v2.0. Submit pull-requests to master branch.

Terraform 0.11. Pin module version to ~> v1.0. Submit pull-requests to terraform011 branch.

Usage

module "redis" {
  source  = "github.com/terraform-community-modules/tf_aws_elasticache_redis.git?ref=v2.2.0"

  env            = "dev"
  name           = "thtest"
  redis_clusters = "2"
  redis_failover = "true"
  subnets        = ["subnet-12345678", "subnet-11111111", "subnet-22222222"]
  vpc_id         = "vpc-12345678"

  redis_parameters = [{
    name  = "min-slaves-max-lag"
    value = "5"
  },{
    name  = "min-slaves-to-write"
    value = "1"
  },{
    name  = "databases"
    value = "32"
  }]
}

Requirements

Name Version
terraform >= 0.13
aws >= 5.0.0

Providers

Name Version
aws >= 5.0.0
random n/a

Modules

No modules.

Resources

Name Type
aws_cloudwatch_metric_alarm.redis-elasticache-high-db-memory-critical resource
aws_cloudwatch_metric_alarm.redis-elasticache-high-db-memory-warning resource
aws_elasticache_parameter_group.redis_parameter_group resource
aws_elasticache_replication_group.redis resource
aws_elasticache_subnet_group.redis_subnet_group resource
aws_security_group.redis_security_group resource
aws_security_group_rule.redis_ingress resource
aws_security_group_rule.redis_networks_ingress resource
random_id.salt resource
aws_vpc.vpc data source

Inputs

Name Description Type Default Required
alerts_enabled Determines if alert-related resources should be created. When set to true, sns_topic_arn must be provided. When false, associated alerting resources are skipped. bool false no
allowed_cidr A list of Security Group ID's to allow access to. list(string)
[
"127.0.0.1/32"
]
no
allowed_security_groups A list of Security Group ID's to allow access to. list(string) [] no
apply_immediately Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. bool false 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. Can be specified only if transit_encryption_enabled = true. If specified must contain from 16 to 128 alphanumeric characters or symbols string null no
auto_minor_version_upgrade Specifies whether a minor engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window bool true no
availability_zones 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) [] no
critical_database_usage_threshold The threshold for critical level database usage alarm number 96 no
env env to deploy into, should typically dev/staging/prod string n/a yes
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
multi_az_enabled n/a bool false no
name Name for the Redis replication group i.e. UserObject 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
redis_clusters Number of Redis cache clusters (nodes) to create string n/a yes
redis_failover n/a bool false no
redis_maintenance_window Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period string "fri:08:00-fri:09:00" no
redis_node_type Instance type to use for creating the Redis cache clusters string "cache.m3.medium" no
redis_parameters additional parameters modifyed in parameter group list(map(any)) [] no
redis_port n/a number 6379 no
redis_snapshot_retention_limit The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro or cache.t2.* cache nodes number 0 no
redis_snapshot_window The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period string "06:30-07:30" no
redis_version Redis version to use, defaults to 3.2.10 string "3.2.10" no
security_group_names A list of cache security group names to associate with this replication group list(string) [] no
snapshot_arns A 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.rdb 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 "" no
sns_topic_arn The SNS topic ARN to notify. string null no
subnets List of VPC Subnet IDs for the cache subnet group list(string) n/a yes
tags Tags for redis nodes map(string) {} no
transit_encryption_enabled Whether to enable encryption in transit. Requires 3.2.6 or >=4.0 redis_version bool false no
vpc_id VPC ID string n/a yes
warning_database_usage_threshold The threshold for warning level database usage alarm number 90 no

Outputs

Name Description
endpoint n/a
id n/a
parameter_group n/a
port n/a
redis_security_group_id n/a
redis_subnet_group_name n/a

Managed Resources

  • aws_cloudwatch_metric_alarm.redis-elasticache-high-db-memory-critical from aws
  • aws_cloudwatch_metric_alarm.redis-elasticache-high-db-memory-warning from aws
  • aws_elasticache_parameter_group.redis_parameter_group from aws
  • aws_elasticache_replication_group.redis from aws
  • aws_elasticache_subnet_group.redis_subnet_group from aws
  • aws_security_group.redis_security_group from aws
  • aws_security_group_rule.redis_ingress from aws
  • aws_security_group_rule.redis_networks_ingress from aws
  • random_id.salt from random

Data Resources

  • data.aws_vpc.vpc from aws

Authors

Created by Tim Hartmann. Maintained by Anton Babenko and these awesome contributors.

License

MIT License

About

Terraform module which creates AWS Elasticache Redis resources

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HCL 100.0%