8

मैं अपने वेब एप्लिकेशन के लिए नेटवर्क इंफ्रास्ट्रक्चर (वीपीसी, सुरक्षा समूह, सबनेट्स, ऑटोस्कलिंग समूह इत्यादि) के कई तत्वों को स्थापित करने के लिए एडब्ल्यूएस क्लाउडफॉर्मेशन का उपयोग कर रहा हूं। मैं पूरी प्रक्रिया को स्वचालित करना चाहता हूं। मैं एक बटन क्लिक करना चाहता हूं और पूरी चीज को आग लगाने में सक्षम हूं।एडब्ल्यूएस एएमआई में सेंकना और क्लाउड-इनिट का उपयोग करके प्रावधान करना क्या है?

मैं सफलतापूर्वक कि यह सब नेटवर्क बुनियादी ढांचे सेट एक Cloudformation टेम्पलेट बनाया है। हालांकि ईसी 2 उदाहरण वर्तमान में उन पर किसी भी आवश्यक सॉफ्टवेयर के बिना लॉन्च किए गए हैं। अब मैं यह पता लगाने की कोशिश कर रहा हूं कि उन सॉफ्टवेयर को कैसे प्राप्त किया जाए।

ऐसा करने के लिए, मैं एमिस Packer.io का उपयोग कर बना रहा हूं। लेकिन कुछ लोगों ने मुझे क्लाउड-इनिट का उपयोग करने का आग्रह किया है। एएमआई में क्या सेंकना है और/या क्लाउड-इनिट के माध्यम से कॉन्फ़िगर करने के लिए क्या तय करना है, यह तय करने के लिए मुझे क्या उदारवादी उपयोग करना चाहिए?

उदाहरण के लिए, मैं अपने स्वयं के लैपटॉप से ​​पासवर्ड के बिना लॉगिन करने के लिए मुझे (saqib) अनुमति देने के लिए एक ईसी 2 उदाहरण पूर्व-कॉन्फ़िगर करना चाहता हूं। इस प्रकार ईसी 2 में एक उपयोगकर्ता होना चाहिए। उस उपयोगकर्ता के पास होम निर्देशिका होनी चाहिए। और उस होम निर्देशिका में एन्क्रिप्टेड कोड युक्त .ssh/known_hosts फ़ाइल रहनी चाहिए। क्या मुझे इन निर्देशिकाओं को एएमआई में सेंकना चाहिए? या मुझे उन्हें सेट अप करने के लिए क्लाउड-इनिट का उपयोग करना चाहिए? और मुझे इस और अन्य समान मामलों में कैसे निर्णय लेना चाहिए?

+1

क्लाउडफॉर्मेशन में परिभाषित 'उपयोगकर्ता डेटा' के साथ स्वचालन नौकरी करने के लिए आपको कठपुतली या महाराज की आवश्यकता है। – BMW

+0

धन्यवाद। क्या आप कृपया समझा सकते हैं कि मुझे एएमआई में क्या रखा जाना चाहिए ?? मैं कैसे तय करूं कि एएमआई में कुछ होना चाहिए या 'उपयोगकर्ता डेटा' के माध्यम से कॉन्फ़िगर किया जाना चाहिए? –

+0

एडब्लूएस के पास विकल्पों पर चर्चा करने वाला एक व्यापक पृष्ठ है https://aws.amazon.com/answers/configuration-management/aws-ami-design/ – Jason

उत्तर

13

मुझे पर्यावरण प्रावधान से मशीन प्रावधान को अलग करना पसंद है।

सामान्य तौर पर, मैं एक गाइड के रूप में निम्नलिखित का उपयोग करें:

बिल्ड चरण

  • पैकर की तरह कुछ के साथ एक बेस मशीन छवि निर्माण, आपके आवेदन चलाने के लिए आवश्यक सभी सॉफ्टवेयर सहित। इस से एक एएमआई बनाएँ।
  • एप्लिकेशन मशीन बनाने के लिए बेस मशीन छवि पर एप्लिकेशन इंस्टॉल करें। इस आर्टिफैक्ट को टैग करें और संस्करण करें। डेटाबेस कनेक्शन इत्यादि जैसे पर्यावरण विशिष्ट सामान को एम्बेड न करें क्योंकि इससे आपको विभिन्न एएमआई को विभिन्न पर्यावरण रनटाइम्स में आसानी से पुन: उपयोग करने से रोक दिया जाता है।
  • सुनिश्चित करें कि सभी सेवाओं

