У меня есть веб-сервис с несколькими серверами EC2 за AWS ELB. Насколько я понимаю, конечная точка ELB не может иметь статический IP-адрес, потому что это решение для балансировки нагрузки на основе DNS, и это проектное решение, принятое командой ELB.
Однако один из сторонних партнеров, с которыми мы интегрировались, требует IP-адреса наших серверов из-за ограничений внутренней инфраструктуры (да, я знаю).
После некоторых исследований я планирую подготовить сквозной обратный прокси-сервер SSL за статическим IP-адресом и передавать запросы нашей конечной точке ELB. Этот сервер будет использоваться только этим клиентом. Я, вероятно, буду использовать HAProxy, потому что прокси-серверу необходимо динамически разрешать IP-адрес ELB.
Плюсы :
Минусы :
Это единственный способ, которым я придумал, не меняя нашу инфраструктуру. Я хотел бы услышать ваш вклад, что бы вы сделали, если бы оказались в такой ситуации?
В конце концов, я использую решение TCP SSL для сквозного обратного прокси, вот моя конфигурация HAProxy:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
timeout connect 10s
timeout client 1m
timeout server 1m
option tcplog
log-format %ci:%cp\ [%t]\ %ft\ %b/%s/%si\ %Tw/%Tc/%Tt\ %B\ %ts\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq
log global
resolvers dns
nameserver google 8.8.8.8
# pass 80 port request to AWS ELB
listen http-proxy
bind *:80
mode tcp
server elb my.elb.amazonaws.com:80 check resolvers dns
# pass 443 port request to AWS ELB
listen https-proxy
bind *:443
mode tcp
server elb my.elb.amazonaws.com:443 check resolvers dns
Некоторое объяснение:
Я сделал несколько тестов, и все работает хорошо.
Однако я заметил обратную сторону (или просто не знал, как ее решить)
Это может вызвать проблемы, если вы хотите разрешить некоторым IP-адресам доступ к определенной службе.
Если стоимость не является проблемой, клиентский контроль доступа (CAC) Akamai предлагает решения для статических IP-адресов. Это дорого, но должно хорошо работать.
Если вы хотите создать самостоятельно, вы можете создать два экземпляра с эластичными IP-адресами (и предоставить эти два IP-адреса сторонним партнерам), а затем использовать Route53 для проверки работоспособности, чтобы избежать SPoF.