AWS पर लाखों उपयोगकर्ताओं के लिए एक प्रणाली कैसे डिज़ाइन करें
📚 शिक्षण

AWS पर लाखों उपयोगकर्ताओं के लिए एक प्रणाली कैसे डिज़ाइन करें

5 min read 985 words
5 min read
ShareWhatsAppPost on X
  • 1Begin by outlining use cases and constraints to clarify requirements for scaling a system on AWS.
  • 2Iteratively benchmark, profile, and address bottlenecks to evolve designs capable of handling millions of users.
  • 3Consider both vertical and horizontal scaling strategies, weighing trade-offs between cost and redundancy.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"Begin by outlining use cases and constraints to clarify requirements for scaling a system on AWS."

AWS पर लाखों उपयोगकर्ताओं के लिए एक प्रणाली कैसे डिज़ाइन करें

चरण 1: मामलों और बाधाओं का उपयोग करें आवश्यकताओं को इकट्ठा करें और समस्या को हल करें। उपयोग के मामलों और बाधाओं को स्पष्ट करने के लिए प्रश्न पूछें। मान्यताओं पर चर्चा करें।

साक्षात्कारकर्ता के बिना स्पष्ट प्रश्नों को संबोधित करने के लिए, हम कुछ उपयोग मामलों और बाधाओं को परिभाषित करेंगे।

बक्सों का इस्तेमाल करें इस समस्या को हल करने के लिए एक पुनरावृत्त दृष्टिकोण लेता है: 1) बेंचमार्क / लोड टेस्ट, 2) अड़चनों के लिए प्रोफाइल 3) विकल्प और व्यापार-नापसंद का मूल्यांकन करते समय अड़चनों को संबोधित करते हैं, और 4) दोहराते हैं, जो स्केलेबल डिजाइनों के लिए मूल डिजाइन विकसित करने के लिए अच्छा पैटर्न है।

जब तक आपके पास AWS में कोई पृष्ठभूमि नहीं है या आप ऐसी स्थिति के लिए आवेदन कर रहे हैं जिसके लिए AWS ज्ञान की आवश्यकता है, AWS- विशिष्ट विवरण की आवश्यकता नहीं है। हालांकि, इस अभ्यास में चर्चा किए गए सिद्धांतों में से अधिकांश AWS पारिस्थितिकी तंत्र के बाहर अधिक सामान्यतः लागू हो सकते हैं।

हम केवल निम्नलिखित उपयोग के मामलों को संभालने के लिए समस्या को हल करेंगे उपयोगकर्ता एक पढ़ने या लिखने का अनुरोध करता है सेवा प्रसंस्करण करती है, उपयोगकर्ता डेटा संग्रहीत करती है, फिर परिणाम लौटाती है लाखों उपयोगकर्ताओं को थोड़ी मात्रा में सेवा देने से सेवा विकसित करने की आवश्यकता है सामान्य स्केलिंग पैटर्न पर चर्चा करें क्योंकि हम बड़ी संख्या में उपयोगकर्ताओं और अनुरोधों को संभालने के लिए एक वास्तुकला विकसित करते हैं सेवा की उच्च उपलब्धता है अड़चनें और धारणाएँ राज्य की धारणाएँ यातायात समान रूप से वितरित नहीं किया जाता है संबंधपरक डेटा की आवश्यकता 1 उपयोगकर्ता से करोड़ों उपयोगकर्ताओं के लिए स्केल के रूप में उपयोगकर्ताओं की वृद्धि को नकारें: उपयोगकर्ता + उपयोगकर्ता ++ उपयोगकर्ता +++ ... 10 मिलियन उपयोगकर्ता 1 बिलियन प्रति माह लिखता है प्रति माह 100 बिलियन पढ़ता है 100: 1 अनुपात लिखने के लिए पढ़ें 1 केबी सामग्री प्रति लेखन उपयोग की गणना करें अपने साक्षात्कारकर्ता के साथ स्पष्ट करें कि क्या आपको बैक-ऑफ-द-लिफाफा उपयोग गणनाओं को चलाना चाहिए।

1 प्रति माह नई सामग्री का टी.बी. 1 KB प्रति लेखन * 1 बिलियन प्रति माह लिखता है 3 वर्षों में नई सामग्री के 36 टीबी मान लें कि अधिकांश लिखी गई सामग्री मौजूदा अद्यतनों के बजाय नई सामग्री से हैं 400 प्रति सेकंड औसतन लिखते हैं औसतन प्रति सेकंड 40,000 पढ़ता है आसान रूपांतरण गाइड:

2.5 मिलियन सेकंड प्रति माह 1 प्रति सेकंड अनुरोध = प्रति माह 2.5 मिलियन अनुरोध 40 प्रति सेकंड अनुरोध = प्रति माह 100 मिलियन अनुरोध प्रति माह 400 अनुरोध = प्रति माह 1 बिलियन अनुरोध चरण 2: एक उच्च स्तरीय डिज़ाइन बनाएं सभी महत्वपूर्ण घटकों के साथ एक उच्च स्तरीय डिजाइन की रूपरेखा।

Imgur

चरण 3: डिजाइन कोर घटक प्रत्येक मुख्य घटक के लिए विवरण में गोता लगाएँ।

