Запускайте екземпляри через Elastic Beanstalk без налаштування Elastic IP


10

Я створюю інструмент для розгортання Docker-зображень на EC2 через ElasticBeanstalk, тому команда розробників може швидко демонструвати свою роботу без злиття. Я не хочу, щоб Elastic IP увімкнено для цих додатків, оскільки вони короткочасні.

Причина, про яку я прошу це, полягає в тому, що якщо мій інструмент створить більше 5 додатків (і це досить швидко), будь-яке нове додаток вийде з ладу, оскільки жодному еластичному IP-адресу не можна призначити новий додаток. Це відбувається тому, що в обліковому записі AWS зазвичай доступно максимум 5 еластичних IP-адрес . Я можу зайти до веб-консолі aws і вибрати "Disassociate Elastic IP Address" (див. Нижче) для екземпляра, після чого екземпляр ec2 отримає новий ip (через кілька хвилин). Це те, що я хочу, але я хочу це робити програмно, і я вважаю за краще завантажувати додаток без нього, а не робити це після створення екземпляра.

відключити варіант меню

Чи є варіант конфігурації, який я можу використовувати, щоб відключити Elastic IP для нового примірника?

Я використовую вузол aws-sdk , але будь-які поради з будь-якої мови будуть робити.

Я створюю m1.smallпоодинокі екземпляри.

Якщо під час запуску це неможливо, мені доведеться відмежувати Elastic IP від ​​примірника за допомогою функції EC2.disassociateAddress .


Якщо ви запускаєте в приватній підмережі: stackoverflow.com/questions/39086022 / ...
lonewarrior556

Відповіді:


10

Використовуючи тип середовища "Один екземпляр", ви завжди отримуєте EIP.

З посібника для розробників Beanstalk, Типи навколишнього середовища :

Середовище одного примірника містить один екземпляр Amazon EC2 з IP-адресою Elastic.

Відключення параметра "Асоційована публічна IP-адреса" не впливає.

Перейдіть до середовища "Балансування навантаження, автоматичне масштабування", щоб пройти без EIP.


На відміну від інших відповідей тут, це фактично вирішило мою проблему, тому дякую :) Для майбутніх мандрівників у новому діалоговому вікні створення середовища ви вибираєте опцію "Завантажити балансування" під кнопкою "Налаштувати додаткові параметри" в кінці створення середовища. форма.
Джейкоб Девіс-Хансон

1

Я не хочу, щоб Elastic IP увімкнено для цих додатків, оскільки вони короткочасні.

Якщо ви знаходитесь у загальнодоступній підмережі VPC (що, швидше за все,), потрібно, щоб цей примірник мав змогу спілкуватися з Інтернетом. За http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :

Щоб екземпляр у вашій загальнодоступній підмережі спілкувався з Інтернетом, він повинен мати загальнодоступну IP-адресу або еластичну IP-адресу, пов’язану з приватною IP-адресою у вашому екземплярі . Ваш примірник знає лише приватний (внутрішній) простір IP-адрес, визначений у VPC та підмережі. Інтернет-шлюз логічно надає NAT один на один від імені вашого примірника, так що, коли трафік залишає вашу підмережу VPC і переходить в Інтернет, поле адреси відповіді встановлюється на загальнодоступну IP-адресу або еластичну IP-адресу вашого примірника , а не його приватна IP-адреса. І навпаки, для трафіку, призначеного для загальнодоступної IP-адреси або еластичної IP-адреси вашого примірника, його адреса призначення переведена в приватну IP-адресу екземпляра до доставки трафіку в VPC.

Автоматично призначені EIP, що постачаються з новим екземпляром, нічого не коштують, і вони автоматично відходять, коли екземпляр вимикається.


Дякую за вашу відповідь, я додав більше інформації до питання, що пояснює проблему, яку я бачу, і як я можу її обійти за допомогою веб-консолі. Я можу нерозуміти, як працює AWS - але ви можете порадити далі, я буду дуже вдячний.
ред.

@ed. Я не дуже знайомий з EB, але це схоже на документи, які ви хочете встановити aws:ec2:vpc:AssociatePublicIpAddressу вашому конфігурації EB (і що це властиво одноосібним EB). Крім того, попросіть AWS збільшити ваш ліміт EIP - на мій досвід, вони із задоволенням нададуть це в такій ситуації.
ceejayoz

ура, я спробую це.
ред.

Я намагався прапор вище безрезультатно. Я думаю, що я просто зателефоную DissociateAddress через sdk.
ред.

1
Для запису: aws:ec2:vpc:AssociatePublicIpAddressє лише для екземпляра ec2, якщо ви встановите його на значення false, то disassociateAddressекземпляр не матиме публічного IP-адреси.
ред.

0

Існує варіант еластичного оточення, який може бути тим, що ви шукаєте.

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).


Я додав це до конфігурації EBS: { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },Навіть так, Elastic IP асоціюється з цим екземпляром. Якась підказка?
Костанос

1
це неправда, це не впливає на eip
A-Developer-Has-No-Name

0

Після відключення еластичної IP-адреси у вас є близько 10 секунд, щоб "звільнити" її. Якщо ви відпустите його, він не повернеться.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.