कोर्स
क्लाउड कंप्यूटिंग Data Science और AI अनुप्रयोगों के लिए उपयोगी है। कई क्लाउड प्रदाता मौजूद हैं, और हमारे अनुप्रयोग के लिए सही विकल्प चुनना महत्वपूर्ण है। हालांकि, क्लाउड कंप्यूटिंग में एक बड़ी चुनौती लागत प्रबंधन है। जब हम अनुप्रयोगों और वर्कलोड्स को क्लाउड पर परिनियोजित करते हैं, तो हमें लागतों का ध्यान रखना होता है, क्योंकि क्लाउड में चलने वाली मशीनें बहुत महंगी हो सकती हैं।
इस लेख में, हम Azure Spot Virtual Machines (VMs), जिन्हें Azure Spot Instances भी कहा जाता है, का अन्वेषण करेंगे। ये मशीनें Microsoft Azure पर परिनियोजन करते समय हमें लागत बचाने में मदद करती हैं। यदि आप Microsoft Azure में नए हैं और परिचय की आवश्यकता है, तो हमारे Introduction to Azure कोर्स को देखें। उन्नत उपयोगकर्ताओं के लिए हमारा Azure Architecture and Services कोर्स उपयोगी रहेगा। अंत में, यदि आप त्वरित संदर्भ चाहते हैं, तो विभिन्न क्लाउड प्रदाताओं की तुलना करती हमारी सरल शीट यहाँ उपलब्ध है: AWS, Azure और GCP Service Comparison for Data Science and AI.
आइए Azure Spot VMs में गहराई से उतरते हैं।
Azure Spot VMs क्या हैं?
Azure Spot VMs किसी भी समय Azure के डेटा सेंटर्स में उपलब्ध अतिरिक्त वर्चुअल मशीनें होती हैं। चूंकि ये मशीनें उस समय उपयोग में नहीं हैं, Azure इन्हें मानक Azure VM कीमतों की तुलना में कभी-कभी 90% तक की छूट पर प्रदान करता है।
हालांकि, इस लागत में कटौती के साथ अनिश्चितता आती है। यदि अन्य उपयोगकर्ताओं से VMs की मांग बढ़ जाती है, तो Azure बहुत कम सूचना पर कभी भी इन Spot VMs को वापस ले सकता है। इससे Spot VMs काफी अप्रत्याशित हो जाती हैं। परिणामस्वरूप, हमें Spot VMs का उपयोग केवल उन कार्यों के लिए करना चाहिए जिन्हें निरंतर उपलब्धता की आवश्यकता नहीं है और जिन्हें बाधित किया जा सकता है। ऐसे कुछ कार्यों में शामिल हैं:
बैच जॉब्स
बैच जॉब्स वे कार्य हैं जिन्हें हम बिना मैनुअल हस्तक्षेप के कंप्यूटर पर चला सकते हैं। ये कार्य आमतौर पर बड़े समूहों या “बैचों” में, क्रमिक या समानांतर रूप से संसाधित किए जाते हैं। इन जॉब्स के प्रारंभ और समाप्ति समय अक्सर लचीले होते हैं, इसलिए इन्हें बिना बड़े व्यवधान के रोका और फिर से शुरू किया जा सकता है।
उदाहरण के लिए, किसी वित्तीय संस्था को प्रत्येक कारोबारी दिन के अंत में लेनदेन संसाधित करने होते हैं। वे एक बैच जॉब सेट कर सकते हैं जो विभिन्न स्रोतों से हजारों या लाखों लेनदेन स्वतः लोड करे, उन्हें सत्यापित करे, और फिर उसके अनुसार खाता शेष अद्यतन करे।
टेस्ट और डेवलपमेंट परिवेश
टेस्ट और डेवलपमेंट परिवेश वे वातावरण हैं जहाँ सॉफ्टवेयर डेवलपर लाइव प्रोडक्शन वातावरण को प्रभावित किए बिना अनुप्रयोगों का निर्माण और परीक्षण कर सकते हैं। इन परिवेशों की स्थापना महंगी हो सकती है, और यहीं Spot VMs काम आती हैं।
उदाहरण के लिए, एक टीम को एक ई-कॉमर्स वेबसाइट पर काम करना है। वे वेबसाइट पर एक नया फीचर आज़माना चाहते हैं जो उपयोगकर्ता की ब्राउज़िंग हिस्ट्री के आधार पर उत्पाद सुझाए। वे इस फीचर को अपने डेवलपमेंट परिवेश में विकसित कर सकते हैं और फिर इसे टेस्ट परिवेश में ले जाकर बग्स, प्रदर्शन समस्याओं और उपयोगकर्ता अनुभव के लिए कड़े परीक्षण कर सकते हैं। यह अलग-अलग सेटिंग्स के लिए Spot VMs पर किया जा सकता है। सफल परीक्षण के बाद, वे इस फीचर को प्रोडक्शन वातावरण में परिनियोजित कर सकते हैं, जिससे यह ग्राहकों के लिए उपलब्ध हो जाएगा।
फॉल्ट-टॉलरेंट अनुप्रयोग
फॉल्ट-टॉलरेंट अनुप्रयोग वे हैं जो कुछ घटकों के विफल होने पर भी बिना रुकावट के चलते रहते हैं। यह इनबिल्ट रिडंडेंसी और फेलओवर मैकेनिज़्म से हासिल किया जा सकता है। ऐसे अनुप्रयोग Spot VMs के लिए उपयुक्त होते हैं। उदाहरण के तौर पर, किसी अनुप्रयोग में कई सर्वर उपयोगकर्ता अनुरोधों को संभाल रहे हों। यदि एक सर्वर विफल हो जाए, तो सिस्टम स्वतः अनुरोधों को दूसरे सर्वर पर रीरूट कर देता है। चूंकि ऐसे ऑपरेशन फॉल्ट-टॉलरेंट होते हैं, इसलिए लागत बचत के लिए इन्हें Spot VMs पर चलाया जा सकता है।
Azure Spot VMs के लाभ
Spot VMs का मुख्य लाभ भारी लागत बचत है। जैसा कि हमने उल्लेख किया, यह ऑन-डिमांड VM कीमतों की तुलना में 90% तक की छूट हो सकती है। इस छूट के परिणामस्वरूप, हम उपलब्ध क्षमता के आधार पर वर्कलोड्स को ऊपर या नीचे स्केल कर सकते हैं, जिससे हम बड़े पैमाने के ऑपरेशन्स चला सकते हैं जो अन्यथा ऑन-डिमांड VMs के साथ बहुत महंगे होते। साथ ही, Spot VMs में हम VM के लिए चुकाने को तैयार अधिकतम कीमत सेट कर सकते हैं। यह हमें अपने खर्च पर नियंत्रण देता है।
जब Azure VM को वापस लेगा, तब हम एक इविक्शन पॉलिसी भी चुन सकते हैं ताकि अगला कदम तय हो सके — हम या तो अपने VM को डिएक्टिवेट (Deallocate) कर सकते हैं या डिलीट कर सकते हैं। यदि हम डिएक्टिवेट चुनते हैं, तो VM रुक जाएगा लेकिन डिलीट नहीं होगा। इस तरह, उपलब्धता वापस आने पर हम VM को रीस्टार्ट कर सकते हैं। इस बीच हमें केवल स्टोरेज लागत देनी होगी। यदि हम डिलीट चुनते हैं, तो हमारा सारा डेटा और वर्कलोड्स मिटा दिए जाएंगे।
Spot VM कैसे परिनियोजित करें
इस खंड में, हम समझाते हैं कि Spot VM कैसे परिनियोजित करें और उससे जुड़े विकल्प, जैसे प्राइसिंग और इविक्शन पॉलिसी, कैसे चुनें। हम या तो एकल Spot VM या Spot VM के समूह, जिसे Spot VM Scale Set कहते हैं, परिनियोजित कर सकते हैं।
एकल Spot VMs
सबसे आसान तरीका Azure पोर्टल से VM बनाना है।
- पोर्टल में Services के अंतर्गत Virtual Machines चुनें और फिर Create चुनें।
- Create a virtual machine पेज में सभी विवरण भरें और चेक बॉक्स Run with Azure Spot discount का चयन करें।
- इसके बाद हमें Eviction type और Eviction Policy चुननी होगी।
- Eviction type के लिए, हम या तो Capacity only या Price or capacity चुन सकते हैं। Capacity only चुनने पर हमारा VM तब निकाला जाता है जब Azure के VMs की मांग अधिक होती है। यह विकल्प Spot VM के लिए हम जितनी अधिकतम कीमत चुकाने को तैयार हैं, उसे सेट करता है। अधिकतम कीमत को सीमित करने के लिए, हम Price or Capacity चुन सकते हैं। फिर हमें वह अधिकतम कीमत भरनी होगी जो हम चुकाने को तैयार हैं। इस विकल्प में, Azure VM को तब निकालेगा जब Azure के VMs की मांग अधिक हो या Spot VM की लागत निर्दिष्ट अधिकतम कीमत से अधिक हो जाए।
- हमें एक इविक्शन पॉलिसी भी चुननी होगी — यानी यदि Azure हमारी मशीन को निकाले तो क्या होगा। हम Deallocate या Delete में से किसी एक को चुन सकते हैं। Deallocate चुनने पर VM रुक जाता है लेकिन VM पर मौजूद डेटा या एप्लिकेशन डिलीट नहीं होते। VM रुका रहने के दौरान हमसे VM के लिए शुल्क नहीं लिया जाएगा, हालांकि संबद्ध स्टोरेज के लिए शुल्क लगेगा। यह विकल्प तब उपयुक्त है जब हम क्षमता उपलब्ध होने पर VM को फिर से शुरू करना चाहते हैं। यदि हम Delete चुनते हैं, तो Azure के इंस्टेंस वापस लेने पर VM और उससे संबंधित अस्थायी स्टोरेज डिलीट हो जाते हैं।
एक वर्चुअल मशीन बनाना। स्रोत: लेखक द्वारा निर्मित चित्र
हम Azure CLI और Azure PowerShell सहित अन्य तरीकों से भी Spot VM शुरू कर सकते हैं। अधिक विवरण के लिए Spot VMs पर Azure दस्तावेज़ देखें।
Spot Virtual Machine Scale Sets (VMSS)
हम Spot VMs के समूह, जिन्हें Spot Virtual Machine Scale Sets कहा जाता है, भी बना सकते हैं। इसके लिए Azure पोर्टल में Virtual Machine Scale Sets खोजें और एक बनाएं। VMSS हमें अनेक Spot VMs के परिनियोजन और प्रबंधन को स्वचालित करने देता है, जिससे आवश्यकता अनुसार स्केल इन और स्केल आउट करना आसान हो जाता है। हम स्केलिंग के मानदंड निर्धारित कर सकते हैं, जैसे CPU उपयोग या नेटवर्क ट्रैफ़िक, और अपनी अधिकतम कीमत तथा उपलब्धता आवश्यकताओं के आधार पर इच्छित क्षमता सेट कर सकते हैं।
Azure Spot VMs के लिए सर्वोत्तम अभ्यास
हम अनुशंसा करते हैं कि Spot VMs का उपयोग करते समय ये सर्वोत्तम अभ्यास अपनाएँ ताकि हमारे वर्कलोड्स लचीले और किफायती बने रहें।
क्षमता जाँचें
Spot VMs परिनियोजित करने से पहले, मैं अपनी इच्छित रीजन में और जिन VM आकारों का उपयोग करने की योजना है, उनके लिए उपलब्ध क्षमता जाँचता/जांचती हूँ। Azure की क्षमता अन्य ग्राहकों की मांग के आधार पर उतार-चढ़ाव करती है, इसलिए उपलब्धता सत्यापित करना हमें परिनियोजन संबंधी सूचित निर्णय लेने में मदद कर सकता है।
अधिकतम कीमत निर्धारित करें
मैं प्रति घंटे VM के लिए चुकाने को तैयार अधिकतम कीमत तय करता/करती हूँ। इससे लागत पर नियंत्रण रखने में मदद मिलती है।
बाधाओं के लिए डिजाइन करें
क्योंकि Spot VMs को कम सूचना पर प्रीएम्प्ट किया जा सकता है, मैं वर्कलोड्स को व्यवधान-सहिष्णु बनाने की सलाह देता/देती हूँ। चेकपॉइंटिंग जैसी रणनीतियाँ अपनाएँ ताकि कार्य को समय-समय पर सहेजा जा सके, जिससे दोबारा शुरू करते समय प्रारंभ से बजाय अंतिम चेकपॉइंट से आगे बढ़ा जा सके। वितरित प्रोसेसिंग वर्कलोड्स के लिए, सुनिश्चित करें कि कार्यों को शेष इंस्टेंसेज़ में पुनर्वितरित किया जा सके ताकि कुछ इंस्टेंस प्रीएम्प्ट होने पर भी प्रोसेसिंग थ्रूपुट बना रहे।
निगरानी स्थापित करें
प्रभावी मॉनिटरिंग Spot VMs का दक्षतापूर्वक प्रबंधन करने के लिए एक और आवश्यक रणनीति है। Azure, Spot VMs के उपयोग, लागत, और इविक्शन ईवेंट्स को ट्रैक करने के लिए टूल्स प्रदान करता है। इन मीट्रिक्स की निगरानी करके, हम अपनी Spot VMs के प्रदर्शन पर अंतर्दृष्टि प्राप्त कर सकते हैं, जो आवश्यकतानुसार रणनीति समायोजित करने में मदद करेगी।
Azure Spot VMs बनाम Reserved Instances
कभी-कभी, अनुप्रयोग के आधार पर Spot VM की तुलना में Reserved VM का उपयोग अधिक तर्कसंगत हो सकता है। Reserved VMs एक और प्रकार के VM हैं जो हमें क्लाउड लागत को अनुकूलित करने देते हैं। यह खंड इन दोनों इंस्टेंसेज़ के बीच के अंतर समझाता है।
Spot VMs
जैसा कि हमने देखा, Spot VMs उल्लेखनीय लागत बचत देती हैं, कभी-कभी ऑन-डिमांड प्राइसिंग की तुलना में 90% तक। हालांकि, इन इंस्टेंसेज़ को Azure क्षमता की मांग के अनुसार कम सूचना पर वापस ले सकता है। इसलिए, हमें Spot Instances का उपयोग उन वर्कलोड्स के लिए करना चाहिए जो समय के लिहाज से लचीले हों और व्यवधान संभाल सकें। इसमें बैच प्रोसेसिंग जॉब्स, डेवलपमेंट और टेस्टिंग परिवेश, और स्टेटलेस अनुप्रयोग शामिल हैं जिन्हें आसानी से कई इंस्टेंसेज़ में वितरित किया जा सकता है।
Reserved instances
दूसरी ओर, Reserved Instances एक या तीन वर्ष की अवधि के लिए खरीदे जाते हैं। हम एक विशिष्ट VM प्रकार चुन सकते हैं और एक या तीन वर्ष तक उपयोग के वचन के बदले ऑन-डिमांड प्राइसिंग पर महत्वपूर्ण छूट प्राप्त कर सकते हैं। Reserved Instances का मुख्य लाभ यह है कि Azure द्वारा इविक्शन का कोई जोखिम नहीं होता। यदि वर्कलोड की उपयोग पैटर्न पूर्वानुमेय हैं और निरंतर उपलब्धता आवश्यक है, तो Reserved Instances संभवतः बेहतर विकल्प हैं।
संक्षेप में, Azure Spot VMs और Reserved Instances के बीच चयन लागत, लचीलापन, और विश्वसनीयता से संबंधित आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है।
निष्कर्ष
Azure Spot VMs किफायती क्लाउड कंप्यूटिंग प्राप्त करने का एक उत्कृष्ट समाधान हैं। ये हमें ऑन-डिमांड प्राइसिंग की तुलना में कभी-कभी 90% तक की महत्वपूर्ण छूट दे सकती हैं।
Azure Spot VMs विशेष रूप से उन वर्कलोड्स के लिए उपयोगी हैं जो लचीले हों और व्यवधान सह सकें। इनमें बैच प्रोसेसिंग जॉब्स, डेवलपमेंट और टेस्टिंग परिवेश, या कोई भी अनुप्रयोग शामिल है जिसे लगातार अपटाइम की आवश्यकता नहीं होती। ऐसे वर्कलोड्स के लिए, Spot VMs हमारी लागत को काफी हद तक कम करने में मदद कर सकती हैं।
Azure Spot VMs के बारे में और जानने के लिए, ये संसाधन देखें:
- Azure Documentation: आधिकारिक Azure दस्तावेज़ उत्कृष्ट शुरुआती बिंदु हैं, जो Spot VMs के उपयोग पर विस्तृत गाइड, सर्वोत्तम अभ्यास, और तकनीकी संदर्भ प्रदान करते हैं।
- Community Forums and Support: Azure समुदाय फोरम और सपोर्ट चैनल विशिष्ट प्रश्नों के उत्तर पाने और अन्य Azure उपयोगकर्ताओं के अनुभवों से सीखने के लिए मूल्यवान संसाधन हैं।
यदि आपको यह लेख पसंद आया, तो ये पोस्ट भी देखें: Azure DevOps Interview Questions और Using GPT on Azure.
मैं MathWorks में तकनीकी लेखक हूँ। मेरा कार्य Amazon Web Services, Microsoft Azure, Docker, और NVIDIA पर MathWorks उत्पादों से संबंधित दस्तावेज़ों का संपादन और लेखन शामिल करता है।