मामले का उपयोग करें: उपयोगकर्ता एक पढ़ने या लिखने का अनुरोध करता है लक्ष्य केवल 1-2 उपयोगकर्ताओं के साथ, आपको केवल एक मूल सेटअप की आवश्यकता है सादगी के लिए एकल बॉक्स जरूरत पड़ने पर वर्टिकल स्केलिंग अड़चनों को निर्धारित करने के लिए मॉनिटर करें एक एकल बॉक्स के साथ शुरू करो EC2 पर वेब सर्वर उपयोगकर्ता डेटा के लिए भंडारण MySQL डाटाबेस वर्टिकल स्केलिंग का उपयोग करें:

बस एक बड़ा बॉक्स चुनें स्केल कैसे करें, यह निर्धारित करने के लिए मैट्रिक्स पर नज़र रखें बाधाओं को निर्धारित करने के लिए बुनियादी निगरानी का उपयोग करें: सीपीयू, मेमोरी, आईओ, नेटवर्क, आदि CloudWatch, शीर्ष, nagios, आँकड़े, ग्रेफाइट, आदि लंबवत रूप से स्केलिंग बहुत महंगी मिल सकती है कोई अतिरेक / असफलता नहीं व्यापार-नापसंद, विकल्प और अतिरिक्त विवरण:

वर्टिकल स्केलिंग का विकल्प क्षैतिज स्केलिंग है SQL से शुरू करें, NoSQL पर विचार करें बाधाओं का मानना ​​है कि संबंधपरक डेटा की आवश्यकता है। हम सिंगल बॉक्स पर MySQL डेटाबेस का उपयोग करना शुरू कर सकते हैं।

व्यापार-नापसंद, विकल्प और अतिरिक्त विवरण:

संबंधित डेटाबेस प्रबंधन प्रणाली (RDBMS) अनुभाग देखें SQL या NoSQL का उपयोग करने के कारणों पर चर्चा करें सार्वजनिक स्थैतिक IP असाइन करें इलास्टिक आईपी एक सार्वजनिक समापन बिंदु प्रदान करता है जिसका आईपी रिबूट पर नहीं बदलता है विफलता के साथ मदद करता है, बस एक नए आईपी के लिए डोमेन को इंगित करें एक DNS का उपयोग करें डोमेन को उदाहरण के सार्वजनिक IP पर मैप करने के लिए मार्ग 53 जैसे DNS जोड़ें।

व्यापार-नापसंद, विकल्प और अतिरिक्त विवरण:

डोमेन नाम सिस्टम अनुभाग देखें वेब सर्वर को सुरक्षित करें केवल आवश्यक पोर्ट खोलें वेब सर्वर को आने वाले अनुरोधों का जवाब देने की अनुमति दें: HTTP के लिए 80 HTTPS के लिए 443 एसएसएच के लिए केवल आईपी को श्वेत करने के लिए 22 वेब सर्वर को आउटबाउंड कनेक्शन आरंभ करने से रोकें व्यापार-नापसंद, विकल्प और अतिरिक्त विवरण:

सुरक्षा अनुभाग देखें चरण 4: डिजाइन को स्केल करें बाधाओं को पहचानें और पता करें, अड़चनें

उपयोगकर्ता + Imgur

मान्यताओं हमारी उपयोगकर्ता गणना शुरू हो रही है और लोड हमारे एकल बॉक्स पर बढ़ रहा है। हमारे बेंचमार्क / लोड टेस्ट और प्रोफाइलिंग MySQL Database को ज्यादा से ज्यादा मेमोरी और CPU रिसोर्सेस लेने के लिए इशारा कर रहे हैं, जबकि यूजर कंटेंट डिस्क स्पेस भर रहा है।

हम अभी तक वर्टिकल स्केलिंग के साथ इन मुद्दों को संबोधित करने में सक्षम हैं। दुर्भाग्य से, यह काफी महंगा हो गया है और यह MySQL डाटाबेस और वेब सर्वर के स्वतंत्र स्केलिंग की अनुमति नहीं देता है।

लक्ष्य एकल बॉक्स पर हल्का लोड करें और स्वतंत्र स्केलिंग के लिए अनुमति दें ऑब्जेक्ट स्टोर में स्थिर सामग्री को अलग से स्टोर करें MySQL डेटाबेस को एक अलग बॉक्स में ले जाएँ नुकसान इन परिवर्तनों से जटिलता बढ़ेगी और ऑब्जेक्ट स्टोर और MySQL डेटाबेस को इंगित करने के लिए वेब सर्वर में परिवर्तन की आवश्यकता होगी नए घटकों को सुरक्षित करने के लिए अतिरिक्त सुरक्षा उपाय किए जाने चाहिए AWS की लागत भी बढ़ सकती है, लेकिन अपने दम पर समान प्रणालियों के प्रबंधन की लागत के साथ तौला जाना चाहिए स्थिर सामग्री को अलग से स्टोर करें S3 जैसे sto के लिए एक प्रबंधित ऑब्जेक्ट स्टोर का उपयोग करने पर विचार करें

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 20 November 2020 · 5 min read · 985 words

Part of AskGif Blog · शिक्षण

You might also like