{"id":18624763,"url":"https://github.com/opszero/terraform-aws-memorydb","last_synced_at":"2026-01-25T17:33:32.639Z","repository":{"id":251115576,"uuid":"836410843","full_name":"opszero/terraform-aws-memorydb","owner":"opszero","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-24T19:29:56.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-28T07:33:49.940Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opszero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["abhiyerra"],"custom":["https://www.opszero.com"]}},"created_at":"2024-07-31T19:41:16.000Z","updated_at":"2025-11-24T19:29:59.000Z","dependencies_parsed_at":"2025-05-17T07:07:45.242Z","dependency_job_id":"d4a82ceb-3bb9-4296-98b9-8c5911ccd767","html_url":"https://github.com/opszero/terraform-aws-memorydb","commit_stats":null,"previous_names":["opszero/terraform-aws-memorydb"],"tags_count":0,"template":false,"template_full_name":"opszero/terraform-template","purl":"pkg:github/opszero/terraform-aws-memorydb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-memorydb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-memorydb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-memorydb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-memorydb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opszero","download_url":"https://codeload.github.com/opszero/terraform-aws-memorydb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-memorydb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28755946,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T16:32:25.380Z","status":"ssl_error","status_checked_at":"2026-01-25T16:32:09.189Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T04:30:49.826Z","updated_at":"2026-01-25T17:33:32.633Z","avatar_url":"https://github.com/opszero.png","language":"HCL","funding_links":["https://github.com/sponsors/abhiyerra","https://www.opszero.com"],"categories":[],"sub_categories":[],"readme":"# Terraform-aws-memorydb\n\n# Terraform AWS Cloud MemoryDB Module\n\n## Table of Contents\n- [Introduction](#introduction)\n- [Usage](#usage)\n- [Examples](#Examples)\n- [Author](#Author)\n- [License](#license)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n\n## Introduction\nThis Terraform module creates an AWS memorydb along with additional configuration options.\n## Usage\nTo use this module, you can include it in your Terraform configuration. Here's an example of how to use it:\n\n## Example: memorydb\n\n```hcl\nmodule \"memorydb\" {\n  source                     = \"git::https://github.com/opszero/terraform-aws-memorydb.git?ref=v1.0.1\"\n  name                       = \"memorydb\"\n  engine_version             = \"6.2\"\n  auto_minor_version_upgrade = true\n  node_type                  = \"db.t4g.medium\"\n  num_shards                 = 1\n  num_replicas_per_shard     = 1\n  data_tiering               = false\n\n  tls_enabled              = true\n  security_group_ids       = [module.security_group.security_group_id]\n  maintenance_window       = \"sun:23:00-mon:01:30\"\n  snapshot_retention_limit = 7\n  snapshot_window          = \"05:00-09:00\"\n  password                 = \"\"\n\n  # Users\n  users = {\n    admin = {\n      user_name     = \"admin-user\"\n      access_string = \"on ~* \u0026* +@all\"\n      tags          = { user = \"admin\" }\n    }\n    readonly = {\n      user_name     = \"readonly-user\"\n      access_string = \"on ~* \u0026* -@all +@read\"\n      tags          = { user = \"readonly\" }\n    }\n  }\n\n  # ACL\n  acl_name = \"memorydb-acl\"\n  # Parameter group\n  parameter_group_name        = \"memorydb-param-group\"\n  parameter_group_description = \"Example MemoryDB parameter group\"\n  parameter_group_family      = \"memorydb_redis6\"\n  parameter_group_parameters = [\n    {\n      name  = \"activedefrag\"\n      value = \"yes\"\n    }\n  ]\n  parameter_group_tags = {\n    parameter_group = \"custom\"\n  }\n\n  # Subnet group\n  subnet_group_name = \"memorydb-subnet-group\"\n  subnet_ids        = module.subnets.public_subnet_id\n  subnet_group_tags = {\n    subnet_group = \"custom\"\n  }\n\n}\n```\n\n## Examples\nFor detailed examples on how to use this module, please refer to the [Examples](https://github.com/opszero/terraform-aws-memorydb/tree/main/example) directory within this repository.\n\n## Author\nYour Name Replace **MIT** and **opsZero** with the appropriate license and your information. Feel free to expand this README with additional details or usage instructions as needed for your specific use case.\n\n## License\nThis project is licensed under the **MIT** License - see the [LICENSE](https://github.com/opszero/terraform-aws-memorydb/blob/main/LICENSE) file for details.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 6.14.0 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | \u003e= 3.7.2 |\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_acl_name\"\u003e\u003c/a\u003e [acl\\_name](#input\\_acl\\_name) | The name of the access control list (ACL) to associate. | `string` | `null` | no |\n| \u003ca name=\"input_acl_user_names\"\u003e\u003c/a\u003e [acl\\_user\\_names](#input\\_acl\\_user\\_names) | List of externally created user names to associate with the ACL | `list(string)` | `[]` | no |\n| \u003ca name=\"input_auto_minor_version_upgrade\"\u003e\u003c/a\u003e [auto\\_minor\\_version\\_upgrade](#input\\_auto\\_minor\\_version\\_upgrade) | When set to `true`, the cluster will automatically receive minor engine version upgrades after launch. Defaults to `true` | `bool` | `null` | no |\n| \u003ca name=\"input_data_tiering\"\u003e\u003c/a\u003e [data\\_tiering](#input\\_data\\_tiering) | Must be set to `true` when using a data tiering node type | `bool` | `null` | no |\n| \u003ca name=\"input_engine_version\"\u003e\u003c/a\u003e [engine\\_version](#input\\_engine\\_version) | Version number of the Redis engine to be used for the cluster. Downgrades are not supported | `string` | `null` | no |\n| \u003ca name=\"input_kms_key_arn\"\u003e\u003c/a\u003e [kms\\_key\\_arn](#input\\_kms\\_key\\_arn) | ARN of the KMS key used to encrypt the cluster at rest | `string` | `null` | no |\n| \u003ca name=\"input_maintenance_window\"\u003e\u003c/a\u003e [maintenance\\_window](#input\\_maintenance\\_window) | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format `ddd:hh24:mi-ddd:hh24:mi` | `string` | `null` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Cluster name - also default name used on all resources if more specific resource names are not provided | `string` | `\"\"` | no |\n| \u003ca name=\"input_node_type\"\u003e\u003c/a\u003e [node\\_type](#input\\_node\\_type) | The compute and memory capacity of the nodes in the cluster. See AWS documentation on [supported node types](https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.supportedtypes.html) as well as [vertical scaling](https://docs.aws.amazon.com/memorydb/latest/devguide/cluster-vertical-scaling.html) | `string` | `null` | no |\n| \u003ca name=\"input_num_replicas_per_shard\"\u003e\u003c/a\u003e [num\\_replicas\\_per\\_shard](#input\\_num\\_replicas\\_per\\_shard) | The number of replicas to apply to each shard, up to a maximum of 5. Defaults to `1` (i.e. 2 nodes per shard) | `number` | `null` | no |\n| \u003ca name=\"input_num_shards\"\u003e\u003c/a\u003e [num\\_shards](#input\\_num\\_shards) | The number of shards in the cluster. Defaults to `1` | `number` | `null` | no |\n| \u003ca name=\"input_parameter_group_description\"\u003e\u003c/a\u003e [parameter\\_group\\_description](#input\\_parameter\\_group\\_description) | Description for the cluster. Defaults to `Managed by Terraform` | `string` | `null` | no |\n| \u003ca name=\"input_parameter_group_family\"\u003e\u003c/a\u003e [parameter\\_group\\_family](#input\\_parameter\\_group\\_family) | The engine version that the parameter group can be used with | `string` | `null` | no |\n| \u003ca name=\"input_parameter_group_name\"\u003e\u003c/a\u003e [parameter\\_group\\_name](#input\\_parameter\\_group\\_name) | The name of the parameter group to be created or used. | `string` | `null` | no |\n| \u003ca name=\"input_parameter_group_parameters\"\u003e\u003c/a\u003e [parameter\\_group\\_parameters](#input\\_parameter\\_group\\_parameters) | A list of parameter maps to apply | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_parameter_group_tags\"\u003e\u003c/a\u003e [parameter\\_group\\_tags](#input\\_parameter\\_group\\_tags) | A map of tags to assign to the parameter group. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_password\"\u003e\u003c/a\u003e [password](#input\\_password) | The password for the AWS MemoryDB user. Leave empty to generate a random password. | `string` | `\"\"` | no |\n| \u003ca name=\"input_port\"\u003e\u003c/a\u003e [port](#input\\_port) | The port number on which each of the nodes accepts connections. Defaults to `6379` | `number` | `null` | no |\n| \u003ca name=\"input_security_group_ids\"\u003e\u003c/a\u003e [security\\_group\\_ids](#input\\_security\\_group\\_ids) | Set of VPC Security Group ID-s to associate with this cluster | `list(string)` | `null` | no |\n| \u003ca name=\"input_snapshot_arns\"\u003e\u003c/a\u003e [snapshot\\_arns](#input\\_snapshot\\_arns) | List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster | `list(string)` | `null` | no |\n| \u003ca name=\"input_snapshot_name\"\u003e\u003c/a\u003e [snapshot\\_name](#input\\_snapshot\\_name) | The name of a snapshot from which to restore data into the new cluster | `string` | `null` | no |\n| \u003ca name=\"input_snapshot_retention_limit\"\u003e\u003c/a\u003e [snapshot\\_retention\\_limit](#input\\_snapshot\\_retention\\_limit) | The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to `0`, automatic backups are disabled. Defaults to `0` | `number` | `null` | no |\n| \u003ca name=\"input_snapshot_window\"\u003e\u003c/a\u003e [snapshot\\_window](#input\\_snapshot\\_window) | The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: `05:00-09:00` | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_name\"\u003e\u003c/a\u003e [subnet\\_group\\_name](#input\\_subnet\\_group\\_name) | The name of the subnet group to be created or used. | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_tags\"\u003e\u003c/a\u003e [subnet\\_group\\_tags](#input\\_subnet\\_group\\_tags) | A map of tags to assign to the subnet group. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | Set of VPC Subnet ID-s for the subnet group. At least one subnet must be provided | `list(string)` | `[]` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to use on all resources | `map(string)` | `{}` | no |\n| \u003ca name=\"input_tls_enabled\"\u003e\u003c/a\u003e [tls\\_enabled](#input\\_tls\\_enabled) | A flag to enable in-transit encryption on the cluster. When set to `false`, the `acl_name` must be `open-access`. Defaults to `true` | `bool` | `null` | no |\n| \u003ca name=\"input_users\"\u003e\u003c/a\u003e [users](#input\\_users) | A map of user definitions (maps) to be created | `any` | `{}` | no |\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_memorydb_acl.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/memorydb_acl) | resource |\n| [aws_memorydb_cluster.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/memorydb_cluster) | resource |\n| [aws_memorydb_parameter_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/memorydb_parameter_group) | resource |\n| [aws_memorydb_subnet_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/memorydb_subnet_group) | resource |\n| [aws_memorydb_user.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/memorydb_user) | resource |\n| [aws_sns_topic.main](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sns_topic) | resource |\n| [aws_ssm_parameter.memorydb_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [random_password.main](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_acl_arn\"\u003e\u003c/a\u003e [acl\\_arn](#output\\_acl\\_arn) | The ARN of the ACL |\n| \u003ca name=\"output_acl_id\"\u003e\u003c/a\u003e [acl\\_id](#output\\_acl\\_id) | Name of the ACL |\n| \u003ca name=\"output_acl_minimum_engine_version\"\u003e\u003c/a\u003e [acl\\_minimum\\_engine\\_version](#output\\_acl\\_minimum\\_engine\\_version) | The minimum engine version supported by the ACL |\n| \u003ca name=\"output_cluster_arn\"\u003e\u003c/a\u003e [cluster\\_arn](#output\\_cluster\\_arn) | The ARN of the cluster |\n| \u003ca name=\"output_cluster_endpoint_address\"\u003e\u003c/a\u003e [cluster\\_endpoint\\_address](#output\\_cluster\\_endpoint\\_address) | DNS hostname of the cluster configuration endpoint |\n| \u003ca name=\"output_cluster_endpoint_port\"\u003e\u003c/a\u003e [cluster\\_endpoint\\_port](#output\\_cluster\\_endpoint\\_port) | Port number that the cluster configuration endpoint is listening on |\n| \u003ca name=\"output_cluster_engine_patch_version\"\u003e\u003c/a\u003e [cluster\\_engine\\_patch\\_version](#output\\_cluster\\_engine\\_patch\\_version) | Patch version number of the Redis engine used by the cluster |\n| \u003ca name=\"output_cluster_id\"\u003e\u003c/a\u003e [cluster\\_id](#output\\_cluster\\_id) | Cluster name |\n| \u003ca name=\"output_cluster_shards\"\u003e\u003c/a\u003e [cluster\\_shards](#output\\_cluster\\_shards) | Set of shards in this cluster |\n| \u003ca name=\"output_parameter_group_arn\"\u003e\u003c/a\u003e [parameter\\_group\\_arn](#output\\_parameter\\_group\\_arn) | The ARN of the parameter group |\n| \u003ca name=\"output_parameter_group_id\"\u003e\u003c/a\u003e [parameter\\_group\\_id](#output\\_parameter\\_group\\_id) | Name of the parameter group |\n| \u003ca name=\"output_subnet_group_arn\"\u003e\u003c/a\u003e [subnet\\_group\\_arn](#output\\_subnet\\_group\\_arn) | ARN of the subnet group |\n| \u003ca name=\"output_subnet_group_id\"\u003e\u003c/a\u003e [subnet\\_group\\_id](#output\\_subnet\\_group\\_id) | Name of the subnet group |\n| \u003ca name=\"output_subnet_group_vpc_id\"\u003e\u003c/a\u003e [subnet\\_group\\_vpc\\_id](#output\\_subnet\\_group\\_vpc\\_id) | The VPC in which the subnet group exists |\n| \u003ca name=\"output_users\"\u003e\u003c/a\u003e [users](#output\\_users) | Map of attributes for the users created |\n# 🚀 Built by opsZero!\n\n\u003ca href=\"https://opszero.com\"\u003e\u003cimg src=\"https://opszero.com/img/common/opsZero-Logo-Large.webp\" width=\"300px\"/\u003e\u003c/a\u003e\n\n[opsZero](https://opszero.com) provides software and consulting for Cloud + AI. With our decade plus of experience scaling some of the world’s most innovative companies we have developed deep expertise in Kubernetes, DevOps, FinOps, and Compliance.\n\nOur software and consulting solutions enable organizations to:\n\n- migrate workloads to the Cloud\n- setup compliance frameworks including SOC2, HIPAA, PCI-DSS, ITAR, FedRamp, CMMC, and more.\n- FinOps solutions to reduce the cost of running Cloud workloads\n- Kubernetes optimized for web scale and AI workloads\n- finding underutilized Cloud resources\n- setting up custom AI training and delivery\n- building data integrations and scrapers\n- modernizing onto modern ARM based processors\n\nWe do this with a high-touch support model where you:\n\n- Get access to us on Slack, Microsoft Teams or Email\n- Get 24/7 coverage of your infrastructure\n- Get an accelerated migration to Kubernetes\n\nPlease [schedule a call](https://calendly.com/opszero-llc/discovery) if you need support.\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n\u003cdiv style=\"display: block\"\u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-advanced.png\" alt=\"AWS Advanced Tier\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-devops-competency.png\" alt=\"AWS DevOps Competency\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-eks.png\" alt=\"AWS EKS Delivery\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-public-sector.png\" alt=\"AWS Public Sector\" width=\"150px\" \u003e\n\u003c/div\u003e\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Fterraform-aws-memorydb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopszero%2Fterraform-aws-memorydb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Fterraform-aws-memorydb/lists"}