एक स्टार्टअप में एक साल। स्टार्टअप चलाते समय अपनी AWS लागतों का अनुकूलन कैसे करें।

क्लाउड कंप्यूटिंग आपके व्यवसाय को चलाने का एक बेहतर तरीका है

एक कंपनी की स्थापना करने से पहले, मैंने यह रेखांकित किया कि स्टार्टअप इको-सिस्टम के लिए क्लाउड कंप्यूटिंग सेवाएं कितनी महत्वपूर्ण हैं। स्टार्टअप्स के प्रसार में AWS, GCE, Azure, Digital Ocean ने महत्वपूर्ण भूमिका निभाई है। लगभग असीम संसाधनों तक पहुंच होने से आपको बहुत सारी तकनीकी कठिनाइयों का सामना करना पड़ता है, जिससे आप हार्डवेयर रखरखाव से परेशान होने के बजाय अपने व्यावसायिक विकास के लिए क्या आवश्यक है, इस पर ध्यान केंद्रित कर सकते हैं। लेकिन किसी भी महान शक्ति के साथ बड़ी जिम्मेदारी के रूप में आता है।

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

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

AWS उदाहरण प्रकार

AWS विभिन्न उदाहरणों का चयन करता है। दर्शनीय रूप से, हमें ऐसे VM की आवश्यकता है जो क्लाइंट साइड अनुरोधों, डेटाबेस सर्वरों (MongoDB की मेजबानी), और मशीन लर्निंग वर्कलोड (कैसेंड्रा + स्पार्क) के लिए कुशलतापूर्वक वेब-सर्वर चलाएंगे।

सर्वोत्तम उपलब्ध विकल्पों को चुनना, आसानी से हजारों डॉलर के एक मासिक बिल में सम्‍मिलित है, जो कि बूटस्ट्रैप किए गए स्टार्टअप के लिए भुगतान करने के लिए एक भारी कीमत है। 4 सीपीयू और 8 जीबी रैम के साथ एक नियमित गणना अनुकूलित उदाहरण की लागत $ 125 प्रति माह हो सकती है।

यही कारण हैं कि हमें टी 2 प्रकार के उदाहरणों के करीब देखने के लिए मजबूर होना पड़ा।

बचाव के लिए टी 2

T2 इंस्टेंसेस एक बेसलाइन प्रदर्शन प्रदान करते हैं जो चयनित वीएम को सौंपे गए क्रेडिट से प्राप्त होने वाली अवधि के लिए उच्च स्तर तक फटने की क्षमता प्रदान करता है।

क्रेडिट और उनकी खपत की दर पहले से थोड़ी गुप्त थी लेकिन एक बार जब हमने AWS डॉक्स के माध्यम से ध्यान से पढ़ा, तो यह सब ध्वनि बन गया।

मुझे एक उदाहरण देने दें। T2 छोटा (एक vCPU, 2GB के साथ), 288 क्रेडिट के साथ शुरू होता है। बेसलाइन प्रदर्शन 20% सीपीयू है, जिसका अर्थ है कि एक बार जब आप 20% सीमा पार कर लेते हैं, तो आपके क्रेडिट उन्हें जलाने की तुलना में तेजी से जलने लगेंगे। वे कितनी जल्दी जलते हैं? तेजी से, 100% CPU उपयोग में आप लगभग चार घंटे में 288 क्रेडिट का उपभोग करेंगे।

T2 छोटे क्रेडिट उपयोग

इन शर्तों के तहत भी, आपको हर समय शायद ही 100% सीपीयू की आवश्यकता होती है। बहुत सारे स्टार्टअप में एक या दो चोटियों (यानी, पूर्व और पश्चिम तट के ग्राहक) के साथ एक पूर्वानुमान योग्य उपयोग पैटर्न होता है, जो पूरे दिन होता है। यह टी 2 उदाहरणों के लिए एक आदर्श उपयोग-मामला है, जो क्रेडिट के साथ उपयोग चोटियों को कवर कर सकता है, और रात के दौरान ठीक हो सकता है। हमारी सभी सूक्ष्म सेवाएँ टी 2 वीएम पर चल रही हैं, सफलतापूर्वक ऑफ-पीक घंटों के दौरान सफलतापूर्वक ठीक हो रही हैं।

