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