Это довольно распространенная проблема, но я не могу найти правильный ответ, как это сделать.
У меня есть два приложения, которые будут работать на EC2. Эти приложения будут в отдельных группах автомасштабирования, которые находятся за собственными ELB. Эти 2 приложения должны взаимодействовать друг с другом, поэтому им необходимо знать внутренний DNS ELB.
Я могу придумать несколько способов сделать это:
Fn::Gett
(или что-то подобное), а затем запишите это значение в переменную окружения в приложении.Вариант №2 был бы лучшим случаем, и я предполагаю, что это процесс, который является наиболее инфра-как-кодом. Однако я не могу найти надлежащую документацию о том, как это сделать.
Если кто-то может посоветовать мне правильный способ решения этой проблемы, я очень признателен. Спасибо.
Каждый ELB имеет Назначенное AWS DNS-имя что вам следует использовать.
Если вы создаете ELB через CloudFormation, вы можете получить имя с помощью Fn:GetAtt ELB.DNSName
как описано в AWS :: ElasticLoadBalancing :: LoadBalancer Возвращаемые значения:
[...]
MyELB:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
...
Outputs:
ELBName:
Value: !GetAtt MyELB.DNSName <<< Like this
Кстати Никогда ссылаются непосредственно на разрешенные IP-адреса где угодно, потому что они часто меняются, например, когда ELB масштабируется вверх, вниз, проходит техническое обслуживание и т. д.
Надеюсь, это поможет :)