2015-12-29 26 views
37

मैं सेटअप करने के लिए एक बुनियादी वेब अनुप्रयोग है, जो एक संबद्ध डेटाबेस है, एडब्ल्यूएस ईसीएस में कोशिश कर रहा हूँ। स्थानीय रूप से मेरे पास ये कंटेनर अलग-अलग कंटेनर में हैं, और ईसीएस पर, मैं अलग-अलग कार्य परिभाषाएं चाहता हूं ताकि मैं दोनों अलग-अलग स्केल कर सकूं।एडब्ल्यूएस ईसीएस में कार्य परिभाषाओं के बीच कंटेनरों को जोड़ना?

  1. मैंने अपनी पहली कार्य परिभाषा david_mongodb सफलतापूर्वक ईसीएस में पंजीकृत की। इसमें david_mongodb नामक कंटेनर है।
  2. फिर मैंने अपनी दूसरी कार्य परिभाषा david_web के रूप में पंजीकृत करने का प्रयास किया, जिसमें david_web नामक कंटेनर है जो david_mongodb:db के माध्यम से डेटाबेस को लिंक करता है।

    Unable to create Task Definition 
    Linked container 'david_mongodb:db' doesn't exist. 
    

यह कार्य परिभाषाओं की तरह लगता है अन्य कार्य परिभाषा में कंटेनर नाम नहीं देख सकते हैं:

  • जब मैं 'निर्मित करें' पर क्लिक करें, यह एक त्रुटि देता है? मैं एक ही कार्य परिभाषा काम करेगा में दोनों david_web और david_mongodb कंटेनर डाल सोच रहा हूँ, लेकिन मैं ऐसा नहीं करना चाहता: यह मुझे अलग से या तो वेब एप्लिकेशन या डेटाबेस स्केलिंग से रोका जा सके। This overview ... पुष्टि करते हैं कि मेरी वास्तुकला की सिफारिश की है लगता है

    तो मैं कैसे कंटेनरों कि विभिन्न कार्य परिभाषाओं में रहते हैं लिंक करूं? या क्या इसे संभालने का एक और चालाक तरीका है?

  • +0

    [अमेज़न ईसीएस अब समर्थन करता है नेटवर्किंग मोड और मेमोरी आरक्षण] (https://forums.aws.amazon.com/ann.jspa?annID=3980) वहाँ ईएलबी – RajDev

    +1

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

    +0

    मुझे विश्वास नहीं है कि नेटवर्किंग मोड इसे हल करता है। आपको अभी भी पता होना चाहिए कि कौन सा नोड (और आईपी) जहां कार्य भूमि है। – CashIsClay

    उत्तर

    51

    ईसीएस कार्य परिभाषा में लिंक Docker links के समान हैं और केवल तभी काम करते हैं जब कंटेनर एक ही कार्य परिभाषा का हिस्सा होते हैं (कंटेनर जो एक ही कार्य परिभाषा का हिस्सा होते हैं उसी होस्ट पर एक साथ रखे जाते हैं)। विभिन्न कार्य परिभाषाओं में कंटेनर के बीच संवाद करने के लिए, आपको यह पता लगाने के लिए एक तंत्र की आवश्यकता होगी कि कंटेनर कहां स्थित हैं (कौन सा होस्ट) साथ ही संचार के लिए बंदरगाह भी है।

    ईसीएस के पास service सुविधा के माध्यम से ईएलबी के साथ एकीकरण है, जहां कार्य ईएलबी में स्वचालित रूप से पंजीकृत हो जाएंगे और ईएलबी में उचित रूप से पंजीकृत हो जाएंगे। आप ईएलबी से बचना चाहते हैं, एक और पैटर्न हो सकता है एक ambassador container (वहाँ एक नमूना ecs-task-kite ईसीएस एपीआई का उपयोग करता है कहा जाता है) या आप ओवरले नेटवर्क में रुचि हो सकती है (Weave उनके समाधान के लिए एक काफी विस्तृत getting started guide है)।

    Service Discovery for Amazon ECS Using DNS एक अलग दृष्टिकोण का वर्णन करता है जहां एक लैम्ब्डा फ़ंक्शन क्लाउडवॉच ईवेंट के माध्यम से ईसीएस ईवेंट स्ट्रीम को सुनता है और रूट 53 DNS रिकॉर्ड्स अपडेट करता है।

    Nathan Peck ईसीएस से संबंधित विभिन्न विषयों का ट्रैक रख रहा है, जिसमें सेवा खोज, here शामिल है।

    +0

    जानना अच्छा है। क्या उस संप्रेषण के लिए कोई निर्धारित तंत्र है? डीएनएस + ईएलबी दिमाग में आता है, लेकिन क्या ऐसा कोई समाधान है जिसके लिए ईएलबी की आवश्यकता नहीं है? –

    +1

    मैं संभव दृष्टिकोण के अधिक विवरण के साथ मेरा उत्तर को नवीनीकृत किया है (ईएलबी, राजदूत कंटेनर, और ओवरले नेटवर्क)। –

    +0

    महान संसाधन, धन्यवाद! –

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