Considere usar o plug- in rabbitmq / rabbitmq-autocluster :
Um plug-in RabbitMQ que agrupa nós automaticamente usando vários mecanismos de descoberta de pares:
- Consul ,
- etcd2
- Registros DNS A
- Tags AWS EC2
- Grupos de escalonamento automático da AWS
Há bastante configuração para conectar-se a essa configuração, incluindo a definição de políticas do IAM e a adição de tags EC2 às instâncias em que você deseja participar do cluster.
Se você usar o AWS Autoscaling Groups, adicione o seguinte ao seu rabbitmq.config:
[
{rabbit, [ ... ]},
{autocluster, [
{backend, aws},
{aws_autoscaling, true},
{aws_ec2_region, "us-west-2"}
]}
].
Se você não estiver usando o AWS Autoscaling Groups, ainda poderá alcançar o resultado desejado usando tags nas suas instâncias do EC2:
[
{rabbit, [ ... ]},
{autocluster, [
{backend, aws},
{aws_ec2_tags, [{"region", "us-west-2"}, {"service", "rabbitmq"}]},
{aws_ec2_region, "us-east-1"},
{aws_access_key, "..."},
{aws_secret_key, "..."}
]}
].
Com tudo isso dito, eu recomendo fortemente o uso do Consul da HashiCorp como seu mecanismo de descoberta de serviços, a longo prazo, você obtém uma flexibilidade significativamente maior em termos de dissociar suas partes do sistema.