All Projects → CitizenPlane → terraform-aws-rabbitmq

CitizenPlane / terraform-aws-rabbitmq

Licence: MIT License
A terraform module to deploy a rabbitmq cluster with AutoScaling Group and Load Balancer

Programming Languages

HCL
1544 projects
shell
77523 projects

Projects that are alternatives of or similar to terraform-aws-rabbitmq

rabbitmq-operator
RabbitMQ Kubernetes operator
Stars: ✭ 16 (-36%)
Mutual labels:  rabbitmq, rabbitmq-cluster
Terraform Aws Dynamodb
Terraform module that implements AWS DynamoDB with support for AutoScaling
Stars: ✭ 49 (+96%)
Mutual labels:  terraform, autoscaling
Autospotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,014 (+7956%)
Mutual labels:  autoscaling-groups, autoscaling
Terraform Ecs Autoscale Alb
ECS cluster with instance and service autoscaling configured and running behind an ALB with path based routing set up
Stars: ✭ 60 (+140%)
Mutual labels:  terraform, autoscaling
AutoSpotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,058 (+8132%)
Mutual labels:  autoscaling-groups, autoscaling
Terraform Aws Rabbitmq
Terraform configuration for creating RabbitMQ cluster on AWS.
Stars: ✭ 86 (+244%)
Mutual labels:  rabbitmq, terraform
Terraform Aws Asg
Terraform AWS Auto Scaling Stack
Stars: ✭ 58 (+132%)
Mutual labels:  terraform, autoscaling
celery-connectors
Want to handle 100,000 messages in 90 seconds? Celery and Kombu are that awesome - Multiple publisher-subscriber demos for processing json or pickled messages from Redis, RabbitMQ or AWS SQS. Includes Kombu message processors using native Producer and Consumer classes as well as ConsumerProducerMixin workers for relay publish-hook or caching
Stars: ✭ 37 (+48%)
Mutual labels:  rabbitmq, rabbitmq-cluster
docker-rabbitmq-ha-cluster
A docker stack to create, test and benchmark a rabbitmq cluster in high availability configuration. HAProxy, php workers, node failures, network partition, persistent messages.
Stars: ✭ 98 (+292%)
Mutual labels:  rabbitmq, rabbitmq-cluster
amq-protocol
AMQP 0.9.1 protocol serialization and deserialization implementation for Ruby (2.0+)
Stars: ✭ 47 (+88%)
Mutual labels:  rabbitmq
RebusSamples
Small sample projects
Stars: ✭ 82 (+228%)
Mutual labels:  rabbitmq
smart-cloud
基于springboot && springcloud的脚手架,支持服务合并部署与拆分部署、接口加解密签名、日志数据 脱敏、接口数据mock、接口文档自动生成、请求幂等校验、接口日志&&sql日志切面打印、分表分库分布式事务、国际化语言等
Stars: ✭ 167 (+568%)
Mutual labels:  rabbitmq
aiorabbit
An AsyncIO RabbitMQ client for Python 3
Stars: ✭ 18 (-28%)
Mutual labels:  rabbitmq
RabbitMQTest
用于RabbitMQ性能测试
Stars: ✭ 37 (+48%)
Mutual labels:  rabbitmq
core
Microservice abstract class
Stars: ✭ 37 (+48%)
Mutual labels:  rabbitmq
celery-priority-tasking
This is a prototype to schedule jobs in the backend based on some priority using Rabbitmq and Celery.
Stars: ✭ 28 (+12%)
Mutual labels:  rabbitmq
Google-Assistant-Samsung-Smart-TV-Integration
Use Google Assistant as a remote for your Samsung Smart TV. There is no need for a Logitech Harmony device.
Stars: ✭ 26 (+4%)
Mutual labels:  rabbitmq
scalr
Autoscaling for Clouds
Stars: ✭ 17 (-32%)
Mutual labels:  autoscaling
alpine-rmq
35MB RabbitMQ Docker image running on Alpine Linux
Stars: ✭ 34 (+36%)
Mutual labels:  rabbitmq
Tesseract
A set of libraries for rapidly developing Pipeline driven micro/macroservices.
Stars: ✭ 20 (-20%)
Mutual labels:  rabbitmq

licence

Rabbitmq AWS Module

This repository is a set of two modules:

  • One to create an Auto Scaling Group that will bind rabbitmq nodes together using the rabbitmq plugins: rabbitmq_peer_discovery_aws

  • The other to declare two new entries on a private route53 zone, and bind them to a load balencer for the web interface management plugin and the default rabbitmq TCP port in order to open new connections and channels.

    cloudcraft_schema

How to use this Module

This module purpose is only to create a Rabbitmq Cluster and the routes to access it. It does not include the creation of a VPC nor the route53 zone used to access the Load balancer.

I'll let you refer to our other modules if you want to use them, otherwise it should be easy enough to plug this module in an already exisiting VPC (the alb beeing optional too).

Apart from the network, there is not much configuration to do as you can see in the example folder. Here are the main settings:

module "rabbit" {
  source = "path/to/module"

  name         = "An useful name to identify your clustser"
  environment  = "Specify the environment (Prod/Staging/Test/whatever...)"

  # To bind the manager together, Rabbitmq uses the Erlang cookie so it knows they can join the cluster
  erl_secret_cookie = "a random secret key"
  # As we use the rabbit_peer_discovery_aws we need credentials that can inspect ec2 or asg groups

  # https://www.rabbitmq.com/cluster-formation.html#peer-discovery-aws
  aws_access_key = "KEY"

  aws_secret_key = "SECRET"

  # See example for full usage of this var, here it's pass so we can name the cluster rabbimtq
  # https://github.com/CitizenPlane/terraform-aws-rabbitmq/blob/dc123d34742202811455d1bea50cb5f779186d2f/user_data/rabbitmq.sh#L122
  cluster_fqdn = "test"

  region                 = "eu-west-3"
  ssh_key_name           = "ft_ssh_key"
  desired_capacity       = 3
  autoscaling_min_size   = 3
  autoscaling_max_size   = 5
  instance_ebs_optimized = false

  vpc_id = "vpc_id"

  # Subnets Zone where the ASG will create your EC2 instances
  external_subnets = ""

  root_volume_size   = 20 # /
  rabbit_volume_size = 50 # /var/lib/rabbitmq

  associate_public_ip_address = true

  # Note : AMI are region related. Make sure the AMI you choose is available in your region
  # https://cloud-images.ubuntu.com/locator/ec2/
  image_id = ""

  # You define the CIDR block that can reach your private ip in your VPC
  # Don't forget to include your EC2 instances
  # Any Network Interface that may need to access this cluster ECR ELB ALB .....
  ingress_private_cidr_blocks = [
    "192.x.x.x/24",
    "10.x.x.x/22",
    "172.x.x.x/16",
  ]

  # A set of Public IPs that can access the cluster from oustide your VPC
  # For instance, these will be used to restrict the Rabbitmq management web interface access
  ingress_public_cidr_blocks = [
    "88.x.x.x/32",
    "195.x.x.x/32",
  ]

  # This is egress only settings for traffic going outside your VPC. You may not want your cluster
  # to be able to reach any ip from oustide your network
  internet_public_cidr_blocks = [
    "0.0.0.0/0",
  ]

  instance_type = ""

  az_count = 3

  cpu_high_limit    = "70"
  cpu_low_limit     = "20"
  memory_high_limit = "70"
  memory_low_limit  = "20"
}

CitizenPlane

Starship Troopers narrator voice: Would you like to know more ? CitizenPlane is hiring take a look here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].