टी 2 उदाहरणों का उपयोग करने से बचने के लिए गलतियाँ

एक बार जब आप अपने सभी क्रेडिट का उपभोग करते हैं तो आपका उदाहरण इसके आधारभूत स्तर पर काम करेगा, T2 के लिए यह 20% CPU है। पुनर्प्राप्ति प्रक्रिया काफी धीमी है (यानी, T2 छोटे के लिए एक घंटे में 12 क्रेडिट), इस प्रकार आपको कार्य के लिए आवश्यक उदाहरण प्रकार चुनने में बहुत सावधानी बरतनी होगी, ताकि यह पीक आवर्स के दौरान सभी क्रेडिट का उपभोग कभी न करें।

बिना क्रेडिट और आधारभूत से बड़ा भार के साथ, आपका उदाहरण अस्थिर हो जाएगा।

ऑप्स की रिपोर्ट: पांच में से तीन ऐप सर्वर का व्यवहार थोड़ा अजीब है (@devopsreactions पर क्रेडिट)

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

टी 2 उदाहरणों का चयन कैसे करें

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

उदाहरण बहुत अच्छा कर रहा है

यह प्रमुख संकेत था कि हम ऐसे उदाहरणों पर अधिक भार डाल सकते हैं जिनमें क्रेडिट उपयोग की यह अवस्था थी। हमारी रणनीति सरल थी। एक बार जब हमने वीएम को स्पॉट किया था, जिसे कम किया गया था, तो हमने उस पर अधिक कम सीपीयू खपत सेवाओं को तैनात करना शुरू कर दिया।

एक महीने की निगरानी और ठीक-ट्यूनिंग के बाद, हमने वीएम इंस्टेंस चलाने की संख्या को लगभग आधे में काट दिया।

गैर महत्वपूर्ण संसाधनों और ऑफ़लाइन कार्यभार को बढ़ाने के लिए स्पॉट इंस्टेंस

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

दो मिनट की अधिसूचना के साथ एक कठिन व्यवधान (या हाइबरनेट) कठोर लगता है, लेकिन ऑफ़लाइन बैच नौकरियों या ऑन-डिमांड स्केलिंग के लिए यह एक आदर्श समाधान हो सकता है।

यहाँ nemo.ai पर, हम दो प्रकार के कार्यों के लिए Apache Spark का उपयोग कर रहे हैं:

  • व्यापार डैशबोर्ड के लिए ऑफ़लाइन विश्लेषण
  • ग्राहकों को पहचानने के लिए सहयोगी फ़िल्टरिंग एल्गोरिथ्म चलाना जो खरीदा / खरीदा गया है

ये दोनों नौकरियां ऑफ़लाइन हैं और बैचों में निष्पादित की जा सकती हैं, स्पॉट उदाहरण आवंटन के लिए सही परिदृश्य।

स्पॉट इंस्टेंस कैसे काम करते हैं?

AWS स्पॉट इंस्टेंसेस का उपयोग करने के बारे में एक व्यापक उपयोगकर्ता गाइड प्रदान करता है। सरल शब्दों में, आप उस संसाधन के लिए मूल्य बोली प्रदान करते हैं जिसका आप उपयोग करना चाहते हैं। एक बार आपकी बोली से नीचे जाने पर कीमत आवंटित हो जाती है।

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

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

