{"id":46337284,"url":"https://github.com/squareops/terraform-aws-rabbitmq","last_synced_at":"2026-03-04T19:05:36.459Z","repository":{"id":264182660,"uuid":"590743543","full_name":"squareops/terraform-aws-rabbitmq","owner":"squareops","description":"Terraform module for deploying RabbitMQ on AWS, providing a scalable and resilient messaging broker solution for efficient communication between applications.","archived":false,"fork":false,"pushed_at":"2024-11-22T13:03:37.000Z","size":73,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T09:53:59.914Z","etag":null,"topics":["aws","rabbitmq","terraform"],"latest_commit_sha":null,"homepage":"https://squareops.com","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/squareops.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-19T05:01:46.000Z","updated_at":"2024-11-22T13:02:52.000Z","dependencies_parsed_at":"2024-11-22T21:20:00.316Z","dependency_job_id":null,"html_url":"https://github.com/squareops/terraform-aws-rabbitmq","commit_stats":null,"previous_names":["squareops/terraform-aws-rabbitmq"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/squareops/terraform-aws-rabbitmq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squareops%2Fterraform-aws-rabbitmq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squareops%2Fterraform-aws-rabbitmq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squareops%2Fterraform-aws-rabbitmq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squareops%2Fterraform-aws-rabbitmq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squareops","download_url":"https://codeload.github.com/squareops/terraform-aws-rabbitmq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squareops%2Fterraform-aws-rabbitmq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30090042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T18:31:08.343Z","status":"ssl_error","status_checked_at":"2026-03-04T18:31:07.708Z","response_time":59,"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":["aws","rabbitmq","terraform"],"created_at":"2026-03-04T19:05:35.666Z","updated_at":"2026-03-04T19:05:36.427Z","avatar_url":"https://github.com/squareops.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"## AWS RabbitMQ Terraform Module\n![squareops_avatar]\n\n[squareops_avatar]: https://squareops.com/wp-content/uploads/2022/12/squareops-logo.png\n\n### [SquareOps Technologies](https://squareops.com/) Your DevOps Partner for Accelerating cloud journey.\n\u003cbr\u003e\nThis module provides an easy and efficient way to provision and manage RabbitMQ clusters on AWS. It simplifies the process of creating highly available and scalable RabbitMQ infrastructures by automating the deployment and configuration tasks.\nFeatures\n\n  1. Easy Configuration: The module allows you to define your RabbitMQ clusters and related resources using a concise and declarative syntax.\n\n  2. High Availability: It supports the creation of RabbitMQ clusters with multiple nodes distributed across availability zones, ensuring fault tolerance and high availability.\n\n  3. Security: The module integrates with AWS security features, allowing you to define security groups and control access to your RabbitMQ clusters.\n\n  4. Scalability: You can easily scale your RabbitMQ clusters up or down by adjusting the number of nodes and instance types.\n\n  5. Monitoring and Alerting: It provides integration with CloudWatch, enabling you to monitor key metrics and set up alerts for your RabbitMQ clusters.\n\n  6. Logging: The module supports logging of RabbitMQ server logs to CloudWatch Logs or other specified destinations.\n\n  7. Maintenance: You can configure maintenance windows for your RabbitMQ clusters to control the timing of maintenance activities.\n\n  8. Secrets Management: The module supports the use of AWS Secrets Manager to securely store and manage RabbitMQ credentials.\n\n  9. Customization: It offers a wide range of customizable parameters, allowing you to tailor the RabbitMQ configuration to your specific needs.\n\n  10. CloudWatch Alerts: Set up CloudWatch alarms to monitor the health and performance of your Redis cluster. Integrate these alarms with AWS Simple Notification Service (SNS) to receive real-time alerts. Use AWS Lambda functions to customize your alerting logic, and send notifications to Slack channels for immediate visibility into your AWS RabbitMQ status.\n\n## Uses Example\n```hcl\nmodule \"rabbitmq_broker\" {\n  source                           = \"squareops/rabbitmq/aws\"\n  version                          = \"2.1.2\"\n  name                             = local.name\n  username                         = \"admin\"\n  storage_type                     = \"ebs\"\n  engine_version                   = local.engine_version\n  host_instance_type               = local.host_instance_type\n  environment                      = local.environment\n  vpc_id                           = local.vpc_id\n  subnet_ids                       = local.subnet_ids\n  deployment_mode                  = \"SINGLE_INSTANCE\"\n  apply_immediately                = true\n  publicly_accessible              = false\n  authentication_strategy          = \"simple\"\n  allowed_security_groups          = local.allowed_security_groups\n  cloudwatch_metric_alarms_enabled = true\n  alarm_cpu_threshold_percent      = 70\n  alarm_memory_used_threshold      = \"10000000\" # in bytes\n  slack_notification_enabled       = false\n  slack_username                   = \"\"\n  slack_channel                    = \"\"\n  slack_webhook_url                = \"https://hooks.slack.com/services/xxxxxxxxx\"\n  maintenance_window_start_time = {\n    day_of_week = \"SUNDAY\"\n    time_of_day = \"00:30\"\n    time_zone   = \"GMT\"\n  }\n}\n\n\n```\n## Important Notes\n1. This module permit safety institution regulations to permit access to the broker.\n2. By default, the variable create_random_password is set to true. Therefore, even if the user provides a password, it will not be read. The create_random_password variable should be set to false and the password variable should have a non-null value to be read and used.\n\n\u003c!-- ## Security \u0026 Compliance [\u003cimg src=\"\thttps://prowler.pro/wp-content/themes/prowler-pro/assets/img/logo.svg\" width=\"250\" align=\"right\" /\u003e](https://prowler.pro/)\n\nSecurity scanning is graciously provided by Prowler. Proowler is the leading fully hosted, cloud-native solution providing continuous cluster security and compliance.\n\n| Benchmark | Description |\n|--------|---------------|\n| Ensure that encryption is enabled for RDS instances | Enabled for RDS created using this module. | --\u003e\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\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= 4.23 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | \u003e= 3.0.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_archive\"\u003e\u003c/a\u003e [archive](#provider\\_archive) | n/a |\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 4.23 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | \u003e= 3.0.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_cw_sns_slack\"\u003e\u003c/a\u003e [cw\\_sns\\_slack](#module\\_cw\\_sns\\_slack) | ./lambda | n/a |\n| \u003ca name=\"module_security_group_mq\"\u003e\u003c/a\u003e [security\\_group\\_mq](#module\\_security\\_group\\_mq) | terraform-aws-modules/security-group/aws | 4.13.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_metric_alarm.cache_cpu](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_metric_alarm) | resource |\n| [aws_cloudwatch_metric_alarm.memory_used](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_metric_alarm) | resource |\n| [aws_kms_ciphertext.slack_url](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_ciphertext) | resource |\n| [aws_kms_key.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key) | resource |\n| [aws_lambda_permission.sns_lambda_slack_invoke](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |\n| [aws_mq_broker.amazonmq](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/mq_broker) | resource |\n| [aws_secretsmanager_secret.secret_mq](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret) | resource |\n| [aws_secretsmanager_secret_version.secret](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret_version) | resource |\n| [aws_security_group_rule.cidr_ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_security_group_rule.default_ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_security_group_rule.https_ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_sns_topic.slack_topic](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sns_topic) | resource |\n| [aws_sns_topic_subscription.slack-endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sns_topic_subscription) | resource |\n| [random_password.password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [archive_file.lambdazip](https://registry.terraform.io/providers/hashicorp/archive/latest/docs/data-sources/file) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_alarm_actions\"\u003e\u003c/a\u003e [alarm\\_actions](#input\\_alarm\\_actions) | Alarm action list | `list(string)` | `[]` | no |\n| \u003ca name=\"input_alarm_cpu_threshold_percent\"\u003e\u003c/a\u003e [alarm\\_cpu\\_threshold\\_percent](#input\\_alarm\\_cpu\\_threshold\\_percent) | CPU threshold alarm level | `number` | `75` | no |\n| \u003ca name=\"input_alarm_memory_used_threshold\"\u003e\u003c/a\u003e [alarm\\_memory\\_used\\_threshold](#input\\_alarm\\_memory\\_used\\_threshold) | Alarm threshold for the 'lowFreeStorageSpace' alarm | `string` | `\"1000000000\"` | no |\n| \u003ca name=\"input_allowed_cidr_blocks\"\u003e\u003c/a\u003e [allowed\\_cidr\\_blocks](#input\\_allowed\\_cidr\\_blocks) | A list of CIDR blocks that are allowed to access the Amazon MQ cluster. | `list(any)` | `[]` | no |\n| \u003ca name=\"input_allowed_security_groups\"\u003e\u003c/a\u003e [allowed\\_security\\_groups](#input\\_allowed\\_security\\_groups) | A list of Security Group IDs that are allowed to access the Amazon MQ cluster. | `list(any)` | `[]` | no |\n| \u003ca name=\"input_apply_immediately\"\u003e\u003c/a\u003e [apply\\_immediately](#input\\_apply\\_immediately) | Specifies whether any broker modifications are applied immediately or during the next maintenance window. | `bool` | `true` | no |\n| \u003ca name=\"input_authentication_strategy\"\u003e\u003c/a\u003e [authentication\\_strategy](#input\\_authentication\\_strategy) | The authentication strategy used to secure the broker. | `string` | `\"simple\"` | no |\n| \u003ca name=\"input_auto_minor_version_upgrade\"\u003e\u003c/a\u003e [auto\\_minor\\_version\\_upgrade](#input\\_auto\\_minor\\_version\\_upgrade) | Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. | `bool` | `false` | no |\n| \u003ca name=\"input_cloudwatch_metric_alarms_enabled\"\u003e\u003c/a\u003e [cloudwatch\\_metric\\_alarms\\_enabled](#input\\_cloudwatch\\_metric\\_alarms\\_enabled) | Boolean flag to enable/disable CloudWatch metrics alarms | `bool` | `false` | no |\n| \u003ca name=\"input_cw_sns_topic_arn\"\u003e\u003c/a\u003e [cw\\_sns\\_topic\\_arn](#input\\_cw\\_sns\\_topic\\_arn) | The username to use when sending notifications to Slack. | `string` | `\"\"` | no |\n| \u003ca name=\"input_deployment_mode\"\u003e\u003c/a\u003e [deployment\\_mode](#input\\_deployment\\_mode) | The deployment mode of the Amazon MQ cluster. | `string` | `\"SINGLE_INSTANCE\"` | no |\n| \u003ca name=\"input_engine_type\"\u003e\u003c/a\u003e [engine\\_type](#input\\_engine\\_type) | The type of broker engine used in the Amazon MQ cluster. | `string` | `\"RabbitMQ\"` | no |\n| \u003ca name=\"input_engine_version\"\u003e\u003c/a\u003e [engine\\_version](#input\\_engine\\_version) | The version of the broker engine used in the Amazon MQ cluster. | `string` | `\"\"` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | The name of the environment where the Amazon MQ cluster is deployed. | `string` | `\"\"` | no |\n| \u003ca name=\"input_host_instance_type\"\u003e\u003c/a\u003e [host\\_instance\\_type](#input\\_host\\_instance\\_type) | The instance type of the Amazon MQ broker. For example, 'mq.t3.micro' or 'mq.m5.large'. | `string` | `\"\"` | no |\n| \u003ca name=\"input_maintenance_window_start_time\"\u003e\u003c/a\u003e [maintenance\\_window\\_start\\_time](#input\\_maintenance\\_window\\_start\\_time) | The configuration block for the maintenance window start time. | \u003cpre\u003eobject({\u003cbr\u003e    day_of_week = string\u003cbr\u003e    time_of_day = string\u003cbr\u003e    time_zone   = string\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"day_of_week\": \"MONDAY\",\u003cbr\u003e  \"time_of_day\": \"22:45\",\u003cbr\u003e  \"time_zone\": \"Europe/Berlin\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | The name of the Amazon MQ cluster. It provides a unique identifier for the cluster. | `string` | `\"\"` | no |\n| \u003ca name=\"input_ok_actions\"\u003e\u003c/a\u003e [ok\\_actions](#input\\_ok\\_actions) | The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_port\"\u003e\u003c/a\u003e [port](#input\\_port) | The port number on which the RabbitMQ cluster will be accessible. | `number` | `5671` | no |\n| \u003ca name=\"input_publicly_accessible\"\u003e\u003c/a\u003e [publicly\\_accessible](#input\\_publicly\\_accessible) | Whether to enable connections from applications outside of the VPC that hosts the broker's subnets | `bool` | `false` | no |\n| \u003ca name=\"input_recovery_window_aws_secret\"\u003e\u003c/a\u003e [recovery\\_window\\_aws\\_secret](#input\\_recovery\\_window\\_aws\\_secret) | Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. | `number` | `0` | no |\n| \u003ca name=\"input_slack_channel\"\u003e\u003c/a\u003e [slack\\_channel](#input\\_slack\\_channel) | The Slack channel where notifications will be posted. | `string` | `\"\"` | no |\n| \u003ca name=\"input_slack_notification_enabled\"\u003e\u003c/a\u003e [slack\\_notification\\_enabled](#input\\_slack\\_notification\\_enabled) | Whether to enable/disable slack notification. | `bool` | `false` | no |\n| \u003ca name=\"input_slack_username\"\u003e\u003c/a\u003e [slack\\_username](#input\\_slack\\_username) | The username to use when sending notifications to Slack. | `string` | `\"\"` | no |\n| \u003ca name=\"input_slack_webhook_url\"\u003e\u003c/a\u003e [slack\\_webhook\\_url](#input\\_slack\\_webhook\\_url) | The Slack Webhook URL where notifications will be sent. | `string` | `\"\"` | no |\n| \u003ca name=\"input_storage_type\"\u003e\u003c/a\u003e [storage\\_type](#input\\_storage\\_type) | (optional) Storage type of the broker, only ebs work with mq.m5.large | `string` | `null` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | The IDs of the subnets in which the Amazon MQ broker will be launched. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_username\"\u003e\u003c/a\u003e [username](#input\\_username) | The username of the user for authentication. | `string` | `\"\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | The ID of the VPC where the Amazon MQ cluster will be created. | `string` | `\"\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_rabbitmq_broker_arn\"\u003e\u003c/a\u003e [rabbitmq\\_broker\\_arn](#output\\_rabbitmq\\_broker\\_arn) | The Amazon Resource Name (ARN) of the RabbitMQ broker. |\n| \u003ca name=\"output_rabbitmq_broker_console_url\"\u003e\u003c/a\u003e [rabbitmq\\_broker\\_console\\_url](#output\\_rabbitmq\\_broker\\_console\\_url) | The URL of the RabbitMQ Web Console for managing the broker. |\n| \u003ca name=\"output_rabbitmq_broker_endpoint\"\u003e\u003c/a\u003e [rabbitmq\\_broker\\_endpoint](#output\\_rabbitmq\\_broker\\_endpoint) | The wire-level protocol endpoint of the RabbitMQ broker. |\n| \u003ca name=\"output_rabbitmq_broker_id\"\u003e\u003c/a\u003e [rabbitmq\\_broker\\_id](#output\\_rabbitmq\\_broker\\_id) | The unique identifier of the RabbitMQ broker. |\n| \u003ca name=\"output_rabbitmq_password\"\u003e\u003c/a\u003e [rabbitmq\\_password](#output\\_rabbitmq\\_password) | The password for accessing the RabbitMQ cluster. Note that Terraform does not track this password after initial creation. |\n| \u003ca name=\"output_rabbitmq_security_group\"\u003e\u003c/a\u003e [rabbitmq\\_security\\_group](#output\\_rabbitmq\\_security\\_group) | The security group ID associated with the RabbitMQ cluster. |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Contribute \u0026 Issue Report\n\nTo report an issue with a project:\n\n  1. Check the repository's [issue tracker](https://github.com/sq-ia/terraform-aws-rabbitmq/issues) on GitHub\n  2. Search to check if the issue has already been reported\n  3. If you can't find an answer to your question in the documentation or issue tracker, you can ask a question by creating a new issue. Make sure to provide enough context and details.\n\n## License\n\nApache License, Version 2.0, January 2004 (https://www.apache.org/licenses/LICENSE-2.0)\n\n## Support Us\n\nTo support our GitHub project by liking it, you can follow these steps:\n\n  1. Visit the repository: Navigate to the [GitHub repository](https://github.com/sq-ia/terraform-aws-rabbitmq)\n\n  2. Click the \"Star\" button: On the repository page, you'll see a \"Star\" button in the upper right corner. Clicking on it will star the repository, indicating your support for the project.\n\n  3. Optionally, you can also leave a comment on the repository or open an issue to give feedback or suggest changes.\n\nStaring a repository on GitHub is a simple way to show your support and appreciation for the project. It also helps to increase the visibility of the project and make it more discoverable to others.\n\n## Who we are\n\nWe believe that the key to success in the digital age is the ability to deliver value quickly and reliably. That’s why we offer a comprehensive range of DevOps \u0026 Cloud services designed to help your organization optimize its systems \u0026 Processes for speed and agility.\n\n  1. We are an AWS Advanced consulting partner which reflects our deep expertise in AWS Cloud and helping 100+ clients over the last 5 years.\n  2. Expertise in Kubernetes and overall container solution helps companies expedite their journey by 10X.\n  3. Infrastructure Automation is a key component to the success of our Clients and our Expertise helps deliver the same in the shortest time.\n  4. DevSecOps as a service to implement security within the overall DevOps process and helping companies deploy securely and at speed.\n  5. Platform engineering which supports scalable,Cost efficient infrastructure that supports rapid development, testing, and deployment.\n  6. 24*7 SRE service to help you Monitor the state of your infrastructure and eradicate any issue within the SLA.\n\nWe provide [support](https://squareops.com/contact-us/) on all of our projects, no matter how small or large they may be.\n\nTo find more information about our company, visit [squareops.com](https://squareops.com/), follow us on [Linkedin](https://www.linkedin.com/company/squareops-technologies-pvt-ltd/), or fill out a [job application](https://squareops.com/careers/). If you have any questions or would like assistance with your cloud strategy and implementation, please don't hesitate to [contact us](https://squareops.com/contact-us/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquareops%2Fterraform-aws-rabbitmq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquareops%2Fterraform-aws-rabbitmq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquareops%2Fterraform-aws-rabbitmq/lists"}