У меня есть много экземпляров EC2, каждый из которых в настоящее время имеет связанный с ним публичный адрес IPv4:
Пример | Публичный IP | ДНС |
---|---|---|
juno |
7.8.9.10 |
ec2-1-2-3-4.compute-1.amazonaws.com |
ceres |
7.8.9.11 |
ec2-1-2-3-5.compute-1.amazonaws.com |
venus |
7.8.9.12 |
ec2-1-2-3-6.compute-1.amazonaws.com |
В настоящее время мой DNS настроен так, чтобы указывать поддомены на каждый экземпляр следующим образом:
Поддомен | CNAME |
---|---|
juno |
ec2-1-2-3-4.compute-1.amazonaws.com |
ceres |
ec2-1-2-3-5.compute-1.amazonaws.com |
venus |
ec2-1-2-3-6.compute-1.amazonaws.com |
пока все хорошо. эта настройка работает. однако у нее есть недостаток, заключающийся в необходимости одного публичного адреса IPv4 на экземпляр, а, как известно, адресов IPv4 становится все меньше и их использование становится все более дорогим.
Каков наилучший способ сократить количество адресов IPv4, потребляемых этим кластером серверов?
решение1
Обратный прокси, такой как ALB, будет работать хорошо. У него, вероятно, есть один публичный IP на AZ, но он может принимать трафик для многих доменов и отправлять его на нужный экземпляр. Вы также можете использовать экземпляр Nginx, но сервисы, как правило, предпочтительнее серверов.
У меня есть шесть личных доменов, размещенных в AWS, и ни одного адреса IPv4. Мои экземпляры EC2 имеют адреса IPv6, DNS для доменов указывает на CloudFlare. CloudFlare связывается с сервером по IPv6 и делает веб-сайт доступным по IPv4. У меня не было никаких проблем, просто потребовалось немного поэкспериментировать с конфигурацией Nginx, чтобы все заработало. Я не использую балансировщик нагрузки для своих личных веб-сайтов, для коммерческих веб-сайтов, вероятно, использовал бы.