Cloud & IT Cert Prep · पाठ

ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ

कंटेनर इमेज और संसाधन सीमाओं के साथ ECS टास्क परिभाषाएँ निर्धारित कीजिए, उन्हें क्लस्टर में पंजीकृत कीजिए और वांछित संख्या बनाए रखने के लिए एक सेवा बनाइए।

पाठ 1, कुल 4 में से13 चरण

ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ, CoddyKit पर Cloud & IT Cert Prep का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cloud & IT Cert Prep सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cloud & IT Cert Prep पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

AWS पर कंटेनर क्यों?

कंटेनर किसी एप्लिकेशन और उसकी सभी निर्भरताओं को एक पोर्टेबल, पृथक इकाई में पैकेज करते हैं, जो अलग-अलग परिवेशों में एक समान रूप से चलती है। Amazon ECS (Elastic Container Service) AWS की पूरी तरह प्रबंधित कंटेनर ऑर्केस्ट्रेशन सेवा है, जो आपको नियंत्रण तल प्रबंधित किए बिना Docker कंटेनर चलाने देती है। ECS AWS सेवाओं (IAM, ALB, CloudWatch, Secrets Manager) के साथ गहराई से एकीकृत होती है और Kubernetes की जटिलता के बिना AWS पर कंटेनर चलाने का अनुशंसित तरीका है।

ECS क्लस्टर: समूह बनाने की इकाई

ECS क्लस्टर उन कंप्यूट संसाधनों का तार्किक समूह है जहाँ आपके कंटेनर चलते हैं। किसी क्लस्टर में EC2 इंस्टेंस (EC2 लॉन्च प्रकार), Fargate क्षमता (Fargate लॉन्च प्रकार), या दोनों हो सकते हैं। एक क्लस्टर में कई सेवाएँ और स्वतंत्र कार्य चलाए जा सकते हैं। क्लस्टर क्षेत्र-विशिष्ट होते हैं, लेकिन कई Availability Zone में फैले होते हैं। एक सामान्य तरीका यह है कि प्रत्येक परिवेश (dev/staging/prod) के लिए एक क्लस्टर रखा जाए और हर क्लस्टर में अलग-अलग माइक्रोसर्विस के लिए कई सेवाएँ हों।

aws ecs create-cluster \
  --cluster-name 'MyAppCluster' \
  --capacity-providers FARGATE FARGATE_SPOT \
  --default-capacity-provider-strategy \
    capacityProvider=FARGATE,weight=1,base=1

कार्य परिभाषाएँ: खाका

कार्य परिभाषा ECS में कंटेनर चलाने का खाका है—यह Docker Compose फ़ाइल के समान है। इसमें कंटेनर इमेज (ECR URI या Docker Hub), CPU और मेमोरी आवंटन, पोर्ट मैपिंग, पर्यावरण चर, लॉगिंग कॉन्फ़िगरेशन, वॉल्यूम और IAM कार्य भूमिका निर्दिष्ट होते हैं। कार्य परिभाषा का संस्करण बनाया जाता है—हर संशोधन अपरिवर्तनीय होता है। साइडकार पैटर्न (मुख्य ऐप + लॉग भेजने वाला + निगरानी एजेंट) के लिए आप प्रति कार्य कई कंटेनर परिभाषित कर सकते हैं।

{
  'family': 'myapp-task',
  'networkMode': 'awsvpc',
  'requiresCompatibilities': ['FARGATE'],
  'cpu': '512',
  'memory': '1024',
  'executionRoleArn': 'arn:aws:iam::123456789012:role/ecsTaskExecutionRole',
  'taskRoleArn': 'arn:aws:iam::123456789012:role/myAppTaskRole',
  'containerDefinitions': [{
    'name': 'myapp',
    'image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest',
    'portMappings': [{'containerPort': 8080}]
  }]
}

कार्य भूमिका बनाम निष्पादन भूमिका

ECS कार्य अलग-अलग उद्देश्यों के लिए दो पृथक IAM भूमिकाओं का उपयोग करते हैं। कार्य निष्पादन भूमिका का उपयोग ECS एजेंट द्वारा ECR से कंटेनर इमेज खींचने, CloudWatch को लॉग भेजने और कार्य शुरू होते समय Secrets Manager या Parameter Store से गुप्त मान प्राप्त करने के लिए किया जाता है। कार्य भूमिका का उपयोग कंटेनर के भीतर चल रहा एप्लिकेशन कोड AWS सेवाओं (S3, DynamoDB, SQS) को कॉल करने के लिए करता है। प्रत्येक भूमिका को अलग-अलग न्यूनतम आवश्यक अनुमतियाँ दें—निष्पादन भूमिका को ऐसी अनुमतियाँ कभी न दें जिनकी एप्लिकेशन को आवश्यकता नहीं है।

दीर्घकालिक कार्यभार के लिए ECS सेवाएँ

