AWS पैरामीटर स्टोर बनाम पर्यावरण चर

इस लेख में मैं देख रहा हूँ कि कब और कब AWS पैरामीटर स्टोर का उपयोग AWS बुनियादी ढांचे के भीतर पर्यावरण चर को बदलने के लिए किया जाना चाहिए। मैं यह नहीं देख रहा हूं कि इनमें से प्रत्येक क्या है या किसी भी तरह से गहराई से कैसे स्थापित किया जाए, बल्कि दोनों के बीच तुलना।

पर्यावरण चर के लिए एक मामला

सेटअप करने में आसान

पर्यावरण चर के साथ सेटअप प्राप्त करना बहुत सरल है। उदाहरण के लिए, नोड में एक dotenv मॉड्यूल है जिसे npm के माध्यम से एक एकल कमांड के साथ स्थापित किया जा सकता है:

npm स्थापित करें dotenv

हमें यह सुनिश्चित करने की आवश्यकता है कि डॉटेनव के पास हमारी लिपि में कहीं एक प्रविष्टि बिंदु है, आमतौर पर एक आवश्यकता कथन के माध्यम से -

( 'Dotenv') की आवश्यकता होती है। Config ()

यहां से, हमें बस इतना करना है कि परियोजना के मूल फ़ोल्डर में रखी हुई .env फ़ाइल में हमारे एनरवीमेंट वैरिएबल को जोड़ें।

आप dotenv मॉड्यूल के बारे में अधिक जानकारी यहाँ पा सकते हैं:

