Elastic IP를 구성하지 않고 Elastic Beanstalk를 통해 인스턴스 시작


10

ElasticBeanstalk를 통해 Docker 이미지를 EC2에 배포하는 도구를 만들고 있으므로 개발자 팀은 병합하지 않고도 작업을 신속하게 시연 할 수 있습니다. 이 앱의 수명이 짧기 때문에 Elastic IP를 활성화하고 싶지 않습니다.

내가 묻는 이유는 내 도구가 5 개 이상의 앱을 빌드하면 (그리고 매우 빠름) 새 앱에 탄력적 IP를 할당 할 수 없기 때문에 새로운 앱이 실패하기 때문입니다. AWS 계정은 일반적으로 최대 5 개의 탄력적 IP를 사용할 수 있기 때문 입니다. AWS 웹 콘솔로 이동하여 인스턴스에서 '탄력적 IP 주소 연결 해제'(아래 참조)를 선택하면 ec2 인스턴스가 몇 분 후에 새 IP를 얻습니다. 이것은 내가 원하는 것이지만 프로그래밍 방식으로하고 싶으며 인스턴스가 만들어지면 앱을 사용하지 않고 부팅하는 것을 선호합니다.

연결 해제 메뉴 옵션

새 인스턴스에서 탄력적 IP를 비활성화하는 데 사용할 수있는 구성 옵션이 있습니까?

aws-sdk 노드를 사용하고 있지만 모든 언어의 팁이 필요합니다.

m1.small단일 인스턴스를 만들고 있습니다.

시작할 때 이것이 가능하지 않으면 EC2.disassociateAddress 함수를 사용하여 인스턴스에서 Elastic IP를 연결 해제 해야 합니다.


개인 서브넷에서 시작하는 경우 : stackoverflow.com/questions/39086022/…
lonewarrior556

답변:


10

환경 유형 "단일 인스턴스"를 사용하면 항상 EIP를 얻습니다.

에서 콩 줄기 개발자 가이드, 환경 유형 :

단일 인스턴스 환경에는 탄력적 IP 주소를 가진 하나의 Amazon EC2 인스턴스가 포함됩니다.

"공용 IP 주소 연결"옵션을 비활성화해도 아무런 영향이 없습니다.

EIP없이 액세스하려면 "로드 밸런싱, 자동 스케일링"환경으로 전환하십시오.


여기에있는 다른 답변과는 달리, 이것은 실제로 내 문제를 해결 했으므로 감사합니다. 형태.
Jacob Davis-Hansson

1

이 앱의 수명이 짧기 때문에 Elastic IP를 활성화하고 싶지 않습니다.

VPC의 퍼블릭 서브넷에있을 경우 해당 인스턴스가 인터넷과 통신 할 수 있어야합니다. 당 http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :

퍼블릭 서브넷의 인스턴스가 인터넷과 통신 할 수있게하려면 퍼블릭 IP 주소 또는 인스턴스의 프라이빗 IP 주소와 연결된 탄력적 IP 주소가 있어야합니다 . 인스턴스는 VPC 및 서브넷 내에 정의 된 프라이빗 (내부) IP 주소 공간 만 인식합니다. 인터넷 게이트웨이는 인스턴스 대신 논리적으로 일대일 NAT를 제공하므로 트래픽이 VPC 서브넷을 떠나 인터넷으로 이동할 때 응답 주소 필드가 인스턴스의 퍼블릭 IP 주소 또는 탄력적 IP 주소로 설정됩니다. 비공개 IP 주소가 아닙니다. 반대로, 퍼블릭 IP 주소 또는 인스턴스의 탄력적 IP 주소로 향하는 트래픽은 트래픽이 VPC로 전달되기 전에 대상 주소가 인스턴스의 프라이빗 IP 주소로 변환됩니다.

새 인스턴스와 함께 제공되는 자동 할당 EIP는 비용이 들지 않으며 인스턴스가 해제되면 자동으로 사라집니다.


답변 해 주셔서 감사합니다.보고있는 문제 및 웹 콘솔을 통해 문제를 해결할 수있는 방법을 설명하는 질문에 더 많은 정보를 추가했습니다. AWS의 작동 방식에 대해 잘 모르고 있지만 더 감사하게 생각할 수 있습니다.
에드.

@ 에드. EB에 익숙하지 않지만 aws:ec2:vpc:AssociatePublicIpAddressEB 구성에서 설정하려는 문서와 비슷 합니다 (이것은 단일 인스턴스 EB에 고유합니다). 또는 AWS에 EIP 한도 증가를 요청하십시오. 내 경험상 이러한 상황에서 행복하게 부여 할 것입니다.
ceejayoz 2016 년

응원 할게요
에드.

위의 깃발을 사용해 보았습니다. 나는 단지 SDK를 통해 disassociateAddress를 호출 할 것이라고 생각한다.
에드.

1
레코드의 경우 : aws:ec2:vpc:AssociatePublicIpAddressec2 인스턴스에만 해당하며, 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는 해당 인스턴스에 연결됩니다. 단서가 있습니까?
Kostanos

1
사실이 아닙니다. eip에는 영향을 미치지 않습니다
A-Developer-Has-No-Name

0

탄력적 IP 주소를 분리 한 후 약 10 초 동안 '해제'해야합니다. 해제하면 다시 나타나지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.