Я создаю инструмент для развертывания образов Docker в EC2 через ElasticBeanstalk, чтобы команда разработчиков могла быстро продемонстрировать свою работу без слияния. Я не хочу, чтобы Elastic IP был включен для этих приложений, поскольку они недолговечны.
Причина, по которой я спрашиваю об этом, заключается в том, что если мой инструмент создает более 5 приложений (и это происходит довольно быстро), то любое новое приложение не будет работать, потому что Elastic IP не может быть назначен новому приложению. Это связано с тем, что в учетной записи AWS обычно доступно максимум 5 эластичных IP-адресов . Я могу зайти в веб-консоль aws и выбрать «Disassociate Elastic IP Address» (см. Ниже) в экземпляре, после чего экземпляр ec2 получит новый ip (через несколько минут). Это то, что я хочу, но я хочу сделать это программно, и предпочел бы загружать приложение без него, а не делать это после создания экземпляра.
Можно ли использовать параметр конфигурации, чтобы отключить Elastic IP для нового экземпляра?
Я использую узел aws-sdk , но подойдут любые советы на любом языке.
Я создаю m1.small
отдельные экземпляры.
Если это невозможно при запуске, мне придется отсоединить Elastic IP от экземпляра, используя функцию EC2.disassociateAddress .
источник
Ответы:
При использовании типа среды «Один экземпляр» вы всегда получаете EIP.
Из руководства разработчика Beanstalk, Типы среды :
Отключение параметра «Связать публичный IP-адрес» не имеет никакого эффекта.
Переключитесь на среду «Балансировка нагрузки, автоматическое масштабирование», чтобы обойтись без EIP.
источник
Если вы находитесь в общедоступной подсети VPC (что вполне вероятно), она необходима для того, чтобы этот экземпляр мог взаимодействовать с Интернетом. Согласно http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :
Автоматически назначенные EIP, которые идут с новым экземпляром, ничего не стоят, и они автоматически исчезают, когда экземпляр выводится из эксплуатации.
источник
aws:ec2:vpc:AssociatePublicIpAddress
в конфигурации EB (и что это свойственно EB одного экземпляра). Кроме того, попросите AWS увеличить ваш лимит EIP - по моему опыту, они с радостью предоставят его в такой ситуации.aws:ec2:vpc:AssociatePublicIpAddress
только для экземпляра ec2, если вы установите значение false, тоdisassociateAddress
экземпляр не будет иметь публичный IP-адрес.Существует вариант среды эластичного бобового стебля, который может быть тем, что вам нужно.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer
Пространство имен: aws: ec2: vpc AssociatePublicIpAddress: false
Если вы установите его, то все узлы, созданные в этой среде, не будут иметь общедоступный IP-адрес. Входящий трафик должен будет использовать балансировщик нагрузки. VPC и подсети должны быть связаны со шлюзом NAT или интернет-шлюзом для получения исходящего доступа в Интернет. Если у вас нет исходящего доступа в Интернет, сборка Elastic Beanstalk завершится неудачно (он не сможет получить доступ к сервисам AWS).
источник
{ "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },
несмотря на это, Elastic IP ассоциируется с этим экземпляром. Любая подсказка?После того, как вы отключите Elastic IP Address, у вас есть около 10 секунд, чтобы «освободить» его. Если вы отпустите его, он не вернется.
источник