5

कनेक्ट करने से पहले ईसी 2 उदाहरण पर लोचदार बीनस्टॉक आदेश कैसे चलाएं हमारे पास एक ऐसी स्थिति है जहां हम सामान्य डैस्टिक कंटेनर को Django वेबसाइट द्वारा उपयोग किए जाने वाले कस्टम डॉकर कंटेनर को जोड़ने के दौरान एक Django सर्वर को चलाने के लिए चाहते हैं।संसाधन

packages: 
    yum: 
    ecs-init: [] 

files: 
    /etc/ecs/ecs.config: 
    mode: "000644" 
    owner/group: root 
    content: ECS_CLUSTER=${Ref: MyCluster} 

commands: 
    01_start_docker: sudo service docker start 
    02_start_ecs: sudo start ecs 

Resources: 
    MyCluster: 
    Type: AWS::ECS::Cluster 
    MyService: 
    Type: AWS::ECS::Service 
    Properties: 
     Cluster: ${Ref: MyCluster} 
     DesiredCount: 1 
     TaskDefinition: ${Ref: MyTask} 
    MyTask: 
    Type: AWS::ECS::TaskDefinition 
    Properties: 
     ContainerDefinitions: 
     - ... 

समस्या यह है कि ईसीएस सेवा शुरू करने से पहले लचीला बीनस्टॉक-प्रदान की EC2 उदाहरण क्लस्टर के साथ पंजीकृत है कोशिश कर रही है: अब तक, मैं मूल रूप से निम्नलिखित .ebextensions विन्यास फाइल की है। नतीजतन, लोचदार बीनस्टॉक पर तैनाती लटकती है। यदि मैं मैन्युअल रूप से EC2 उदाहरण में SSH किया गया है और मैन्युअल रूप से ecs-init स्थापित किया है, तो ecs.config बनाया, और आदेश चलाया, सेवा जारी है और ईबी वातावरण सफलतापूर्वक बनाया गया है।

क्या ईबी के ऑटोस्केलिंग समूह द्वारा बनाए गए ईसी 2 इंस्टेंस क्लस्टर के साथ पंजीकृत होने तक सेवा को बताने का कोई तरीका है?

अधिक संदर्भ:

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

उत्तर

0

इसके बारे में और अधिक स्पष्ट रूप से सोचने के बाद इसे स्वयं हल करें।

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

1

नीचे जैसा कुछ कोशिश करें। चूंकि ईबी सिर्फ क्लाउडफॉर्मेशन स्टैक्स अजीब से शुरू होने वाले स्टैक्स को देखता है- आपका पता लगाने के लिए। फिर सीएफ संसाधनों को देखें, जबकि आपका ईबी ऐप पूर्वनिर्धारित ईबी संसाधनों द्वारा उपयोग किए जाने वाले नामों को देखने के लिए तैनात करता है जिन्हें आप .ebextensions में निर्दिष्ट नहीं कर रहे हैं। मैं अपने में AWSEBInstanceLaunchWaitCondition देखता हूं, जो प्रारंभिक उदाहरण लॉन्च से संबंधित प्रतीत होता है।

Resources: 
    MyService: 
    Type: AWS::ECS::Service 
    Properties: 
     Cluster: ${Ref: MyCluster} 
     DesiredCount: 1 
     TaskDefinition: ${Ref: MyTask} 
    DependsOn: AWSEBInstanceLaunchWaitCondition 
+0

दुर्भाग्य से, मुझे लगता है कि प्रतीक्षा स्थिति ईसी 2 इंस्टेंस लॉन्चिंग के लिए है। मुझे प्रतीक्षा की स्थिति की आवश्यकता होगी जो 'आदेश' हुक चलाने तक प्रतीक्षा करे। –

+0

आपको शायद अपने स्वयं के क्रिएशन पॉलिसी संसाधन को एक निर्भरता (या शायद प्रतीक्षा प्रतीक्षा) के रूप में जोड़ने की आवश्यकता होगी और सीएफएन-सिग्नल को कमांड 03 के रूप में कॉल करें। Http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide /aws-attribute-creationpolicy.html – NHol

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