{"id":21725450,"url":"https://github.com/jameswoolfenden/terraform-aws-elasticache","last_synced_at":"2026-04-09T11:01:21.510Z","repository":{"id":81359208,"uuid":"241336741","full_name":"JamesWoolfenden/terraform-aws-elasticache","owner":"JamesWoolfenden","description":"Basic elasticache module","archived":false,"fork":false,"pushed_at":"2023-04-27T10:43:56.000Z","size":74,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T19:28:00.312Z","etag":null,"topics":["aws","module","terraform"],"latest_commit_sha":null,"homepage":"","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/JamesWoolfenden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-18T10:48:20.000Z","updated_at":"2023-02-22T14:52:35.000Z","dependencies_parsed_at":"2023-07-11T10:36:28.359Z","dependency_job_id":null,"html_url":"https://github.com/JamesWoolfenden/terraform-aws-elasticache","commit_stats":null,"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-elasticache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-elasticache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-elasticache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-elasticache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesWoolfenden","download_url":"https://codeload.github.com/JamesWoolfenden/terraform-aws-elasticache/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244706500,"owners_count":20496570,"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","module","terraform"],"created_at":"2024-11-26T03:17:45.946Z","updated_at":"2025-10-09T00:08:48.758Z","avatar_url":"https://github.com/JamesWoolfenden.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-elasticache\n\n[![Build Status](https://github.com/JamesWoolfenden/terraform-aws-elasticache/workflows/Verify/badge.svg?branch=master)](https://github.com/JamesWoolfenden/terraform-aws-elasticache)\n[![Latest Release](https://img.shields.io/github/release/JamesWoolfenden/terraform-aws-elasticache.svg)](https://github.com/JamesWoolfenden/terraform-aws-elasticache/releases/latest)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/JamesWoolfenden/terraform-aws-elasticache.svg?label=latest)](https://github.com/JamesWoolfenden/terraform-aws-elasticache/releases/latest)\n![Terraform Version](https://img.shields.io/badge/tf-%3E%3D0.14.0-blue.svg)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/JamesWoolfenden/terraform-aws-elasticache/cis_aws)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-elasticache\u0026benchmark=CIS+AWS+V1.2)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![checkov](https://img.shields.io/badge/checkov-verified-brightgreen)](https://www.checkov.io/)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/jameswoolfenden/terraform-aws-elasticache/general)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-elasticache\u0026benchmark=INFRASTRUCTURE+SECURITY)\n\n---\n\nTerraform module to create an elasticache, each gateway will have different resources hanging off it so its more of an example than a module. It's 100% Open Source and licensed under the [APACHE2](LICENSE).\n\n## Usage\n\nThis is just a very basic example.\n\n![alt text](./diagram/serverless.png)\n\nInclude this repository as a module in your existing Terraform code:\n\n```hcl\nmodule \"elasticache\" {\n  source                 = \"jameswoolfenden/elasticache/aws\"\n  common_tags            = var.common_tags\n}\n```\n\nmemcache vert scaling is destructive\n\n- just changing and reapply instance type\n  memcache scale out is adding nodes\n- can it be automated?\n\nMemcache\nmulti threaded, scale out if loads \u003e90\u0026\nscale up and out\n\nredis single thread\nscale at 90/no of cores=??\n\nalarm/ monitoring\nCPU utilisation\nconcurrent connections\nswapusage\nevictions\n\ncreate a memcache\ncreate a redis\n\nwith scaling?\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_elasticache_cluster.cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elasticache_cluster) | resource |\n| [aws_elasticache_parameter_group.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elasticache_parameter_group) | resource |\n| [aws_elasticache_replication_group.example](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elasticache_replication_group) | resource |\n| [aws_elasticache_subnet_group.elasticache](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elasticache_subnet_group) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_auth_token\"\u003e\u003c/a\u003e [auth\\_token](#input\\_auth\\_token) | (optional) describe your variable | `string` | n/a | yes |\n| \u003ca name=\"input_cluster\"\u003e\u003c/a\u003e [cluster](#input\\_cluster) | n/a | `map(any)` | \u003cpre\u003e{\u003cbr\u003e  \"cluster_id\": \"cluster-example\",\u003cbr\u003e  \"engine\": \"memcached\",\u003cbr\u003e  \"node_type\": \"cache.m4.large\",\u003cbr\u003e  \"num_cache_nodes\": 2,\u003cbr\u003e  \"parameter_group_name\": \"default.memcached1.4\",\u003cbr\u003e  \"port\": 11211,\u003cbr\u003e  \"snapshot_retention_limit\": \"5\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_common_tags\"\u003e\u003c/a\u003e [common\\_tags](#input\\_common\\_tags) | This is to help you add tags to your cloud objects | `map(string)` | n/a | yes |\n| \u003ca name=\"input_es_subnet_group_name\"\u003e\u003c/a\u003e [es\\_subnet\\_group\\_name](#input\\_es\\_subnet\\_group\\_name) | es\\_subnet\\_group\\_name | `string` | `\"tf-test-cache-subnet\"` | no |\n| \u003ca name=\"input_kms_key_id\"\u003e\u003c/a\u003e [kms\\_key\\_id](#input\\_kms\\_key\\_id) | n/a | `any` | n/a | yes |\n| \u003ca name=\"input_parameter_group\"\u003e\u003c/a\u003e [parameter\\_group](#input\\_parameter\\_group) | n/a | \u003cpre\u003eobject({\u003cbr\u003e    name   = string\u003cbr\u003e    family = string\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"family\": \"redis2.8\",\u003cbr\u003e  \"name\": \"cache-params\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_replication_group\"\u003e\u003c/a\u003e [replication\\_group](#input\\_replication\\_group) | n/a | `map` | \u003cpre\u003e{\u003cbr\u003e  \"automatic_failover_enabled\": true,\u003cbr\u003e  \"availability_zones\": [\u003cbr\u003e    \"us-west-2a\",\u003cbr\u003e    \"us-west-2b\"\u003cbr\u003e  ],\u003cbr\u003e  \"node_type\": \"cache.m4.large\",\u003cbr\u003e  \"number_cache_clusters\": 2,\u003cbr\u003e  \"parameter_group_name\": \"default.redis3.2\",\u003cbr\u003e  \"port\": 6379,\u003cbr\u003e  \"replication_group_description\": \"test description\",\u003cbr\u003e  \"replication_group_id\": \"tf-rep-group-1\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | n/a | `list(any)` | \u003cpre\u003e[\u003cbr\u003e  \"\"\u003cbr\u003e]\u003c/pre\u003e | no |\n\n## Outputs\n\nNo outputs.\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Policy\n\nThis is the policy required to build this project:\n\n\u003c!-- BEGINNING OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\nThe Terraform resource required is:\n\n```golang\nresource \"aws_iam_policy\" \"terraform_pike\" {\n  name_prefix = \"terraform_pike\"\n  path        = \"/\"\n  description = \"Pike Autogenerated policy from IAC\"\n\n  policy = jsonencode({\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"elasticache:CreateCacheCluster\",\n                \"elasticache:CreateCacheParameterGroup\",\n                \"elasticache:CreateCacheSubnetGroup\",\n                \"elasticache:CreateReplicationGroup\",\n                \"elasticache:DeleteCacheCluster\",\n                \"elasticache:DeleteCacheParameterGroup\",\n                \"elasticache:DeleteCacheSubnetGroup\",\n                \"elasticache:DeleteReplicationGroup\",\n                \"elasticache:DescribeCacheClusters\",\n                \"elasticache:DescribeCacheParameterGroups\",\n                \"elasticache:DescribeCacheParameters\",\n                \"elasticache:DescribeCacheSubnetGroups\",\n                \"elasticache:DescribeReplicationGroups\",\n                \"elasticache:ListTagsForResource\",\n                \"elasticache:ModifyCacheCluster\",\n                \"elasticache:ModifyCacheParameterGroup\",\n                \"elasticache:ModifyCacheSubnetGroup\",\n                \"elasticache:ModifyReplicationGroup\"\n            ],\n            \"Resource\": [\n                \"*\"\n            ]\n        }\n    ]\n})\n}\n\n\n```\n\u003c!-- END OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\n\n## Related Projects\n\nCheck out these related projects.\n\n- [terraform-aws-codecommit](https://github.com/jameswoolfenden/terraform-aws-codecommit) - Storing ones code\n\n## Help\n\n**Got a question?**\n\nFile a GitHub [issue](https://github.com/jameswoolfenden/terraform-aws-elasticache/issues).\n\n## Contributing\n\n### Bug Reports \u0026 Feature Requests\n\nPlease use the [issue tracker](https://github.com/jameswoolfenden/terraform-aws-elasticache/issues) to report any bugs or file feature requests.\n\n## Copyrights\n\nCopyright © 2019-2023 James Woolfenden\n\n## License\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nSee [LICENSE](LICENSE) for full details.\n\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership. The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License. You may obtain a copy of the License at\n\n\u003chttps://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing,\nsoftware distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, either express or implied. See the License for the\nspecific language governing permissions and limitations\nunder the License.\n\n### Contributors\n\n[![James Woolfenden][jameswoolfenden_avatar]][jameswoolfenden_homepage]\u003cbr/\u003e[James Woolfenden][jameswoolfenden_homepage]\n\n[jameswoolfenden_homepage]: https://github.com/jameswoolfenden\n[jameswoolfenden_avatar]: https://github.com/jameswoolfenden.png?size=150\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-elasticache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-elasticache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-elasticache/lists"}