diff --git a/examples/elasticache-redis-full/main.tf b/examples/elasticache-redis-full/main.tf new file mode 100644 index 0000000..35f993a --- /dev/null +++ b/examples/elasticache-redis-full/main.tf @@ -0,0 +1,127 @@ +provider "aws" { + region = "us-east-1" +} + + +################################################### +# ElastiCache Redis Cluster +################################################### + +module "cluster" { + source = "../../modules/elasticache-redis-cluster" + # source = "tedilabs/db/aws//modules/elasticache-redis-cluster" + # version = "~> 0.2.0" + + name = "example-redis-full" + description = "Managed by Terraform." + + redis_version = "6.2" + node_instance_type = "cache.t4g.micro" + # node_size = 1 + sharding = { + enabled = true + shard_size = 3 + replicas = 2 + } + + + ## Network + port = 6379 + vpc_id = null + subnet_group = null + preferred_availability_zones = [] + + default_security_group = { + eanbled = true + name = "example-redis-full-default-sg" + description = "Managed by Terraform." + + ingress_rules = [ + { + cidr_blocks = ["0.0.0.0/0"] + } + ] + } + security_groups = [] + + + ## Parameters + parameter_group = { + enabled = true + name = "example-redis-full-parameter-group" + description = "Managed by Terraform." + parameters = { + "lazyfree-lazy-eviction" = "yes" + "lazyfree-lazy-expire" = "yes" + "lazyfree-lazy-server-del" = "yes" + "rename-commands" = "KEYS BLOCKED" + } + } + custom_parameter_group = null + + + ## Auth + password = sensitive("helloworld!#!!1234") + user_groups = [] + + + ## Encryption + encryption_at_rest = { + enabled = true + kms_key = null + } + encryption_in_transit = { + enabled = true + } + + + ## Backup + backup_enabled = true + backup_window = "16:00-17:00" + backup_retention = 1 + backup_final_snapshot_name = "example-redis-full-final" + + + ## Source + source_backup_name = null + source_rdb_s3_arns = null + + + ## Maintenance + maintenance_window = "fri:18:00-fri:20:00" + auto_upgrade_minor_version_enabled = true + notification_sns_topic = null + + + ## Logging + logging_slow_log = { + enabled = false + format = "JSON" + + destination_type = "CLOUDWATCH_LOGS" + destination = null + } + logging_engine_log = { + enabled = false + format = "JSON" + + destination_type = "CLOUDWATCH_LOGS" + destination = null + } + + + ## Attributes + multi_az_enabled = true + auto_failover_enabled = true + apply_immediately = true + + timeouts = { + create = "60m" + update = "40m" + delete = "40m" + } + + tags = { + "project" = "terraform-aws-db-examples" + } +} diff --git a/examples/elasticache-redis-full/outputs.tf b/examples/elasticache-redis-full/outputs.tf new file mode 100644 index 0000000..a434f6d --- /dev/null +++ b/examples/elasticache-redis-full/outputs.tf @@ -0,0 +1,3 @@ +output "cluster" { + value = module.cluster +} diff --git a/examples/elasticache-redis-full/versions.tf b/examples/elasticache-redis-full/versions.tf new file mode 100644 index 0000000..3c3b4cf --- /dev/null +++ b/examples/elasticache-redis-full/versions.tf @@ -0,0 +1,10 @@ +terraform { + required_version = "~> 1.3" + + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.0" + } + } +} diff --git a/examples/elasticache-redis-muti-az/main.tf b/examples/elasticache-redis-muti-az/main.tf new file mode 100644 index 0000000..f6c1711 --- /dev/null +++ b/examples/elasticache-redis-muti-az/main.tf @@ -0,0 +1,28 @@ +provider "aws" { + region = "us-east-1" +} + + +################################################### +# ElastiCache Redis Cluster +################################################### + +module "cluster" { + source = "../../modules/elasticache-redis-cluster" + # source = "tedilabs/db/aws//modules/elasticache-redis-cluster" + # version = "~> 0.2.0" + + name = "example-redis-multi-az" + description = "Managed by Terraform." + + redis_version = "6.2" + node_instance_type = "cache.t4g.micro" + node_size = 2 + + multi_az_enabled = true + auto_failover_enabled = true + + tags = { + "project" = "terraform-aws-db-examples" + } +} diff --git a/examples/elasticache-redis-muti-az/outputs.tf b/examples/elasticache-redis-muti-az/outputs.tf new file mode 100644 index 0000000..a434f6d --- /dev/null +++ b/examples/elasticache-redis-muti-az/outputs.tf @@ -0,0 +1,3 @@ +output "cluster" { + value = module.cluster +} diff --git a/examples/elasticache-redis-muti-az/versions.tf b/examples/elasticache-redis-muti-az/versions.tf new file mode 100644 index 0000000..3c3b4cf --- /dev/null +++ b/examples/elasticache-redis-muti-az/versions.tf @@ -0,0 +1,10 @@ +terraform { + required_version = "~> 1.3" + + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.0" + } + } +} diff --git a/examples/elasticache-redis-single/main.tf b/examples/elasticache-redis-single/main.tf new file mode 100644 index 0000000..bdb9bac --- /dev/null +++ b/examples/elasticache-redis-single/main.tf @@ -0,0 +1,25 @@ +provider "aws" { + region = "us-east-1" +} + + +################################################### +# ElastiCache Redis Cluster +################################################### + +module "cluster" { + source = "../../modules/elasticache-redis-cluster" + # source = "tedilabs/db/aws//modules/elasticache-redis-cluster" + # version = "~> 0.2.0" + + name = "example-redis-single" + description = "Managed by Terraform." + + redis_version = "6.2" + node_instance_type = "cache.t4g.micro" + node_size = 1 + + tags = { + "project" = "terraform-aws-db-examples" + } +} diff --git a/examples/elasticache-redis-single/outputs.tf b/examples/elasticache-redis-single/outputs.tf new file mode 100644 index 0000000..a434f6d --- /dev/null +++ b/examples/elasticache-redis-single/outputs.tf @@ -0,0 +1,3 @@ +output "cluster" { + value = module.cluster +} diff --git a/examples/elasticache-redis-single/versions.tf b/examples/elasticache-redis-single/versions.tf new file mode 100644 index 0000000..3c3b4cf --- /dev/null +++ b/examples/elasticache-redis-single/versions.tf @@ -0,0 +1,10 @@ +terraform { + required_version = "~> 1.3" + + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.0" + } + } +}