2015-01-04 2 views
8

AWS Cloudformation에서없이 Public IP 을 사용하여 VPC에서 EC2 인스턴스를 선언 할 수있는 방법이 있습니까? Elastic IP를 선언하고 첨부해야합니까?** 공용 IP를 사용하여 Ec2 인스턴스를 자동으로 만들지 ** ** 구름 모양의 탄성 IP를 선언하지 않으시겠습니까?

AWS :: AutoScaling :: LaunchConfiguration에서 "AssociatePublicIpAddress"속성을 추가하여 인스턴스가 공용 IP를 자동으로 수락 할 수 있다고 말할 수 있습니다. AWS :: EC2 :: Instance에 대한 해당 항목을 찾고 있습니다.

다음은 EC2 인스턴스를 만드는 데 사용하는 내 cloudformation 스 니펫입니다. 나는 Elastic IP를 미리 선언 할 필요없이 공용 IP를 추가하는 방법을 언급 한 어떤 문서도 없다.

"MyEc2Instance": { 
    "Type": "AWS::EC2::Instance", 
    "Properties": { 
     "IamInstanceProfile": { 
      "Ref": "MyEc2InstanceProfile" 
     }, 
     "ImageId": { 
      "Fn::FindInMap": [ 
       "MyEc2Box", 
       { 
        "Ref": "Region" 
       }, 
       "ImageId" 
      ] 
     }, 
     "InstanceType": { 
      "Fn::FindInMap": [ 
       "MyEc2Box", 
       { 
        "Ref": "Region" 
       }, 
       "InstanceType" 
      ] 
     }, 
     "KeyName": { 
      "Ref": "DefaultKeyPair" 
     }, 
     "Monitoring": "true", 
     "SecurityGroupIds": [ 
      { 
       "Ref": "MyEc2SecurityGroup" 
      } 
     ], 
     "SubnetId": { 
      "Ref": "MyBoxSubnet" 
     }, 
     "Tags": [ 
      { 
       "Key": "Name", 
       "Value": "MyBox" 
      }, 
     ] 
    } 
}, 
+0

ec2 인스턴스를 만들 때 공용 IP가 자동으로 할당됩니다. 수동으로 추가 할 필요는 없습니다. 공용 IP를 추가해야합니까? – BMW

+0

서브넷 설정에 "공용 IP 자동 할당"설정을 시도해 보셨습니까? – Edwin

+0

내 대답이 올바른 것인지, 다른 답변으로 올바른 답변을 분류 할 수 있도록 표시 할 수 있습니까? 감사합니다 –

답변

12

당신이 (라우팅 테이블 포함 인터넷 게이트웨이에 0.0.0.0/0 트래픽을 보낼 수 있습니다. 규칙을 가지고 서브넷 즉), 단지 AutoAssignPublicIPAddress 속성을 정의한 VPC 공공 서브넷에서 인스턴스를 시작하는 가정 당신의 EC2 자원의 NetworkInterfaces 그룹 : 당신이 (비 VPC를) 네트워킹 EC2 클래식에서 인스턴스를 시작하는 경우 http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html

에서

  "NetworkInterfaces" : [{ 
       "AssociatePublicIpAddress" : "True", 
       "DeleteOnTermination" : "True", 
       "SubnetId" : { "Ref" : "PublicSubnet" }, 
       "DeviceIndex" : "0", 
       "GroupSet" : [ { "Ref" : "SecurityGroup" } ] 
      }], 

참조 문서를 자동으로 공용 IP 주소를 받게됩니다.

+0

서브넷에서 구성 할 수 있습니까? 그래서 모든 EC2 인스턴스가 기본적으로 공개 IP를 받습니까? 서브넷 구성에서 "공용 IP 자동 할당"옵션을 선택하는 것과 동일하며 AWS 콘솔 UI에서 사용할 수 있습니다. –

+0

나는 그것이 가능하다고 생각하지 않는다. 이 값을 변경하는 API는 ModifySubnetAttribute (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySubnetAttribute.html)이며 기존 서브넷에서 호출해야합니다. CloudFormation에서 해당 항목을 찾을 수 없지만이 시점에서 잘못 입증되고 싶습니다. –

+0

인스턴스가 시작될 수있는 여러 서브넷이있는 경우 (예 : 자동 크기 조정 및로드의 일부로) 균형 잡기). 네트워크 인터페이스를 지정하지 않고 인스턴스에 공용 IP를 자동으로 할당하는 설정이 있어야합니다 (아마도 있을까요?)? –

3

나는 이것이 오래된 게시물 인 것을 알고 있지만 어쨌든 나는 도움이 될 수있다. 서브넷에서 "MapPublicIpOnLaunch"를 True로 설정하면이 서브넷의 모든 인스턴스가 공용 IP를 갖게됩니다.

MapPublicIpOnLaunch 

Indicates whether instances that are launched in this subnet receive a public IP address. By default, the value is false. 

Required: No 

Type: Boolean 

Update requires: No interruption. 
+1

실제로 서브넷 공용 IP의 기본값을 true로 설정했지만 (사실상 질문의 일부 임) CloudFormation이 시작한 인스턴스가이 설정을 준수하지 않는 것으로 보이므로 유용하지 않습니다. 공용 IP로 CF 인스턴스 시작하기 – Claude

관련 문제