EC2 इंस्टेंस पर मौत के गले से कैसे बचें?


9

मेरे पास ऐप स्टोर पर एक iOS ऐप है और हाल ही में मैंने EC2 पर होस्ट किए गए अपने लैंडिंग पृष्ठ पर ट्रैफ़िक का भारी उछाल प्राप्त किया है और परिणामस्वरूप पेज जवाब नहीं दे रहा है, सौभाग्य से मैं इसे पुनः आरंभ करके और एक में इंस्टेंस को अपग्रेड करके पुनर्प्राप्त करने में कामयाब रहा। t2.medium।

अब मैं फिर से उसी मौत को रोकने के लिए किसी तकनीक को लागू करने के लिए किसी को नौकरी पर रखना चाहता हूं। मेरा अनुभव केवल उस खिंचाव को दूर करता है, जो मुझे मूल डेप्स सामान को समझने की अनुमति देता है, लेकिन एडब्ल्यूएस पर लोड बैलेंसर के लिए पर्याप्त नहीं है, मैं यह जानना चाहता हूं कि मेरे उदाहरण के लिए एक किफायती कार्यान्वयन क्या है।

मेरे लैंडिंग पृष्ठ और iOS ऐप बैकएंड को एक ही उदाहरण पर होस्ट किया गया है।


1
क्या आपका लैंडिंग पृष्ठ स्थिर है?
माइकल - एसक्यूएलबोट

जवाबों:


8

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

लोड बैलेंसर और इंस्टेंस के शीर्ष पर कोई अतिरिक्त लागत नहीं है, इसलिए आप टी 2 प्रकार के इंस्टेंस का उपयोग कर सकते हैं, लेकिन लोचदार बीनस्टॉक स्केल को जितना आप मदद करना चाहते हैं उतना रहने दें।

ऑटो स्केलिंग त्वरित नहीं है और स्पाइकिंग ट्रैफ़िक के समय में सामान्य रूप से मिनटों में थोड़ी समय लगेगा, स्पाइक को संभालने में सक्षम होने के लिए, लेकिन यह मैन्युअल आकार को स्केल करने से बहुत बेहतर होगा और वास्तव में पकड़ में आना आसान है साथ में।


1

मैं ऑटो-स्केलिंग की सिफारिश करूंगा, जैसा कि ऑटो-स्केलिंग प्रक्रिया शुरू करने के लिए कुछ क्लाउडवॉच अलार्म के अलावा ऊपर उल्लिखित है, जब विशिष्ट थ्रेशोल्ड बढ़ना शुरू हो जाता है, तब नहीं जब यह पहले से ही दूर हो चुका हो।

उदाहरण के लिए; अपने सर्वर की निगरानी के लिए CloudWatch को कॉन्फ़िगर करें, जब 30 सेकंड की अवधि के लिए CPU 50% या अधिक हो या ऑटो-स्केलिंग प्रक्रिया शुरू करें।

यह पूरी तरह से दोषरहित नहीं हो सकता है, लेकिन कुछ ऑनलाइन गाइडों और जीयूआई के माध्यम से सभी कॉन्फ़िगर करने योग्य है।

इसके अलावा, यदि आपका लैंडिंग पृष्ठ स्थिर है, तो होस्ट क्यों न करें कि एक फ्री-टीयर t2.micro पर और अपने ऐप के लिए किसी अन्य t2.micro फ्री-टियर का उपयोग करें?


अचानक ट्रैफ़िक बढ़ने के दौरान ऑटोस्कोलिंग समग्र उत्तर नहीं है। ऑटोकैसलिंग का पता लगाने वाली खिड़की कहीं 1-5 मिनट के बीच है, आपके प्रावधान के आधार पर इसमें कुछ समय लग सकता है। आम तौर पर सही उत्तर उदाहरणों को गर्म चलाने के लिए होता है, अर्थात: आपके कथित यातायात स्तर के ऊपर और उस मार्जिन को बनाए रखने के लिए ऑटोस्कोलिंग की अनुमति होगी।
मैट ओ।

1

अगर आप कुछ मदद की तलाश कर रहे हैं तो मुझे इससे मदद करना अच्छा लगेगा। आपके पृष्ठ के आधार पर आपको एक साथ 2 की आवश्यकता नहीं हो सकती है। उदाहरण के लिए यदि आपकी सेवा कुछ स्थिर या जावास्क्रिप्ट है तो इसे क्लाउड 3 वितरण के साथ s3 से परोसा जा सकता है। या हम संभवतः एक ऑटो स्केलिंग समूह का उपयोग कर सकते हैं यदि बिल्कुल आवश्यक हो।


1

ट्रैफ़िक वृद्धि से निपटने के लिए दो सामान्य रणनीतियाँ हैं: क्षमता बढ़ाना और लागत कम करना।

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

स्वचालित क्षमता विस्तार के साथ परेशानी यह है कि इसका स्वचालित बिल विस्तार भी है - 10x सामान्य ट्रैफ़िक का मतलब है 10x सर्वर का मतलब है 10x पैसे जो आपको चुकाने होंगे। इसीलिए, जबकि यह ध्यान में रखने के लिए एक उपयोगी रणनीति है, मुझे लगता है कि आपको हमेशा यह देखना चाहिए कि आप कितना धोखा दे सकते हैं।