यदि आप एक ऐसे एप्लिकेशन का निर्माण करना चाहते हैं, जो यहां स्पॉट इंस्टैंस का लाभ उठाता हो, तो टॉप सॉफ्टवेयर डिजाइन takeaways हैं:

  • जितनी जल्दी हो सके आवश्यक सेवाओं के साथ अपने स्पॉट उदाहरण को बूटस्ट्रैप करने के लिए TerraForm (या किसी अन्य स्वचालन उपकरण) के साथ एडब्ल्यूएस उदाहरणों का प्रावधान करें। पूर्वनिर्मित AMI छवि का उपयोग करना भी एक समाधान है, हालांकि हमने टेरा फॉर्म को चलाने का फैसला किया, क्योंकि यह हमारे लिए बहुत आसान है।
  • जॉब जो आप स्पॉट इंस्टेंस पर चला रहे हैं उसे रुकावट या हाइबरनेशन से डरना नहीं चाहिए।
  • स्पॉट इंस्टेंस पर आवश्यक अनुप्रयोगों की तैनाती पूरी तरह से स्वचालित होनी चाहिए, अन्यथा आप वीएम के उपयोग योग्य होने से पहले स्थापना पर कीमती समय बिताएंगे। डॉकर छवियों का उपयोग इसके लिए एक इष्टतम समाधान हो सकता है।

अपने क्षेत्र में स्पॉट इंस्टेंस की उपलब्धता को सत्यापित करने के लिए, आप इस आसान संसाधन का उपयोग कर सकते हैं।

विविध लागत

नेटवर्क और लगातार भंडारण दूसरे सबसे महंगे संसाधन हैं जिनका हमें अनुकूलन करना था। यहां आपके पास खेलने के लिए कम विकल्प हैं, हमने उन सेवाओं के लिए एसएसडी का उपयोग करने का फैसला किया है जिनके लिए तेजी से लगातार I / O (यानी, MongoDB, Apache Solr) की आवश्यकता होती है। स्टेटलेस सेवाएं चुंबकीय उपबंधित भंडारण पर ठीक काम कर रही हैं।

नेटवर्क के लिए, वहाँ बहुत कम है जिसे आप समायोजित कर सकते हैं, हालांकि आपको निश्चित रूप से ध्यान देना होगा कि क्या आपका नेटवर्क उपयोग अपेक्षित सीमाओं के भीतर है।

एक स्टार्टअप के रूप में, जिसे अपनी सेवाओं को चलाने के लिए कई वीएम की आवश्यकता होती है, लागत के अनुकूलन के प्रयास को अच्छी तरह से भुगतान करते हैं, जिससे हमें पैसे की बचत होती है जिसे हम अन्य चीजों पर खर्च कर सकते हैं।

अगर आपको यह कहानी पसंद आई है तो आप इस श्रृंखला से दूसरे को भी देख सकते हैं

एक स्टार्टअप में एक साल। हाउ वी बूटस्ट्रैप्ड ए स्टार्टअप।

यह सभी देखें

यह अनुमान लगाने का एक अच्छा तरीका क्या है कि किसी दी गई वेबसाइट विज्ञापन से कितना कमाती है? वेबसाइट और ऐप शुरू करने के लिए कितना पैसा चाहिए? यदि मैं मूल HTML5, CSS, जावास्क्रिप्ट का एक छोटा सा और बूटस्ट्रैप जानता हूं, तो मैं एक फ्रीलांस वेब डिजाइनर और डेवलपर कैसे बन सकता हूं? क्या यह वेब डेवलपर बनने के लिए पर्याप्त है?आप HTML का उपयोग करके एक वेब पेज कैसे बनाते हैं? मैं अपना कीवर्ड SEO कैसे सुधारूं? मैं वेबसाइट बनाने के लिए HTML और CSS सीख रहा हूं, लेकिन जब मैं वेबसाइट देखता हूं तो मेरा आत्मविश्वास चकनाचूर हो जाता है। क्या मुझे HTML और CSS सीखना बंद कर देना चाहिए?मैं अपने ऑनलाइन पाठ्यक्रमों में अधिक भुगतान करने वाले छात्रों को कैसे प्राप्त कर सकता हूं? ऑनलाइन मार्केटप्लेस बनाने के लिए कौन सा प्लेटफॉर्म सबसे अच्छा है?