ECS सेवा एक साथ चल रहे कार्य इंस्टेंस की निर्दिष्ट संख्या (वांछित संख्या) बनाए रखती है। यदि कोई कार्य विफल हो जाता है या रुक जाता है, तो सेवा शेड्यूलर अपने-आप उसका स्थान लेने के लिए नया कार्य शुरू करता है। सेवाएँ ट्रैफ़िक वितरण के लिए Elastic Load Balancing के साथ एकीकृत होती हैं और क्रमिक परिनियोजन तथा ब्लू/ग्रीन परिनियोजन का समर्थन करती हैं। किसी भी दीर्घकालिक प्रक्रिया (वेब सर्वर, API सर्वर, पृष्ठभूमि कर्मी) के लिए सेवा का उपयोग करें। एक बार चलने वाले कार्यों के लिए इसके बजाय स्वतंत्र कार्य चलाएँ।

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'MyAppService' \
  --task-definition 'myapp-task:5' \
  --desired-count 3 \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-aaa111", "subnet-bbb222"],
      "securityGroups": ["sg-xyz"],
      "assignPublicIp": "DISABLED"
    }
  }'

नेटवर्क मोड: awsvpc बनाम bridge

awsvpc नेटवर्क मोड प्रत्येक ECS कार्य को आपके VPC के भीतर अपना Elastic Network Interface (ENI) और निजी IP पता देता है—ठीक EC2 इंस्टेंस की तरह। इससे प्रत्येक कार्य के लिए बारीकी से सुरक्षा समूह नियंत्रण संभव होता है और Fargate कार्यों के लिए यह आवश्यक है। bridge नेटवर्क मोड होस्ट पर Docker के अंतर्निहित वर्चुअल नेटवर्क का उपयोग करता है, जिसमें होस्ट से कंटेनर तक पोर्ट मैपिंग होती है—यह होस्ट EC2 इंस्टेंस का ENI साझा करता है। SAA-C03 परीक्षा के लिए याद रखें: Fargate हमेशा awsvpc का उपयोग करता है; EC2 लॉन्च प्रकार दोनों में से किसी का उपयोग कर सकता है।

ECS सेवा से लोड बैलेंसर जोड़ना

कार्य इंस्टेंस के बीच ट्रैफ़िक वितरित करने के लिए अपनी ECS सेवा को ALB लक्ष्य समूह के साथ पंजीकृत करें। नया कार्य शुरू होने पर ECS उसे लक्ष्य समूह के साथ अपने-आप पंजीकृत करता है; उसके रुकने पर ECS उसका पंजीकरण रद्द कर देता है। स्वास्थ्य जाँच की छूट अवधि कॉन्फ़िगर करें, जैसे 60–120 सेकंड, ताकि स्वास्थ्य जाँच शुरू होने से पहले कंटेनर को प्रारंभ होने का समय मिल सके। छूट अवधि के बिना, ALB धीमी गति से शुरू होने वाले कंटेनर को तैयार होने से पहले अस्वस्थ घोषित कर सकता है, जिससे बार-बार प्रतिस्थापन होने लगते हैं।

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'MyAppService' \
  --load-balancers \
    'targetGroupArn=arn:aws:elasticloadbalancing:...,containerName=myapp,containerPort=8080' \
  --health-check-grace-period-seconds 120 \
  --task-definition 'myapp-task:5' \
  --desired-count 3

क्रमिक परिनियोजन बनाम ब्लू/ग्रीन परिनियोजन

ECS सेवाएँ दो परिनियोजन रणनीतियों का समर्थन करती हैं: क्रमिक अपडेट पुराने कार्यों को धीरे-धीरे नए कार्यों से बदलता है—इसे minimumHealthyPercent (न्यूनतम सीमा) और maximumPercent (अधिकतम सीमा) से कॉन्फ़िगर किया जा सकता है। 100/200 सेट करने पर नए कार्य शुरू होते समय पुराने कार्य चलते रहते हैं (100% स्वस्थ कार्य आवश्यक, अधिकतम 200% क्षमता तक)। ब्लू/ग्रीन परिनियोजन (AWS CodeDeploy के माध्यम से) पुराने कार्य समूह के साथ नया कार्य समूह बनाता है, ALB भारित रूटिंग का उपयोग करके धीरे-धीरे ट्रैफ़िक स्थानांतरित करता है और सत्यापन के बाद पुराने कार्य समाप्त कर देता है। ब्लू/ग्रीन में बिना डाउनटाइम के वापस लौटने की क्षमता होती है।

ECS से CloudWatch लॉगिंग

