Terraform modules to set up redis and memcache.
This creates a redis cluster with some default values and creates a security group for the cluster that allows a specific security group to access the redis cluster
Name |
Description |
Type |
Default |
Required |
allowed_sgs |
The security group that can access the redis cluster |
list(string) |
n/a |
yes |
at_rest_encryption_enabled |
(Optional) Whether to enable encryption at rest |
bool |
true |
no |
auth_token |
(Optional) The password used to access a password protected server. Can be specified only if transit_encryption_enabled = true |
string |
null |
no |
automatic_failover_enabled |
n/a |
bool |
false |
no |
availability_zones |
the list of AZs where you want your cluster to be deployed in |
list(string) |
n/a |
yes |
cloudwatch_logging_enabled |
(Optional) Whether to enable cloudwatch logging |
bool |
false |
no |
cloudwatch_logging_retention_in_days |
Retention period for the logs in CloudWatch. Default is 7d. |
number |
7 |
no |
engine_version |
The redis engine version |
string |
"3.2.6" |
no |
environment |
How do you want to call your environment |
string |
n/a |
yes |
multi_az_enabled |
n/a |
bool |
false |
no |
name |
The name of the redis cluster |
string |
n/a |
yes |
node_type |
The instance size of the redis cluster |
string |
n/a |
yes |
notification_topic_arn |
(Optional) ARN of an SNS topic to send ElastiCache notifications |
string |
null |
no |
num_cache_nodes |
The number of cache nodes |
number |
n/a |
yes |
parameter_group_name |
The parameter group name |
string |
"default.redis3.2" |
no |
port |
The redis port |
number |
6379 |
no |
project |
The project this redis cluster belongs to |
string |
n/a |
yes |
snapshot_arns |
(Optional) 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_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 |
snapshot_window |
The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum maintenance window is a 60 minute period. Example: 05:00-09:00 |
string |
"03:00-05:00" |
no |
subnets |
The subnets where the redis cluster is deployed |
list(string) |
n/a |
yes |
transit_encryption_enabled |
(Optional) Whether to enable encryption in transit |
bool |
true |
no |
vpc_id |
The vpc where we will put the redis cluster |
string |
n/a |
yes |
module "redis" {
source = "github.com/skyscrapers/terraform-elasticache//redis"
name = "redis"
project = var.project
environment = terraform.workspace
node_type = "cache.t3.small"
num_cache_nodes = "1"
subnets = module.vpc.private_db_subnets
allowed_sgs = [module.app.sg_id]
vpc_id = module.vpc.vpc_id
}
Name |
Description |
Type |
Default |
Required |
allowed_sgs |
The security group that can access the memcache cluster |
list(string) |
n/a |
yes |
environment |
How do you want to call your environment |
string |
n/a |
yes |
name |
The name of the memcache cluster |
string |
n/a |
yes |
node_type |
The instance size of the memcache cluster |
string |
n/a |
yes |
num_cache_nodes |
The number of cache nodes |
number |
n/a |
yes |
project |
The project this memcache cluster belongs to |
string |
n/a |
yes |
subnets |
The subnets where the memcache cluster is deployed |
list(string) |
n/a |
yes |
vpc_id |
The vpc where we will put the memcache cluster |
string |
n/a |
yes |
engine_version |
The memcache engine version |
string |
"1.4.5" |
no |
parameter_group_name |
The parameter group name |
string |
"default.memcached1.4" |
no |
port |
The memcache port |
number |
11211 |
no |
Name |
Description |
memcache_endpoint |
The DNS name of the memcache cluster |
memcache_sg |
The security group ID of the memcache cluster. |
module "memcache" {
source = "github.com/skyscrapers/terraform-elasticache//memcache"
name = "memcache"
project = var.project
environment = terraform.workspace
node_type = "cache.t3.small"
num_cache_nodes = "1"
subnets = module.vpc.private_db_subnets
vpc_id = module.vpc.vpc_id
allowed_sgs = [module.app.sg_id]
}