रिलीज चरण

  • स्पिन अप छवियों और बुनियादी आवश्यकता, CFN की तरह कुछ का उपयोग कर से मिलकर एक ऐसा माहौल बंद कर दिया जाता है।
  • उपयोग क्लाउड-Init user-dataकॉन्फ़िगर आवेदन पर्यावरण के लिए (डेटाबेस कनेक्शन, भाड़ा के आदि लॉग इन करें) और फिर अनुप्रयोगों/सेवाओं

शुरू यह दृष्टिकोण सर्वश्रेष्ठ लचीलापन प्रदान करता है और सफाई से अलग करता निरंतर वितरण पाइपलाइन की विभिन्न चिंताओं।

4

महत्वपूर्ण कारक है कि निर्धारित करता है कि आप सर्वर, एमिस, और बुनियादी ढांचे की योजना बना इकट्ठा करना चाहिए में से एक सवाल का जवाब देने के लिए है: उत्पादन में, मैं कितनी तेजी से एक नया उदाहरण का शुभारंभ किया की आवश्यकता होगी?

इस सवाल का जवाब तय करेंगे आप कितना बनाम आप कितना बूट के बाद निर्माण एएमआई में बेक।

नोट: मेरा अनुभव शेफ सर्वर के साथ है, इसलिए मैं शेफ शब्दावली का उपयोग करूंगा लेकिन अवधारणा किसी अन्य कॉन्फ़िगरेशन प्रबंधन ढेर के लिए समान हैं।

अंगूठे का सामान्य नियम "कोड के रूप में बुनियादी सुविधा" अपने इलाज के लिए है। इसका मतलब है कि उदाहरण लॉन्च करने की प्रक्रिया, उस मशीन पर उपयोगकर्ताओं को बनाना, और ज्ञात_होस्ट फाइलों और एसएसएच कुंजी को प्रबंधित करने की प्रक्रिया के बारे में सोचें, जैसा कि आप अपना आवेदन कोड करेंगे। स्रोत कोड में इंफ्रास्ट्रक्चर में किए गए परिवर्तनों को ट्रैक करने में सक्षम होने से प्रबंधन आसान, पुनर्निर्माण, और यहां तक ​​कि सीआई भी आसान हो जाता है।

This Chef Introduction Cookbooks, व्यंजनों, संसाधन और अधिक की बावर्ची में शब्दावली को शामिल किया गया। यह आपको एक साधारण लैंप स्टैक बनाने का तरीका दिखाता है, और आप इसे एक कमांड के साथ आसानी से कैसे लॉन्च कर सकते हैं।

  • लॉन्च एक Cloudformation स्क्रिप्ट के साथ एक आधार उबंटू लिनक्स एएमआई (वर्तमान में 14.04):

    तो एक उच्च स्तरीय मैं निम्नलिखित करना होगा पर, अपने प्रश्न में उदाहरण दिया।

  • इंस्टेंस कॉन्फ़िगरेशन के उपयोगकर्ता डेटा अनुभाग में, शेफ क्लाइंट इंस्टॉल प्रक्रिया बूट करें।
  • उपयोगकर्ता बनाने के लिए एक पकाने की विधि चलाएं।
  • उपयोगकर्ता

उपकरण बावर्ची की तरह इस्तेमाल कर रहे हैं के लिए known_hosts फ़ाइल बनाने के लिए एक पकाने की विधि भागो क्योंकि आप विशिष्ट कार्यों का निष्पादन कोड के छोटे ब्लॉक में बुनियादी ढांचे को तोड़ने में सक्षम हैं। कई कुकबुक पहले से ही built and available हैं जो सेवाओं को बनाने, सॉफ्टवेयर पैकेज स्थापित करने आदि के बुनियादी बिल्डिंग ब्लॉक करते हैं।

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

आइए देखें कि आपका एप्लिकेशन छवि प्रसंस्करण करता है और ImageMagick का उपयोग करने की आवश्यकता है। आइए मान लें कि आपको स्रोत से ImageMagick बनाना होगा। यदि आप शेफ व्यंजनों के माध्यम से ऐसा करना चाहते हैं तो यह सामान्य उदाहरण बूट समय पर छवि मैगिक को संकलित करने के लिए 7 मिनट जोड़ सकता है। यदि एक नए उदाहरण के लिए ऑनलाइन आने के लिए 10-12 मिनट का इंतजार करना बहुत लंबा है तो आप अपने स्वयं के एएमआई को बेकिंग पर विचार करना चाहेंगे जिसमें ImageMagick पहले ही संकलित और स्थापित है।

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

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