2015-01-04 18 views
8

एडब्ल्यूएस क्लाउडफॉर्मेशन में, क्या वीपीसी में एक सार्वजनिक आईपी के साथ के बिना एक लोचदार आईपी घोषित करने और उससे जुड़ी आवश्यकता के बिना ईसी 2 आवृत्ति घोषित करने का कोई तरीका है?मैं एक सार्वजनिक आईपी के साथ स्वचालित रूप से एक Ec2 इंस्टेंस कैसे बना सकता हूं ** बिना ** ** क्लाउडफ़ॉर्मेशन में लोचदार आईपी घोषित करता हूं?

एडब्ल्यूएस :: ऑटोस्केलिंग :: लॉन्च कॉन्फ़िगरेशन में, आप यह कहने के लिए "एसोसिएटपब्लिकआईपी एड्रेस" संपत्ति जोड़ सकते हैं कि उदाहरण स्वचालित रूप से एक सार्वजनिक आईपी स्वीकार करेंगे। मैं एडब्ल्यूएस :: ईसी 2 :: इंस्टेंस

के बराबर की तलाश में हूं, नीचे एक ईसी 2 उदाहरण बनाने के लिए मेरा क्लाउडॉर्मेशन स्निपेट है। मैं कोई भी दस्तावेज़ नहीं कर सकता जो बताता है कि एक एलआईपीपी आईपी घोषित किए बिना सार्वजनिक आईपी कैसे जोड़ना है।

"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 उदाहरण बनाते समय सार्वजनिक आईपी स्वचालित रूप से असाइन किया जाता है। आपको इसे मैन्युअल रूप से जोड़ने की आवश्यकता नहीं है। क्या आपको सार्वजनिक आईपी भेजने की आवश्यकता है? – BMW

+0

सबनेट सेटिंग्स में एक सेटिंग है: "आपने सार्वजनिक आईपी ऑटो-असाइन किया" क्या आपने कोशिश की है? – Edwin

+0

क्या मेरा उत्तर सही होना चाहिए, क्या आप इसे वैध उत्तरों को हल करने में मदद करने के लिए इस तरह चिह्नित कर सकते हैं? धन्यवाद –

उत्तर

12

मान लें कि आप एक VPC सार्वजनिक सबनेट में अपने उदाहरण शुरू कर रहे हैं (यानी एक सबनेट एक अनुमार्गण तालिका incl। एक नियम इंटरनेट गेटवे 0.0.0.0/0 के लिए यातायात भेजने के लिए है), बस AutoAssignPublicIPAddress संपत्ति को परिभाषित अपने EC2 संसाधन के NetworkInterfaces समूह में: 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" } ] 
      }], 

दस्तावेज़ देखें आप EC2 क्लासिक में अपने उदाहरण शुरू कर रहे हैं, तो नेटवर्किंग (गैर VPC), यह एक सार्वजनिक आईपी पते स्वतः प्राप्त होगा।

+0

क्या इसे सबनेट में कॉन्फ़िगर करना संभव है, इसलिए सभी EC2 उदाहरण डिफ़ॉल्ट रूप से एक सार्वजनिक आईपी प्राप्त करते हैं? एडब्ल्यूएस कंसोल यूआई में उपलब्ध सबनेट कॉन्फ़िगरेशन में "ऑटो-असाइन पब्लिक आईपी" विकल्प को जांचने के बराबर। –

+0

मुझे नहीं लगता कि यह संभव है। इस मान को बदलने के लिए एपीआई ModifySubnetAttribute (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySubnetAttribute.html) है और मौजूदा सबनेट पर कॉल किया जाना चाहिए। मुझे क्लाउडफॉर्मेशन में समकक्ष नहीं मिल रहा है, लेकिन मुझे इस बिंदु पर गलत साबित होना अच्छा लगेगा :-) –

+0

यदि आपके पास एकाधिक सबनेट्स लॉन्च किए जा सकते हैं तो यह समझ में नहीं आता है (उदाहरण के लिए ऑटो स्केलिंग और लोड के हिस्से के रूप में संतुलन)। नेटवर्क इंटरफ़ेस निर्दिष्ट किए बिना, उदाहरण के लिए बस एक सार्वजनिक आईपी असाइन करने के लिए एक सेटिंग (क्या हो सकता है?) होना चाहिए? –

3

मुझे लगता है कि यह एक पुरानी पोस्ट है लेकिन मैं जवाब पोस्ट करता हूं वैसे भी यह सहायक हो सकता है। सबनेट में आप सेट कर सकते हैं: "MapPublicIpOnLaunch" को सही करने के लिए इस सबनेट के सभी उदाहरणों में एक सार्वजनिक आईपी होगा।

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

हालांकि यह वास्तव में सबनेट सार्वजनिक आईपी के लिए डिफ़ॉल्ट सेट करता है (जो, सचमुच, प्रश्न का हिस्सा था), ऐसा लगता है कि क्लाउडफॉर्मेशन-शुरू किए गए उदाहरण इस सेटिंग का पालन नहीं करते हैं, इसलिए यह उपयोगी नहीं है एक सार्वजनिक आईपी के साथ एक सीएफ उदाहरण शुरू करना – Claude

संबंधित मुद्दे