All Projects → umotif-public → terraform-aws-elasticache-redis

umotif-public / terraform-aws-elasticache-redis

Licence: other
A Terraform module to create an AWS Redis ElastiCache cluster.

Programming Languages

HCL
1544 projects
Makefile
30231 projects

Projects that are alternatives of or similar to terraform-aws-elasticache-redis

terraform-aws-enforce-mfa
A terraform module to enforce MFA for AWS groups and users
Stars: ✭ 24 (-17.24%)
Mutual labels:  terraform-modules, terraform-module
terraform-aws-account
🌳 A sustainable Terraform Package which creates Account & IAM resources on AWS
Stars: ✭ 18 (-37.93%)
Mutual labels:  terraform-modules, terraform-module
terraform-aws-cognito-user-pool
Terraform module to create Amazon Cognito User Pools, configure its attributes and resources such as app clients, domain, resource servers. Amazon Cognito User Pools provide a secure user directory that scales to hundreds of millions of users.
Stars: ✭ 65 (+124.14%)
Mutual labels:  terraform-modules, terraform-module
terraform-aws-iam-system-user
Terraform Module to Provision a Basic IAM System User Suitable for CI/CD Systems (E.g. TravisCI, CircleCI)
Stars: ✭ 71 (+144.83%)
Mutual labels:  terraform-modules, terraform-module
terraform-digitalocean-kubernetes
A terraform module for managing and creating a Kubernetes cluster on digital ocean
Stars: ✭ 11 (-62.07%)
Mutual labels:  terraform-modules, terraform-module
terraform-aws-backup
Terraform module to provision AWS Backup, a fully managed backup service that makes it easy to centralize and automate the back up of data across AWS services such as EBS volumes, RDS databases, DynamoDB tables, EFS file systems, and AWS Storage Gateway volumes.
Stars: ✭ 62 (+113.79%)
Mutual labels:  terraform-modules, terraform-module
terraform-aws-redis-elasticache
A Terraform module to create an Amazon Web Services (AWS) Redis ElastiCache cluster.
Stars: ✭ 33 (+13.79%)
Mutual labels:  elasticache, terraform-modules
terraform-aws-config
This module configures AWS Config, a service that enables you to assess, audit, and evaluate the configurations of your AWS resources.
Stars: ✭ 24 (-17.24%)
Mutual labels:  terraform-modules, terraform-module
terraform-aws-base-networking
Terraform module for building base networking in AWS
Stars: ✭ 15 (-48.28%)
Mutual labels:  terraform-modules
terraform-aws-lambda
A Terraform module to create AWS Lambda ressources.
Stars: ✭ 40 (+37.93%)
Mutual labels:  terraform-module
terraform-aws-ecs-fargate-service
AWS ECS Fargate Service Terraform Module
Stars: ✭ 52 (+79.31%)
Mutual labels:  terraform-module
terraform-aws-cloudtrail
Terraform module to provision an AWS CloudTrail and an encrypted S3 bucket with versioning to store CloudTrail logs
Stars: ✭ 78 (+168.97%)
Mutual labels:  terraform-modules
AutoSpotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,058 (+6996.55%)
Mutual labels:  terraform-module
terraform-aws-api-gateway
Terraform module to create Route53 resource on AWS for create api gateway with it's basic elements.
Stars: ✭ 43 (+48.28%)
Mutual labels:  terraform-modules
terraform-aws-ecs-fargate-task-definition
AWS ECS Fargate Task Definition Terraform Module
Stars: ✭ 20 (-31.03%)
Mutual labels:  terraform-module
terraform-metal-anthos-on-baremetal
Terraform module for quick deployment of baremetal Anthos on Equinix Metal
Stars: ✭ 22 (-24.14%)
Mutual labels:  terraform-module
terraform-external-module-artifact
Terraform module to fetch any kind of artifacts using curl (binary and text okay)
Stars: ✭ 13 (-55.17%)
Mutual labels:  terraform-module
terraform-aws-nlb-containers
Creates a Network Load Balancer (NLB) for serving an ECS backed service.
Stars: ✭ 11 (-62.07%)
Mutual labels:  terraform-modules
terraform-google-kubernetes-istio
Creates a kubernetes cluster with istio enabled on GKE
Stars: ✭ 27 (-6.9%)
Mutual labels:  terraform-modules
terraform-tuesdays
Demo files for various Terraform Tuesday Examples
Stars: ✭ 211 (+627.59%)
Mutual labels:  terraform-module

GitHub release (latest by date)

terraform-aws-elasticache-redis

A Terraform module to create an AWS Redis ElastiCache cluster

Terraform versions

  • 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.

Usage

module "redis" {
  source = "umotif-public/elasticache-redis/aws"
  version = "~> 3.0.0"

  name_prefix           = "core-example"
  num_cache_cluster     = 2
  node_type             = "cache.t3.small"

  engine_version           = "6.x"
  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            = "redis6.x"
  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"
  }
}

Examples

Authors

Module managed by Abdul Wahid (LinkedIn)

Requirements

Name Version
terraform >= 0.14.11
aws >= 4.8.0
random >= 3.1.0

Providers

Name Version
aws >= 4.8.0
random >= 3.1.0

Modules

No modules.

Resources

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

Inputs

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
description The description of the all resources. string "Managed by Terraform" no
engine_version The version number of the cache engine to be used for the cache clusters in this replication group. string "5.0.6" no
family The family of the ElastiCache parameter group. string "redis5.0" 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({
destination_type = string
destination = 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 "" 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. string 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({
name = string
value = string
}))
[] 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_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_ids List of VPC Subnet IDs for the cache subnet group. list(string) n/a yes
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
vpc_id VPC Id to associate with Redis ElastiCache. string n/a yes

Outputs

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.

License

See LICENSE for full details.

Pre-commit hooks

Install dependencies

MacOS

brew install pre-commit terraform-docs tflint

brew tap git-chglog/git-chglog
brew install git-chglog
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].