धोखा देने से मेरा मतलब कैश है, जो इस विचार पर टिका हुआ है कि अधिकांश समय आप उपयोगकर्ताओं को थोड़ा पुराना डेटा दे सकते हैं और वे नोटिस नहीं करेंगे, और यह आपको बहुत समय तक बचा सकता है। कल्पना करें कि आपके पास एक पृष्ठ है जो आप तय करते हैं कि अगर यह पाँच सेकंड पुराना है तो ठीक है, और इसे 20 प्रति सेकंड मिलता है। कैशिंग के बिना, आप उस गणना को एक मिनट में 1200 बार चला रहे हैं, जबकि कैशिंग के साथ यह केवल 12 है। आप देख सकते हैं कि यह कैसे एक जबरदस्त अंतर बना सकता है।

बेशक कई प्रकार के कैशिंग हैं, और एक सफल वेबसाइट उनमें से कई का उपयोग करेगी। लेकिन आपके उपयोग के मामले में, दो बहुत अच्छे और आसान विकल्प हैं।

पहले साइट को पूरी तरह से स्थिर बनाना है। यह मानता है कि आप ऐसा कर सकते हैं, लेकिन यदि आप कर सकते हैं, तो आपके पास बस Nginx सीधे html सेवा करना है, और यह बिना किसी पसीने के अनुरोध के टन की सेवा कर सकता है ।

यदि आपको कुछ स्तर की गतिशीलता की आवश्यकता है, तो कुछ पूर्ण-पृष्ठ कैशिंग करना एक अच्छा विकल्प है। Nginx के पास ऐसा करने की कुछ क्षमता है, लेकिन मैं वास्तव में इसके लचीलेपन के कारण वार्निश को पसंद करता हूं।

जो भी विकल्प या विकल्प आपके साथ जाते हैं, सुनिश्चित करें कि आपने इसे ठीक से सेट अप करने के लिए परीक्षण लोड किया है; कभी-कभी एक जगह फिक्स करने से एक नई अड़चन सामने आती है।


0

मैं हमारे अनुभव को AWS के साथ साझा करना चाहूंगा। हमने EC2 पर अपने आवेदन को तैनात किया और उसी समस्या और उच्च लागत का भी सामना किया। हमने अपना आवेदन Amazon EC2 कंटेनर सेवा में तैनात किया था, हालांकि हमारा आवेदन अखंड था, लेकिन हमने हासिल किया

  • उपलब्धता
  • प्रभावी लागत
  • अनुमापकता

एप्लिकेशन लोड बैलेंसर ट्रैफ़िक को हैंडल करेगा और ट्रैफ़िक को स्वस्थ उदाहरण के लिए रूट करेगा और आप लोड को स्केल करने और संतुलित करने की चिंता किए बिना एक ही सेवा के कई कार्य चला सकते हैं।

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


नहीं है कोई अलग-अलग मूल्य ईसीएस के लिए सिर्फ अंतर्निहित EC2 संसाधन, है, तो कैसे ईसीएस किसी भी अधिक लागत प्रभावी उपयोग कर रहा था? उसे उसी मात्रा में संसाधनों का उपभोग करना चाहिए, चाहे आप खुद कंटेनरों का प्रबंधन कर रहे हों या अमेज़न को करने दे रहे हों।
Xiong Ch मियामीov

कंटेनर में अगर आप अल्पाइन का उपयोग कर रहे हैं जो 5mb और ec2 है तो आप ubuntu का उपयोग कर रहे हैं जो 2gb है? कौन सी बात सबसे अच्छी है t2 माइक्रो में आप ट्रैफ़िक के आधार पर स्केल के साथ 5 php कंटेनर चला सकते हैं .. क्या आप ec2 में स्केल और इन स्केल स्केल के साथ चला सकते हैं?
अदि १i

आपको ec2 उदाहरणों के लिए Ubuntu का उपयोग करने की आवश्यकता नहीं है; आप अल्पाइन छवि अपलोड कर सकते हैं और यदि आप चाहें तो इसका उपयोग कर सकते हैं। यदि आपने ECS के साथ काम करने के लिए सब कुछ प्राप्त कर लिया है, तो यह बहुत अच्छा है, और इसकी संभावना नहीं है कि आप वापस जाना चाहते हैं, लेकिन मेरा कहना है कि केवल ECS में जाने से कोई ऐप अधिक स्केलेबल या लागत प्रभावी नहीं बन जाता है; यह उसी समय आपके द्वारा किए गए ऐप, आधारभूत संरचना और वास्तुकला में किए गए अन्य बदलाव हैं।
Xiong Chiamiov

0

यह विशिष्ट वास्तुकला पर बहुत कुछ निर्भर करता है, लेकिन उदाहरण के लिए:

  • होस्ट पर लोड को कम करने के लिए फ्रंट ने आपकी वेबसाइट को CloudFront से लोड किया
  • स्केल के लिए S3 जैसी किसी चीज़ में क्लाइंट साइड होस्टिंग सेवा का उपयोग करें
  • एक ऑटोसालिंग समूह के साथ इलास्टिक लोड बैलेंसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.