Эластичный балансировщик нагрузки, указывающий на частную подсеть
Я создал Elastic Load Balancer с выходом в Интернет, чтобы он указывал на мои экземпляры EC2 в VPC, как я делал это много раз, однако теперь я использую частную подсеть с шлюзом nat для управления исходящим трафиком и передачи его через канал. белый список IP.
К сожалению, один только этот балансировочный груз испытывает периодические проблемы с подключением, которые вызывают все виды проблем, включая Cloudfront, надежно связывающихся с исходным сайтом.
Это хорошо работает с общедоступной подсетью (в действительности, я теперь поменял ее прямо), но не с частной подсетью.
Любые мысли будут с благодарностью приняты,
Крис
1 ответ
Единственный способ заставить его работать надежно - это указать его в двух общедоступных подсетях.
Это по замыслу.
Балансировщики нагрузки приложений (ALB) и классические ELB, ориентированные на Интернет, должны предоставляться исключительно в общедоступных подсетях.
Это всегда верно, независимо от того, находятся ли экземпляры за балансировщиком в частных подсетях или нет.
Если балансировщик размещен в частных подсетях, браузер не может установить соединение с балансировщиком, потому что маршрут подсети балансировщика по умолчанию отличается от Интернет-шлюза - поэтому ответы балансировщика ошибочно перенаправляются и время ожидания соединения. Тайм-ауты становятся прерывистыми, если балансировщик находится в смеси общих и частных подсетей, потому что некоторые соединения достигают балансировщика через общую подсеть (и работают), в то время как другие достигают балансировщика через частную подсеть (и нет).
Балансировщик не должен находиться в каких-либо частных подсетях, поскольку таблица маршрутов VPC всегда содержит неявный маршрут, который позволяет всем подсетям в VPC достигать всех других подсетей, подчиняясь только группе безопасности и правилам ACL сети. Нет недостатка в производительности, если балансировщик находится в совершенно разных подсетях, чем в экземплярах.