Назад | Перейти на главную страницу

Как разместить веб-сервер в частной подсети в AWS и открыть его для всего мира через порт 80

Я пытаюсь настроить высокодоступное развертывание AWS Magento. Здесь есть эталонное развертывание: http://docs.aws.amazon.com/quickstart/latest/magento/architecture.html

На основе этого я хочу создать свою собственную, и мне нравится его идея, в которой только экземпляры NAT находятся в общедоступной подсети.

Экземпляры RDS и веб-серверы находятся за NAT в частных подсетях. Я считаю, что это отклонение от большей части моего понимания, которое заключалось в том, что веб-сервер должен находиться в общедоступной подсети, чтобы быть доступным из Интернета.

Мне не хватает того, как настроить экземпляр NAT, работающий в общедоступной подсети, для перенаправления порта 80/443 на соответствующий веб-сервер за NAT в частной подсети. Я не верю, что это можно сделать с помощью групп безопасности только на экземпляре NAT.

Обычно для этой цели не следует использовать экземпляр NAT, который на самом деле более правильно называть экземпляром PAT (преобразование адресов порта, подмножество NAT). Экземпляр NAT существует для предоставления экземпляров в частных подсетях с исходящим доступом к Интернету и большинству сервисов AWS (например, SQS или SNS) - трафик исходящих запросов, инициированный экземплярами в частных подсетях (которые по определению имеют только частные IP-адреса). ) маскируется через общедоступный IP-адрес экземпляра NAT. Это возможно для настройки экземпляра NAT со статическими сопоставлениями портов или более сложным доступом к внутренним службам либо через iptables, либо путем запуска обратного прокси на экземпляре NAT, но это не типичная конфигурация.

Доступность веб-серверов через Интернет показана на рисунке 2 связанной документации. Elastic Load Balancer, развернутый в общедоступных подсетях, имеет общедоступные IP-адреса, а также частные IP-адреса. Он принимает трафик из Интернета на публичной стороне и перенаправляет его на ваши веб-серверы на частной стороне.

ELB обеспечивает единую логическую точку доступа ко всем внутренним экземплярам извне и не будет перенаправлять трафик на экземпляры, которые он не считает «работоспособными».

Я написал об этом пост с несколькими практическими правилами:

https://thepassionatecraftsman.com/where-to-put-your-server-in-a-private-or-public-subnet-ab1fa971269c#.hwx0gsaiy