Я настраиваю конечную точку API, которая должна быть доступна только из других приложений внутри моего VPC.
Приложение находится на Elastic Beanstalk, и, похоже, я могу установить для балансировщика нагрузки значение Internal или Public. AWS дает такое объяснение:
Make your load balancer internal if your application serves requests only from connected VPCs. Public load balancers serve requests from the Internet.
Я планировал сделать балансировщик нагрузки / приложение общедоступным и просто установил правила для входящего трафика, чтобы ограничить трафик из других приложений внутри VPC.
В чем разница между выбором этого параметра по сравнению с тем, чтобы сделать балансировщик нагрузки общедоступным, и настройкой группы безопасности, чтобы разрешать только входящие запросы от моего VPC? Разве это не то же самое?
Это не эквивалент.
Когда вы устанавливаете для балансировщика нагрузки значение «Внутренний», сетевые интерфейсы балансировщика нагрузки будут получать только частные IP-адреса в соответствии с зонами доступности и подсетями, в которые вы их поместили. Только системы, использующие внутренний IP-адрес, который маршрутизируется на IP-адреса балансировщика нагрузки, смогут для доступа к балансировщику нагрузки. Это будет означать, что клиенты должны быть в одном VPC или подключены через VPN, Direct Connect и т. Д.
Когда вы устанавливаете для Load Balancer общедоступный, Load Balancer будет получать общедоступные IP-адреса на внешних интерфейсах и частные IP-адреса на внутренних интерфейсах в соответствии с зонами доступности и подсетями, в которые вы его поместили. По этой причине входящие запросы к Load Balancer Балансировщик будет работать через общедоступный Интернет с использованием общедоступных IP-адресов, даже если он поступает от клиента, находящегося в той же зоне доступности, что и балансировщик нагрузки. Это также будет означать, что и балансировщику нагрузки, и клиентским системам потребуется доступ к общедоступному Интернету. Если они расположены в AWS, это означает, что их нужно будет разместить в подсети, которая настроена как общедоступная и имеет интернет-шлюз. Наконец, если вы хотите фильтровать доступ на основе группы безопасности, вам придется фильтровать его на основе общедоступных IP-адресов ваших клиентских систем.
С внутренней стороны (то есть между балансировщиком нагрузки и сервером) ничего не меняется. Сервер / служба будет видеть соединения только с внутренних IP-адресов балансировщика нагрузки.
Таким образом, если говорить более конкретно, большая разница в том, что соединения между клиентом и внутренним балансировщиком нагрузки будут частными и останутся в вашем VPC, или соединения между клиентом и общедоступным балансировщиком нагрузки будут общедоступными и будут проходить через общедоступный Интернет, даже если это означает находится где-то в центре обработки данных AWS. Это напрямую повлияет на ваши группы безопасности, если они используют частные IP-адреса или общедоступные IP-адреса.