Skip to content

flywirecorp/tf_aws_elasticache_redis

 
 

Repository files navigation

A Terraform module to create a Redis ElastiCache cluster

A terraform module providing a Redis ElastiCache cluster in AWS.

This module is forked from tf_aws_elasticache_redis Communitiy module and performs the following tasks:

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

Terraform versions

Terraform 1.3 used in master branch. Check version tags for older versions.

Usage

module "redis" {
  source  = "github.com/flywirecorp/tf_aws_elasticache_redis.git?ref=v3.0.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 >= 1.3
aws ~> 5
random ~> 3.5

Providers

Name Version
aws ~> 5
random ~> 3.5

Modules

No modules.

Resources

Name Type
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
aws_security_group_rule.redis_replication_egress resource
random_id.salt resource
aws_vpc.vpc data source

Inputs

Name Description Type Default Required
env env to deploy into, should typically dev/staging/prod string n/a yes
name Name for the Redis replication group i.e. UserObject string n/a yes
redis_clusters Number of Redis cache clusters (nodes) to create string n/a yes
subnets List of VPC Subnet IDs for the cache subnet group list(string) n/a yes
vpc_id VPC ID string n/a yes
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
is_migration_cluster Specifies whether this is a cluster for replicating other EC2 redis. Useful for migrations. 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
multi_az_enabled Specifies whether to enable Multi-AZ Support for the replication group bool false 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 "" no
redis_failover Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails 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
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

Outputs

Name Description
endpoint Redis endpoint address
id ID of the Redis replication group
parameter_group ID of the Parameter Group to control the runtime properties of Redis nodes and clusters
port Redis port (default is 6379)
redis_security_group_id ID of the managed Security Group generated for Redis
redis_subnet_group_name Name of the Redis subnet

Authors

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

This fork is possible thanks to these 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%