2012-02-13 10 views
63

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

धन्यवाद

उत्तर

164

मेरे साथी खिलाड़ी और मैं सिर्फ अलग उपलब्धता क्षेत्रों में 2 निजी सबनेट के साथ एक VPC में ईएलबी लागू किया है। टाइमआउट प्राप्त करने का कारण यह है कि प्रत्येक सबनेट के लिए आप लोड बैलेंसर में जोड़ते हैं, इसे एक बाहरी आईपी पता मिलता है। ('dig elb-dns-name-here' को आजमाएं और आप कई आईपी पते देखेंगे)। यदि इनमें से एक आईपी पता एक निजी सबनेट मैप करता है, तो यह समय-समय पर होगा। आपके सार्वजनिक सबनेट में मानचित्रित आईपी काम करेगा। चूंकि DNS आपको किसी भी आईपी पते दे सकता है, कभी-कभी यह काम करता है, कभी-कभी यह समय समाप्त हो जाता है।

अमेज़ॅन के साथ कुछ और आगे के बाद, हमने पाया कि ईएलबी को केवल 'सार्वजनिक' सबनेट में रखा जाना चाहिए, जो कि सबनेट्स है जो इंटरनेट गेटवे के लिए मार्ग है। हम अपने वेब सर्वर को हमारे निजी सबनेट में रखना चाहते थे लेकिन ईएलबी से उनसे बात करने की अनुमति दी। इसे हल करने के लिए, हमें यह सुनिश्चित करना था कि हमारे पास प्रत्येक उपलब्धता क्षेत्र के लिए एक सार्वजनिक सार्वजनिक सबनेट था जिसमें हमारे पास निजी सबनेट थे। इसके बाद हमने प्रत्येक उपलब्धता क्षेत्र के लिए ईएलबी, सार्वजनिक सबनेट्स में जोड़ा।

सबसे पहले, यह काम नहीं कर रहा था, लेकिन सब कुछ करने के बाद, हमने ईएलबी को फिर से बनाया और जैसा कि इसे करना चाहिए सब कुछ। मुझे लगता है कि यह एक बग है, या ईएलबी इतने सारे बदलावों से सिर्फ एक अजीब स्थिति में था।

यहाँ है और अधिक या कम हम क्या किया:

  1. वेबसर्वर -1 सुरक्षा समूह का नाम वेब सर्वर के साथ उपलब्धता क्षेत्र हमें पूर्व -1 बी में PrivateSubnet -1 में चल रहा है।
  2. वेबसेवर -2 2 वेब-सर्वर नामक सुरक्षा समूह के साथ उपलब्धता क्षेत्र में निजी-सबनेट-2 में चल रहा है।
  3. जोन us-east-1b में एक सार्वजनिक सबनेट बनाया गया है, हम इसे PublicSubnet-1 कहते हैं। हमने सुनिश्चित किया कि हमने रूटिंग टेबल को जोड़ा है जिसमें इस नए सबनेट के साथ इंटरनेट गेटवे (ig-xxxxx) का मार्ग शामिल है। (यदि आपने सार्वजनिक/निजी वीपीसी बनाने के लिए विज़ार्ड का उपयोग किया है, तो यह मार्ग पहले से मौजूद है।)
  4. जोन us-east-1c में एक सार्वजनिक सबनेट बनाया गया है, हम इसे PublicSubnet-2 कहते हैं। हमने सुनिश्चित किया कि हमने रूटिंग टेबल को जोड़ा है जिसमें इस नए सबनेट के साथ इंटरनेट गेटवे (ig-xxxxx) का मार्ग शामिल है। (यदि आपने सार्वजनिक/निजी वीपीसी बनाने के लिए विज़ार्ड का उपयोग किया है, तो यह मार्ग पहले से मौजूद है।)
  5. इसमें एक नया ईएलबी बनाया गया, इसमें सार्वजनिक सबबनेट -1 और पब्लिकसबनेट -2 (निजी स्वीबनेट-एक्स नहीं) शामिल है। इसके अलावा, इस मामले में वेबसेवर -1 और वेबसेवर -2 में ईएलबी में चलाने के उदाहरणों को चुना। एक सुरक्षा समूह असाइन करना सुनिश्चित करें जो आने वाले पोर्ट 80 और 443 को अनुमति देता है। इस समूह को elb-group को कॉल करने दें।
  6. वेब-सर्वर समूह में, elb-group से पोर्ट 80 और 443 से ट्रैफ़िक की अनुमति दें।

