AWS ECS में एक कार्य और एक सेवा के बीच अंतर क्या है?


114

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

जवाबों:


235

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

एक टास्क तब बनाया जाता है जब आप एक टास्क को सीधे चलाते हैं, जो कंटेनर (एस) (कार्य परिभाषा में परिभाषित) को लॉन्च करता है जब तक कि उन्हें रोक दिया जाता है या अपने आप से बाहर निकल जाता है, जिस बिंदु पर वे स्वचालित रूप से प्रतिस्थापित नहीं होते हैं । रनिंग टास्क सीधे शॉर्ट रनिंग जॉब्स के लिए आदर्श है, शायद एक उदाहरण के रूप में जो CRON के माध्यम से पूरा किया गया था।

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

सेवाओं का उपयोग आमतौर पर वेब सर्वर जैसे लंबे समय तक चलने वाले अनुप्रयोगों के लिए किया जाता है। उदाहरण के लिए, अगर मैंने ओरेगन (हमें-पश्चिम -2) में Node.JS द्वारा संचालित अपनी वेबसाइट पर तैनात किया है, तो मैं उच्च-उपलब्धता के लिए तीन उपलब्धता जोन (AZ) में चलने वाले कम से कम तीन कार्य कहना चाहूंगा; यदि कोई विफल रहता है तो मेरे पास एक और दो हैं और असफल एक को बदल दिया जाएगा (पढ़ें कि आत्म चिकित्सा के रूप में !)। एक सेवा बनाना ऐसा करने का तरीका है। यदि मेरे क्लस्टर में 6 EC2 इंस्टेंसेस हैं, तो 2 प्रति AZ, सेवा स्वचालित रूप से क्षेत्रों में टास्क को संतुलित करेगी, जबकि यह सीपीयू, मेमोरी और नेटवर्क संसाधनों पर भी विचार कर सकता है।

अपडेट करें:

मुझे यकीन नहीं है कि यह इन चीजों को श्रेणीबद्ध रूप से सोचने में मदद करता है।

एक और बहुत महत्वपूर्ण बिंदु यह है कि लोड बैलेंसर का उपयोग करने के लिए एक सेवा को कॉन्फ़िगर किया जा सकता है, जिससे कि यह कार्य बनाता है - अर्थात यह कार्य में परिभाषित कंटेनरों को लॉन्च करता है - सेवा स्वचालित रूप से लोड बैलेंसर के साथ कंटेनर के EC2 उदाहरण को पंजीकृत करेगी। कार्य लोड बैलेंसर का उपयोग करने के लिए कॉन्फ़िगर नहीं किया जा सकता है, केवल सेवा कर सकते हैं।


1
बहुत बहुत धन्यवाद @talentedmrjones! क्या यह तब भी उतना ही सरल है जितना "शॉर्ट-रनिंग जॉब के लिए टास्क का उपयोग करना, और लंबे समय तक चलने वाली सेवाओं के लिए सर्विस का उपयोग करना"? कोई भी मौका जिस पर आप टिप्पणी कर सकते हैं "क्या टास्क और सेवा कार्य की परिभाषा के पदानुक्रम के बराबर है, या सेवा कार्य से बना है"?
बॉब जोंस

मुझे समझ में नहीं आता है: जब कार्य बनाया गया है तो मैं पर्यावरण चर के मूल्यों को बदल सकता हूं लेकिन यह सेवा के लिए संभव नहीं लगता है
निकोले क्लिमचुक

1
@NikolayKlimchuk सेवाएं केवल कार्यों का प्रबंधन करती हैं - यह स्वयं कार्य हैं जो एन्वार को परिभाषित और उपयोग करते हैं।
bwobst

एक "कार्य समूह" क्या है
red888

@NikolayKlimchuk देर से जवाब के लिए खेद है। कंटेनरों को शेड्यूल करने के लिए सेवाओं का उपयोग किया जाता है , कंटेनरों को परिभाषित करने के लिए कार्यों का उपयोग किया जाता है । यही कारण है कि आप env var को नियंत्रित करने के लिए कार्यों का उपयोग करते हैं।
टैलेंटेडमर्जोन्स

42

@Talentedmrjones द्वारा शब्दों में खूबसूरती से समझाया गया है। नीचे दी गई तस्वीर आपको आसानी से कल्पना करने में मदद करेगी :)

क्लस्टर, सेवा, EC2 इंस्टेंस और कार्य में कार्य


अच्छा दृश्य! :-)
sgsi

2
यदि कोई उत्तर दर्शक अमेज़ॅन ईसीएस में एक गहरा गोता लगाना चाहता है, तो कृपया freecodecamp.org/news/… पर जाएँ । खूबसूरती से समझाया!
RealPK

@realPK वास्तव में बहुत उपयोगी पृष्ठ है, सिफारिश के लिए धन्यवाद!
क्रिस्टोफ

2

कार्य परिभाषा:

यह वह ब्लूप्रिंट है जिसमें बताया गया है कि कौन डॉकर कंटेनर चलाता है और आपके आवेदन का प्रतिनिधित्व करता है। इसमें कई कार्य शामिल हैं।

कार्य परिभाषा;

सर्विस:

टास्क डेफिनिशन का एक उदाहरण। यह किसी भी समय, ऑटोसालिंग और लोड संतुलन में एक टास्क डेफिनिशन रन से न्यूनतम और अधिकतम टास्क को परिभाषित करता है।

ईसीएस कंटेनर उदाहरण:

यह एक EC2 उदाहरण है जिसमें Docker और उस पर चलने वाला ECS कंटेनर एजेंट है। एजेंट ईसीएस और उदाहरण के बीच संचार का ख्याल रखता है, चल रहे कंटेनरों की स्थिति प्रदान करता है और नए चलने वाले प्रबंधन करता है।

रिश्ता:

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.