我想创建一个跨越三个子网的ELB,然后以某种方式配置三个侦听器,将ELB流量转发到每个子网上的实例。有没有办法在不分层ELB的情况下执行此操作(1个ELB - > 3个子网特定的ELB - >实例)?
为了更具描述性,我想在3个不同的子网中使用3个RabbitMQ集群。消息应该能够通过ELB任意发布到任何RMQ实例。但是,我还希望能够通过使用不同ELB端口指定群集的ELB访问每个群集的管理Web控制台。在上面描述的[不受欢迎的]多层ELB配置中,主ELB将用于发布消息,然后在查看管理控制台时将访问3个特定于子网的ELB。
这是我正在使用的一个示例Terraform ELB资源,它有一个侦听器可以转发到任何子网中的任何实例但是我希望有3个侦听器,其中3个不同的lb_ports只转发给一个实例3个子网:
resource "aws_elb" "rabbit-elb" {
name = "${var.short_name}-rmq-elb"
security_groups = ["${split(",", var.security_groups)}"]
subnets = ["${split(",",var.rabbit_subnets)}"]
instances = ["${aws_instance.rabbitmq.*.id}"]
internal = "true"
cross_zone_load_balancing = true
listener {
instance_port = "${var.elb_port_http}"
instance_protocol = "http"
lb_port = "${var.elb_lb_port_http}"
lb_protocol = "http"
}
}