कंटेनर के stdout/stderr को सीधे CloudWatch Logs में भेजने के लिए अपनी कार्य परिभाषा में awslogs लॉग ड्राइवर कॉन्फ़िगर करें। लॉग समूह, क्षेत्र और स्ट्रीम प्रीफ़िक्स निर्दिष्ट करें। कार्य निष्पादन भूमिका को logs:CreateLogStream और logs:PutLogEvents अनुमतियों की आवश्यकता होती है। कई सेवाओं से केंद्रीकृत लॉग एकत्र करने के लिए FireLens (Fluent Bit या Fluentd वाला साइडकार कंटेनर) का उपयोग करने पर विचार करें, ताकि लॉग S3, OpenSearch या तृतीय-पक्ष लॉगिंग प्रणालियों में भेजे जा सकें।

'logConfiguration': {
    'logDriver': 'awslogs',
    'options': {
        'awslogs-group': '/ecs/myapp',
        'awslogs-region': 'us-east-1',
        'awslogs-stream-prefix': 'myapp'
    }
}

Cloud Map के साथ ECS सेवा खोज

जब ECS में माइक्रोसर्विस को आपस में संचार करना होता है, तो हार्ड-कोड किए गए IP पते काम नहीं करेंगे, क्योंकि कार्य अस्थायी होते हैं और हर बार शुरू होने पर नए IP प्राप्त करते हैं। प्रत्येक कार्य के IP और पोर्ट को DNS नेमस्पेस में पंजीकृत करने के लिए AWS Cloud Map (ECS सेवा खोज) का उपयोग करें। अन्य सेवाएँ myservice.namespace.local को वर्तमान स्वस्थ कार्यों के IP पर हल करती हैं। ECS नए कार्यों को अपने-आप पंजीकृत करता है और विफल कार्यों का पंजीकरण रद्द कर देता है, जिससे मैन्युअल प्रबंधन के बिना DNS रिकॉर्ड सही बने रहते हैं।

ECS कार्य परिभाषाओं में गुप्त मान

कार्य परिभाषाओं में क्रेडेंशियल कभी हार्ड-कोड न करें। इसके बजाय अपनी कार्य परिभाषा में Secrets Manager या Parameter Store के गुप्त मानों का संदर्भ दें—ECS कार्य शुरू होने पर उन्हें पर्यावरण चरों के रूप में शामिल करता है। कार्य निष्पादन भूमिका के पास गुप्त मान प्राप्त करने की अनुमतियाँ होनी चाहिए। Secrets Manager के लिए secretsmanager:GetSecretValue और Parameter Store के लिए ssm:GetParameters का उपयोग करें। गुप्त मान कंटेनर शुरू होने पर एक बार प्राप्त किए जाते हैं; नए मान अपनाने के लिए गुप्त मानों को घुमाने के बाद कार्य को बदलना आवश्यक है।

'secrets': [
    {
        'name': 'DB_PASSWORD',
        'valueFrom': 'arn:aws:secretsmanager:us-east-1:123456789012:secret:myapp/db-password-AbCdEf'
    },
    {
        'name': 'API_KEY',
        'valueFrom': 'arn:aws:ssm:us-east-1:123456789012:parameter/myapp/api-key'
    }
]

त्वरित जाँच

इस पाठ में AWS Solutions Architect (SAA-C03) की अवधारणाओं की अपनी समझ जाँचें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: ECS क्लस्टर उन कंप्यूट संसाधनों को समूहित करते हैं जहाँ कार्य चलते हैं; कार्य परिभाषाएँ संस्करणयुक्त खाकों के रूप में कंटेनर इमेज, CPU/मेमोरी, भूमिकाएँ और लॉगिंग निर्धारित करती हैं; और ECS सेवाएँ वांछित कार्य संख्या बनाए रखती हैं, ट्रैफ़िक वितरण के लिए ALB के साथ एकीकृत होती हैं और क्रमिक या ब्लू/ग्रीन परिनियोजन का समर्थन करती हैं। आगे हम EC2 लॉन्च प्रकार की तुलना सर्वररहित Fargate लॉन्च प्रकार से करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Cloud & IT Cert Prep सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
150
पाठ
600

अक्सर पूछे जाने वाले प्रश्न

क्या “ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ” पाठ निःशुल्क है?

हाँ—“ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cloud & IT Cert Prep पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cloud & IT Cert Prep पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ” में मैं क्या सीखूँगा?

कंटेनर इमेज और संसाधन सीमाओं के साथ ECS टास्क परिभाषाएँ निर्धारित कीजिए, उन्हें क्लस्टर में पंजीकृत कीजिए और वांछित संख्या बनाए रखने के लिए एक सेवा बनाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cloud & IT Cert Prep का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cloud & IT Cert Prep शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cloud & IT Cert Prep शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cloud & IT Cert Prep पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cloud & IT Cert Prep पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. ECS क्लस्टर, टास्क परिभाषाएँ और सेवाएँ
  2. EC2 लॉन्च प्रकार बनाम फार्गेट
  3. ECR: कंटेनर इमेज संग्रहीत करना और प्राप्त करना
  4. ECS सेवा का स्वतः स्केलिंग और लोड संतुलन
← Cloud & IT Cert Prep पर वापस जाएँ