Tworzę narzędzie do wdrażania obrazów Docker na EC2 za pomocą ElasticBeanstalk, aby zespół programistów mógł szybko demonstrować swoją pracę bez konieczności łączenia. Nie chcę włączać elastycznego adresu IP dla tych aplikacji, ponieważ są one krótkotrwałe.
Pytam o to, ponieważ jeśli moje narzędzie tworzy więcej niż 5 aplikacji (i działa dość szybko), każda nowa aplikacja zawiedzie, ponieważ do nowej aplikacji nie można przypisać elastycznego adresu IP. Wynika to z faktu, że na koncie AWS zwykle dostępnych jest maksymalnie 5 elastycznych adresów IP . Mogę przejść do konsoli internetowej aws i wybrać opcję „Odłącz elastyczny adres IP” (patrz poniżej) w instancji, po czym instancja ec2 otrzyma nowy adres IP (po kilku minutach). Tego właśnie chcę, ale chcę to zrobić programowo i wolałbym uruchomić aplikację bez niego, zamiast robić to po utworzeniu instancji.
Czy istnieje opcja konfiguracji, której można użyć do wyłączenia elastycznego adresu IP dla nowej instancji?
Korzystam z węzła aws-sdk , ale wystarczą wszelkie wskazówki w dowolnym języku.
Tworzę m1.small
pojedyncze wystąpienia.
Jeśli nie jest to możliwe podczas uruchamiania, będę musiał oddzielić Elastyczny adres IP od instancji za pomocą funkcji EC2.disassociateAddress .
Odpowiedzi:
Korzystając ze środowiska typu „Pojedyncze wystąpienie”, zawsze otrzymujesz EIP.
Z przewodnika programisty Beanstalk, Typy środowiska :
Wyłączenie opcji „Powiąż publiczny adres IP” nie ma żadnego efektu.
Przejdź do środowiska „Równoważenie obciążenia, skalowanie automatyczne”, aby obejść się bez EIP.
źródło
Jeśli znajdujesz się w publicznej podsieci VPC (co jest prawdopodobne), jest ona wymagana, aby ta instancja mogła komunikować się z Internetem. Na http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :
Automatycznie przypisane numery EIP, które są dostarczane z nową instancją, nic nie kosztują i automatycznie znikają, gdy instancja zostanie wycofana z eksploatacji.
źródło
aws:ec2:vpc:AssociatePublicIpAddress
w swojej konfiguracji EB (i że jest to specyficzne dla EB z pojedynczą instancją). Ewentualnie poproś AWS o zwiększenie limitu EIP - z mojego doświadczenia wynika, że chętnie go przyznają w takiej sytuacji.aws:ec2:vpc:AssociatePublicIpAddress
dotyczy tylko instancji ec2, jeśli ustawisz wartość false,disassociateAddress
instancja nie będzie miała publicznego adresu IP.Istnieje elastyczna opcja środowiska łodyg fasoli, która może być tym, czego szukasz.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer
Przestrzeń nazw: aws: ec2: vpc AssociatePublicIpAddress: false
Jeśli ją ustawisz, wszystkie węzły utworzone przez to środowisko nie będą miały publicznego adresu IP. Ruch przychodzący będzie musiał korzystać z modułu równoważenia obciążenia. VPC i podsieci będą musiały być połączone z bramą NAT lub bramą internetową, aby uzyskać dostęp do wychodzącego Internetu. Jeśli nie masz wychodzącego dostępu do Internetu, kompilacja elastycznej fasoli zakończy się niepowodzeniem (nie będzie w stanie uzyskać dostępu do usług AWS).
źródło
{ "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },
mimo to Elastyczne IP jest powiązane z tym wystąpieniem. Jakieś wskazówki?Po odłączeniu elastycznego adresu IP masz około 10 sekund na jego „zwolnienie”. Jeśli go zwolnisz, nie wróci.
źródło