मुझे उम्मीद है कि इससे मदद मिलती है!

+0

हाँ, हम एक ही निष्कर्ष पर आए, मैं बस इसे अपडेट करना भूल गया। उत्तर के लिए धन्यवाद :) –

+1

यह संबंधित जानकारी का एक अच्छा स्रोत है: https://forums.aws.amazon.com/thread.jspa?messageID=453594񮯚 –

+4

मुझे खेद है कि मेरे पास देने के लिए एक अपवित्र है। धन्यवाद! मैं दीवार के खिलाफ अपने सिर को पिछले 2 घंटों से समझने की कोशिश कर रहा था। – Cfreak

2

हमने ईएलबी को एक निजी सबनेट में लागू किया है, इसलिए यह बयान है कि सभी ईएलबी की सार्वजनिक होने की आवश्यकता पूरी तरह से सच नहीं है। आपको एक एनएटी की जरूरत है। निजी ईएलबी के लिए एक निजी सबनेट बनाएं, वीपीसी डीएनएस चालू करें और फिर सुनिश्चित करें कि निजी रूटिंग तालिका एनएटी के माध्यम से जाने के लिए कॉन्फ़िगर की गई है। ईएलबी और ऐप, और ऐप से डीबी सबनेट्स के बीच यातायात की अनुमति देने के लिए सबनेट सुरक्षा समूहों को भी सेटअप करने की आवश्यकता है।

बीनस्टॉक स्वास्थ्य जांच काम नहीं करेगी क्योंकि वे लोड बैलेंसर तक नहीं पहुंच सकते हैं, लेकिन उन सेवाओं के लिए जो सार्वजनिक पहुंच से बाहर होने की आवश्यकता है, यह एक अच्छा समझौता है।

आपके वीपीसी आर्किटेक्चर को शुरू करने के लिए सुझाए गए पढ़ने की शुरुआत: http://blog.controlgroup.com/2013/10/14/guided-creation-of-cloudformation-templates-for-vpc/

2

आपको निम्नलिखित सेटिंग्स जोड़नी होंगी।

  1. लोक सबनेट क्षेत्र b = सर्वर नेट
  2. निजी सबनेट क्षेत्र c = सर्वर वेब
  3. लोक सबनेट क्षेत्र c = ईएलबी

चाल मार्ग है:

  1. एनएटी के लिए राउटर गेटवे ए
  2. सर्वर वेब पर राउटर एनएटी से जुड़ा हुआ है ।
  3. लोक सबनेट को रूटर प्रवेश द्वार ए के साथ संलग्न है

ईएलबी विवरण:

1.Zone: बंदरगाहों सक्षम: सार्वजनिक सबनेट क्षेत्र ग 2.Instance: सर्वर वेब 3.Security समूह

http://docs.amazonaws.cn/en_us/ElasticLoadBalancing/latest/DeveloperGuide/UserScenariosForVPC.html

+0

मैंने इन निर्देशों को भी उपयोगी पाया: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html# कॉन्फ़िगरेशन -2 – BatteryAcid

9

कुंजी यहाँ समझने, कि तुम नहीं ईएलबी करने के लिए "सबनेट/उपलब्धता क्षेत्रों जोड़ना" हैं, लेकिन निर्दिष्ट किए क्या सबनेट डाल करने के लिए है ईएलबी में उदाहरण है।

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

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

+0

आप अपनी पहली वाक्य में एक महत्वपूर्ण बिंदु बनाते हैं। एडब्ल्यूएस कंसोल इस संबंध में सहज नहीं है। यह किसी को यह विश्वास करने के लिए प्रेरित करता है कि जब आप सार्वजनिक सबनेट में ईएलबी को तैनात करते हैं तो आप अपने निजी सबनेट से ईसी 2 उदाहरण नहीं देखते हैं तो आप कुछ गलत कर रहे हैं। –