{"id":28423205,"url":"https://github.com/terraform-aws-modules/terraform-aws-memory-db","last_synced_at":"2025-06-24T23:31:12.345Z","repository":{"id":41971196,"uuid":"445533039","full_name":"terraform-aws-modules/terraform-aws-memory-db","owner":"terraform-aws-modules","description":"Terraform module to create AWS MemoryDB resources 🇺🇦","archived":false,"fork":false,"pushed_at":"2025-01-07T00:46:16.000Z","size":54,"stargazers_count":19,"open_issues_count":0,"forks_count":19,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-05T08:45:39.963Z","etag":null,"topics":["aws","aws-memory-db","memory-database","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/terraform-aws-modules/memory-db/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terraform-aws-modules.png","metadata":{"funding":{"github":["antonbabenko"],"custom":"https://www.paypal.me/antonbabenko"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-07T13:37:43.000Z","updated_at":"2025-04-04T04:44:07.000Z","dependencies_parsed_at":"2024-11-30T19:23:21.262Z","dependency_job_id":"ecf3562b-4970-4184-8a24-045e083730b8","html_url":"https://github.com/terraform-aws-modules/terraform-aws-memory-db","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":"clowdhaus/terraform-aws-module-template","purl":"pkg:github/terraform-aws-modules/terraform-aws-memory-db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-memory-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-memory-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-memory-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-memory-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terraform-aws-modules","download_url":"https://codeload.github.com/terraform-aws-modules/terraform-aws-memory-db/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-memory-db/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261774632,"owners_count":23207772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws","aws-memory-db","memory-database","terraform","terraform-module"],"created_at":"2025-06-05T08:35:52.927Z","updated_at":"2025-06-24T23:31:12.338Z","avatar_url":"https://github.com/terraform-aws-modules.png","language":"HCL","funding_links":["https://github.com/sponsors/antonbabenko","https://www.paypal.me/antonbabenko"],"categories":[],"sub_categories":[],"readme":"# AWS MemoryDB Terraform module\n\nTerraform module which creates AWS MemoryDB resources.\n\n## Usage\n\nSee [`examples`](https://github.com/terraform-aws-modules/terraform-aws-memory-db/tree/master/examples) directory for working examples to reference:\n\n```hcl\nmodule \"memory_db\" {\n  source = \"terraform-aws-modules/memory-db/aws\"\n\n  # Cluster\n  name        = \"example\"\n  description = \"Example MemoryDB cluster\"\n\n  engine_version             = \"6.2\"\n  auto_minor_version_upgrade = true\n  node_type                  = \"db.t4g.small\"\n  num_shards                 = 2\n  num_replicas_per_shard     = 2\n\n  tls_enabled              = true\n  security_group_ids       = [\"sg-12345678\"]\n  maintenance_window       = \"sun:23:00-mon:01:30\"\n  sns_topic_arn            = \"arn:aws:sns:us-east-1:012345678910:example-topic\"\n  snapshot_retention_limit = 7\n  snapshot_window          = \"05:00-09:00\"\n\n  # Users\n  users = {\n    admin = {\n      user_name     = \"admin-user\"\n      access_string = \"on ~* \u0026* +@all\"\n      passwords     = [\"YouShouldPickAStrongSecurePassword987!\"]\n      tags          = { User = \"admin\" }\n    }\n    readonly = {\n      user_name     = \"readonly-user\"\n      access_string = \"on ~* \u0026* -@all +@read\"\n      passwords     = [\"YouShouldPickAStrongSecurePassword123!\"]\n      tags          = { User = \"readonly\" }\n    }\n  }\n\n  # ACL\n  acl_name = \"example-acl\"\n  acl_tags = { Acl = \"custom\" }\n\n  # Parameter group\n  parameter_group_name        = \"example-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    ParameterGroup = \"custom\"\n  }\n\n  # Subnet group\n  subnet_group_name        = \"example-subnet-group\"\n  subnet_group_description = \"Example MemoryDB subnet group\"\n  subnet_ids               = [\"subnet-1fe3d837\", \"subnet-129d66ab\", \"subnet-1211eef5\"]\n  subnet_group_tags = {\n    SubnetGroup = \"custom\"\n  }\n\n  tags = {\n    Terraform   = \"true\"\n    Environment = \"dev\"\n  }\n}\n```\n\n## Conditional Creation\n\nThe following values are provided to toggle on/off creation of the associated resources as desired:\n\n```hcl\nmodule \"memory_db\" {\n  source = \"terraform-aws-modules/memory-db/aws\"\n\n  # Disable creation of cluster and all resources\n  create = false\n\n  # Disable creation of users\n  create_users = false\n\n  # Disable creation of ACL - an ACL will need to be provided\n  create_acl = false\n  acl_name   = \"existing_acl\"\n\n  # Disable creation of parameter group - a parameter group will need to be provided\n  create_parameter_group = false\n  parameter_group_name   = \"existing_parameter_group\"\n\n  # Disable creation of subnet group - a subnet group will need to be provided\n  create_subnet_group = false\n  subnet_group_name   = \"existing_subnet_group\"\n\n  # ... omitted\n}\n```\n\n## Examples\n\nExamples codified under the [`examples`](https://github.com/terraform-aws-modules/terraform-aws-memory-db/tree/master/examples) are intended to give users references for how to use the module(s) as well as testing/validating changes to the source code of the module. If contributing to the project, please be sure to make any appropriate updates to the relevant examples to allow maintainers to test your changes and to keep the examples up to date for users. Thank you!\n\n- [Complete](https://github.com/terraform-aws-modules/terraform-aws-memory-db/tree/master/examples/complete)\n- [Valkey](https://github.com/terraform-aws-modules/terraform-aws-memory-db/tree/master/examples/valkey)\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.82 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.82 |\n\n## Modules\n\nNo modules.\n\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\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) | Name of ACL to be created if `create_acl` is `true`, otherwise its the name of an existing ACL to use if `create_acl` is `false` | `string` | `null` | no |\n| \u003ca name=\"input_acl_tags\"\u003e\u003c/a\u003e [acl\\_tags](#input\\_acl\\_tags) | Additional tags for the ACL created | `map(string)` | `{}` | no |\n| \u003ca name=\"input_acl_use_name_prefix\"\u003e\u003c/a\u003e [acl\\_use\\_name\\_prefix](#input\\_acl\\_use\\_name\\_prefix) | Determines whether `acl_name` is used as a prefix | `bool` | `false` | 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_create\"\u003e\u003c/a\u003e [create](#input\\_create) | Determines whether resources will be created - affects all resources | `bool` | `true` | no |\n| \u003ca name=\"input_create_acl\"\u003e\u003c/a\u003e [create\\_acl](#input\\_create\\_acl) | Determines whether to create ACL specified | `bool` | `true` | no |\n| \u003ca name=\"input_create_parameter_group\"\u003e\u003c/a\u003e [create\\_parameter\\_group](#input\\_create\\_parameter\\_group) | Determines whether to create parameter group specified | `bool` | `true` | no |\n| \u003ca name=\"input_create_subnet_group\"\u003e\u003c/a\u003e [create\\_subnet\\_group](#input\\_create\\_subnet\\_group) | Determines whether to create subnet group specified | `bool` | `true` | no |\n| \u003ca name=\"input_create_users\"\u003e\u003c/a\u003e [create\\_users](#input\\_create\\_users) | Determines whether to create users specified | `bool` | `true` | 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_description\"\u003e\u003c/a\u003e [description](#input\\_description) | Description for the cluster. Defaults to `Managed by Terraform` | `string` | `null` | no |\n| \u003ca name=\"input_engine\"\u003e\u003c/a\u003e [engine](#input\\_engine) | The engine that will run on your nodes. Supported values are redis and valkey | `string` | `null` | no |\n| \u003ca name=\"input_engine_version\"\u003e\u003c/a\u003e [engine\\_version](#input\\_engine\\_version) | Version number of the engine to be used for the cluster. Downgrades are not supported | `string` | `null` | no |\n| \u003ca name=\"input_final_snapshot_name\"\u003e\u003c/a\u003e [final\\_snapshot\\_name](#input\\_final\\_snapshot\\_name) | Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made | `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_multi_region_cluster_name\"\u003e\u003c/a\u003e [multi\\_region\\_cluster\\_name](#input\\_multi\\_region\\_cluster\\_name) | The multi region cluster identifier if part of a multi region cluster | `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 parameter group. 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) | Name of parameter group to be created if `create_parameter_group` is `true`, otherwise its the name of an existing parameter group to use if `create_parameter_group` is `false` | `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) | Additional tags for the parameter group created | `map(string)` | `{}` | no |\n| \u003ca name=\"input_parameter_group_use_name_prefix\"\u003e\u003c/a\u003e [parameter\\_group\\_use\\_name\\_prefix](#input\\_parameter\\_group\\_use\\_name\\_prefix) | Determines whether `parameter_group_name` is used as a prefix | `bool` | `false` | 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_sns_topic_arn\"\u003e\u003c/a\u003e [sns\\_topic\\_arn](#input\\_sns\\_topic\\_arn) | ARN of the SNS topic to which cluster notifications are sent | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_description\"\u003e\u003c/a\u003e [subnet\\_group\\_description](#input\\_subnet\\_group\\_description) | Description for the subnet group. Defaults to `Managed by Terraform` | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_name\"\u003e\u003c/a\u003e [subnet\\_group\\_name](#input\\_subnet\\_group\\_name) | Name of subnet group to be created if `create_subnet_group` is `true`, otherwise its the name of an existing subnet group to use if `create_subnet_group` is `false` | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_tags\"\u003e\u003c/a\u003e [subnet\\_group\\_tags](#input\\_subnet\\_group\\_tags) | Additional tags for the subnet group created | `map(string)` | `{}` | no |\n| \u003ca name=\"input_subnet_group_use_name_prefix\"\u003e\u003c/a\u003e [subnet\\_group\\_use\\_name\\_prefix](#input\\_subnet\\_group\\_use\\_name\\_prefix) | Determines whether `subnet_group_name` is used as a prefix | `bool` | `false` | 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_use_name_prefix\"\u003e\u003c/a\u003e [use\\_name\\_prefix](#input\\_use\\_name\\_prefix) | Determines whether `name` is used as a prefix for the cluster | `bool` | `false` | 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\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\u003c!-- END_TF_DOCS --\u003e\n\n## License\n\nApache-2.0 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-aws-memory-db/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-memory-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-memory-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-memory-db/lists"}