2015-01-04 30 views
8

Trong AWS Cloudformation, có cách nào để khai báo một cá thể EC2 trong VPC với một IP công cộng mà không cần cần phải khai báo một IP đàn hồi và đính kèm nó không?Làm thế nào để tạo một Ec2 Instance với IP Public một cách tự động ** mà không cần ** khai báo một IP Đàn hồi trong dạng đám mây?

Trong AWS :: AutoScaling :: LaunchConfiguration, bạn có thể thêm thuộc tính "AssociatePublicIpAddress" để nói rằng các cá thể sẽ tự động chấp nhận IP công khai. Tôi đang tìm kiếm tương đương cho AWS :: EC2 :: Instance

Dưới đây là đoạn mã đám mây của tôi để tạo phiên bản EC2. Tôi không thể có bất kỳ tài liệu nào đề cập đến cách thêm IP công khai mà không phải khai báo trước một IP Elastic.

"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

IP công cộng được gán tự động khi tạo cá thể ec2. Bạn không cần thêm nó theo cách thủ công. Bạn có cần phải thêm IP công cộng không? – BMW

+0

Có cài đặt trong cài đặt mạng con: "Tự động gán IP công khai" bạn đã thử chưa? – Edwin

+0

Câu trả lời của tôi có đúng không, bạn có thể đánh dấu nó như vậy để giúp người khác sắp xếp các câu trả lời hợp lệ không? Cảm ơn –

Trả lời

12

Giả sử bạn đang bắt đầu thể hiện của bạn trong một subnet nào VPC (tức là một subnet mà có một bao gồm bảng định tuyến. Một quy tắc để gửi lưu lượng đến 0.0.0.0/0 đến Gateway Internet), chỉ cần xác định tài sản AutoAssignPublicIPAddress trong nhóm NetworkInterfaces nguồn EC2 của bạn:

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

tài liệu Xem tại http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html

Nếu bạn đang bắt đầu thể hiện của bạn trong EC2 cổ điển mạng (không VPC), nó sẽ nhận được một địa chỉ IP công cộng tự động.

+0

Có thể cấu hình nó trong Subnet, vì vậy tất cả các cá thể EC2 có được IP công cộng theo mặc định không? Tương đương với việc kiểm tra tùy chọn "Tự động gán IP công khai" trong cấu hình mạng con, có sẵn trong giao diện người dùng giao diện điều khiển AWS. –

+0

Tôi không nghĩ điều đó là có thể. API để thay đổi giá trị này là ModifySubnetAttribute (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySubnetAttribute.html) và phải được gọi trên mạng con hiện có. Tôi không thể tìm thấy một tương đương trong CloudFormation nhưng tôi rất muốn được chứng minh sai về điểm này :-) –

+0

Điều này không có ý nghĩa nếu bạn có nhiều mạng con thể hiện có thể được đưa vào (ví dụ như một phần của tự động mở rộng quy mô và tải cân bằng). Nên có (là có thể?) Một thiết lập để chỉ đơn giản là tự động gán một IP công cộng cho trường hợp, mà không cần chỉ định một giao diện mạng? –

3

Tôi thấy rằng đây là một bài đăng cũ nhưng tôi đăng câu trả lời dù sao nó có thể hữu ích. Trong mạng con, bạn có thể đặt: "MapPublicIpOnLaunch" thành True để tất cả cá thể của mạng con này sẽ có IP công khai.

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

Mặc dù nó thực sự đặt mặc định cho IP công cộng con thành true (nghĩa là, là một phần của câu hỏi), có vẻ như các phiên bản CloudFormation-started không tuân theo cài đặt này, vì vậy nó không hữu ích cho bắt đầu một cá thể CF với một ip công cộng – Claude

Các vấn đề liên quan