यह ध्यान दिया जाना चाहिए कि पैरामीटर स्टोर शुरू में सेटअप में आसानी से समान पहलुओं को साझा नहीं करता है - यदि आपने पहले कभी पैरामीटर स्टोर के साथ काम नहीं किया है, तो सेटअप प्रक्रिया कुछ बातों पर विचार करने के साथ काफी श्रमसाध्य लग सकती है:

  • आपको AWS खाते तक पहुंचने की आवश्यकता है
  • आपको एडब्ल्यूएस डैशबोर्ड को नेविगेट करने की आवश्यकता है - विशेष रूप से एसएसएम अनुभाग।
  • संवेदनशील / सुरक्षित मापदंडों को KMS के साथ एन्क्रिप्ट किया जाना चाहिए - जो अपने आप में कुछ अतिरिक्त सेटअप की आवश्यकता है (https://aws.amazon.com/kms/)
  • अपनी आवश्यकताओं के आधार पर, आपको अन्य AWS सेवाओं जैसे IAM और SSM ऑर्डर को सही ढंग से काम करने के लिए पैरामीटर स्टोर प्राप्त करने के लिए कॉन्फ़िगरेशन ज्ञान की आवश्यकता हो सकती है।
  • सभी मापदंडों को आईएएम प्रोग्रामेटिक एक्सेस की आवश्यकता वाले क्लाउड पर होस्ट किया जाता है, जिसका अर्थ है एक निर्बाध कनेक्शन की आवश्यकता है (यह ध्यान दिया जाना चाहिए कि बीस्पोक स्थानीय सेटअप स्थानीय चर के साथ बनाया जा सकता है जो कि स्थिति के आधार पर पैरामीटर स्टोर चर के स्थान पर उपयोग किए जा सकते हैं- I वास्तव में इस तरह के दृष्टिकोण को प्रोत्साहित करेगा)।

विकास, परिनियोजन और परीक्षण के दौरान अद्यतन करने में आसान

पर्यावरण चर आसानी से aforementioned .env फ़ाइल और dotenv मॉड्यूल के माध्यम से अद्यतन किया जा सकता है। प्रत्येक प्रासंगिक वातावरण के अनुरूप इस फ़ाइल के विभिन्नताओं को भी बनाया और उपयोग किया जा सकता है। एक परीक्षण परिदृश्य में हमारे पर्यावरण चर आयात करना उसी तरह से काम करता है (प्रासंगिक डॉट फ़ाइल से env var आयात करना)।

एक स्टेजिंग या प्रोडक्शन सर्वर पर तैनात करने के लिए, हम केवल .env फ़ाइल के वैकल्पिक संस्करण का उपयोग करेंगे। यह आसानी से आपके संस्करण नियंत्रण प्रणाली में मौजूदा .env फ़ाइल को स्थानीय रूप से (आमतौर पर git) अनदेखा करके और प्रत्येक चरण / सर्वर उदाहरण पर एक नई प्रतिलिपि बनाकर किया जा सकता है।

पर्यावरण चर भी निरंतर एकीकरण प्रणाली (CI) के साथ अच्छी तरह से एकीकृत करते हैं। उदाहरण के लिए, सर्कल CI के पास पर्यावरण चर के प्रबंधन के लिए एक समर्पित अनुभाग है, जहां उन्हें प्रोजेक्ट बिल्ड स्तर पर जोड़ा जा सकता है और तैनाती के लिए तैयार होने पर एक ही स्थान पर अद्यतन किया जाता है -

एक पैरामीटर स्टोर के नजरिए से, यह भाषा / रूपरेखा अज्ञेय है, जिसका अर्थ है कि सभी सेटअप या तो मैन्युअल रूप से एडब्ल्यूएस एसडीके का उपयोग करके पैरामीटर स्टोर सेवा तक प्रोग्रामेटिक पहुंच का उपयोग करके किया जा सकता है, या इसी तरह एक 3 पार्टी प्रदाता के माध्यम से किया जा सकता है (जैसे कि एनआईओएस मॉड्यूल) । क्लाउड कंप्यूटिंग डोमेन में सुरक्षा मानकों के लिए AWS और उसकी सेवाएं बेंचमार्क हैं, कस्टम मॉड्यूल जिसे आप विकसित करना चाहते हैं या उपयोग कर सकते हैं, दुर्भावना या निगरानी के कारण सुरक्षा कमजोरियां हो सकती हैं - यह ध्यान में रखते हुए कि इसके लिए उद्योग स्वीकृत मॉड्यूल हैं खुद को AWS जैसी विश्वसनीय संस्थाओं द्वारा बनाए रखा और समर्थन किया।

परिनियोजन / परीक्षण के दृष्टिकोण से पैरामीटर स्टोर भी चुनौतियों का एक अनूठा सेट के साथ आता है, हालांकि सुझाव दिए गए दृष्टिकोण हैं, आप कैसे और कब पैरामीटर स्टोर के साथ बातचीत करना चुनते हैं यह पूरी तरह से आप पर निर्भर है।

पर्यावरण चर का उपयोग करने के लिए स्वतंत्र हैं

हालांकि AWS पैरामीटर स्टोर में अतिरिक्त शुल्क (https://aws.amazon.com/systems-manager/pricing) शामिल नहीं है, संबंधित सेवाओं जैसे KMS (https://aws.amazon.com/kms/pricing) के लिए अमेज़न के मूल्य निर्धारण संरचना। ) उपयोग के आधार पर अतिरिक्त लागतों को उठाना शुरू कर देगा। दूसरी ओर, पर्यावरण चर का उपयोग करना मुफ्त है।

तो क्यों पर्यावरण चर की जगह? : पैरामीटर स्टोर के लिए एक मामला

इस बिंदु तक वेनिला पर्यावरण चर समाधान मंच / सुरक्षित चर क्षेत्र में प्रभुत्व की दौड़ में पैरामीटर स्टोर को संपादित करता प्रतीत होता है। हालांकि पैरामीटर स्टोर इस बिंदु पर हल करने की तुलना में अधिक चुनौतियां पैदा करता है, लेकिन कुछ चीजें हैं, हालांकि, पैरामीटर्स स्टोर निर्विवाद रूप से पर्यावरण चर की तुलना में बेहतर करता है:

पैरामीटर स्टोर चर को कई परियोजनाओं में साझा किया जा सकता है

परियोजनाओं के दौरान पर्यावरण चर साझा करने के लिए मैंने जो सबसे अच्छा सेटअप पाया है, वह एक स्वचालित तैनाती प्रक्रिया का उपयोग करना है जो एक साझा इकाई में निहित फ़ाइल से पर्यावरण चर लाती है, जैसे कि एस 3 बाल्टी जो परियोजना विन्यास में प्लग करती है (जैसे आमतौर पर किया जाता है) स्क्रिप्ट जो एक CI सेवा से चलाई जाती है)। पिछले अनुभव से, यह सबसे शब्दार्थ विकल्प है (कृपया मुझे बताएं कि क्या आपके पास कोई बेहतर विकल्प है)। यह दुर्भाग्य से शुरू में एक थकाऊ अभ्यास है और अंततः कुछ ऐसा नहीं है जिसे आप लंबे समय में मैन्युअल रूप से बनाए रखना चाहते हैं, जो मुख्य रूप से इसलिए है क्योंकि इसे स्थापित करने या बनाए रखने के दौरान किसी भी तरह की गलतियां या ओवरसाइट्स समस्याएं पैदा कर सकती हैं।

सब कुछ जिसे हम स्वचालित करने के लिए एक एडब्ल्यूएस सेवा को सौंप सकते हैं, हमें चाहिए और यह वह जगह है जहां पैरामीटर स्टोर चमकता है। परियोजनाओं के दौरान KMS कुंजी और पैरामीटर स्टोर चर साझा करना बॉक्स के बाहर आता है।

मैं कदम पीछे लेना चाहता हूं और AWS को समग्र दृष्टिकोण से देखना चाहता हूं। क्लाउड कंप्यूटिंग के हर पहलू को प्रबंधित करने में अमेज़न ने बहुत अच्छा काम किया है, और विशिष्ट सेवाओं के लिए समर्पित विकास टीमों का ढेर है जिसे आप और मैं कभी भी दोहरा नहीं पाएंगे। अंततः इसका मतलब है कि एक बार जब आप अमेज़ॅन के अनुभव में खरीद लेंगे, तो आपको AWS क्लाउड इन्फ्रास्ट्रक्चर के बैनर तले एक साथ काम करने के लिए डिज़ाइन की गई सभी सेवाओं का उपयोग करना चाहिए। यद्यपि इसके पास इसके मुद्दे हैं (जैसे कि आप और मैं अब पूरी तरह से AWS में एक सेवा प्रदाता के रूप में बंद हो रहे हैं), यह अंततः आपके लिए अपनी हर चीज को उतारना आसान है, क्योंकि यह एक कम चीज है जिसके बारे में आपको चिंता करने की आवश्यकता है - भले ही यह थोड़ा अतिरिक्त खर्च होता है।

पैरामीटर स्टोर पहुंच नियंत्रण का उपयोग कर सकता है

उपयोगकर्ता की पहुंच पर विशिष्ट नियंत्रण रखने से IAM सेवा AWS की सबसे बड़ी विशेषताओं में से एक बन जाती है, खासकर जब यह संभावित संवेदनशील जानकारी जैसे कि एपीआई कुंजी या पासवर्ड से निपटने की बात आती है। वैनिला अर्थ के भीतर पर्यावरण चर तक पहुंच को नियंत्रित करने की अवधारणा (जैसे कि डॉटेनव दृष्टिकोण का उपयोग करना) केवल एक विकल्प नहीं है (जब तक कि आप अपना स्वयं का बीस्पोक समाधान विकसित करने के लिए तैयार न हों - या practices सर्वोत्तम प्रथाओं के दायरे से बाहर जाएं)।

पैरामीटर स्टोर मान आसानी से अपडेट किए जाते हैं

अपने पैरामीटर स्टोर में किसी भी मान को अपडेट करने के लिए आपको अपनी AWS डैशबोर्ड (या CLI) तक उचित पहुंच की आवश्यकता होती है, जिसका अर्थ है कि गैर-तकनीकी टीम के सदस्य भी AWS डैशबोर्ड अनुभव के थोड़े से मानों को अपडेट कर सकते हैं।

तर्क को अद्यतन करने वाले पर्यावरण चर पक्ष के पर्यावरण चर पर समस्याग्रस्त हो जाता है क्योंकि आमतौर पर केवल कुशल टीम के सदस्य जिनके पास सर्वर अपडेट अनुमतियों तक पहुंच होती है, वे इन तक पहुंच और अद्यतन कर पाएंगे। इसके अतिरिक्त यह आपकी परियोजना को भेद्यता की एक परत तक खोल देता है, क्योंकि सर्वर में लॉग इन करना और उड़ने पर (यहां तक ​​कि स्वचालित सेटअप पर) कोर प्रोजेक्ट फाइलों को अपडेट करने से समस्याएँ पैदा हो सकती हैं।

KMS आसानी से Parameter Store मानों को एन्क्रिप्ट कर सकता है

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

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

पैरामीटर स्टोर चर का आयोजन किया जा सकता है

पैरामीटर स्टोर का उपयोग करते समय उत्पादन और स्टेजिंग मापदंडों को एक ही स्थान पर प्रबंधित किया जाता है, जिसमें सॉर्टिंग और फ़िल्टरिंग पैरामीटर शामिल होते हैं और यहां तक ​​कि उनके उद्देश्य को स्पष्ट करने के लिए विवरण भी जोड़ते हैं।

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

अंततः, निर्णय लेने के लिए कि किन दो समाधानों का उपयोग किया जाना चाहिए, परियोजना की जटिलता और दायरे द्वारा निर्धारित किया जाना चाहिए, जो ऊपर वर्णित कारकों को ध्यान में रखते हैं।

निष्कर्ष

अपने चरण / सुरक्षित मापदंडों का प्रबंधन करने के लिए पैरामीटर स्टोर या पर्यावरण चर का उपयोग करना है या नहीं, यह चुनने पर विचार करने के लिए अन्य कारक हैं, लेकिन उम्मीद है कि इस लेख में हमने महत्वपूर्ण लोगों को कवर किया है।

यदि आपके पास कोई अन्य कारक है जो आपको लगता है कि आप विचार करने योग्य हैं तो मैं आपके विचार सुनना चाहूंगा।