AWS के सबसे सही तरीके

इस सेक्शन में, हमारे सबसे सही तरीकों के बारे में खास जानकारी दी गई है. साथ ही, AWS क्लाउड के साथ OPDK का इस्तेमाल करने के लिए हमारे सुझाव दिए गए हैं.

Cassandra का इस्तेमाल, करीब-करीब सभी नीतियों के लिए बैकएंड और डेटास्टोर के तौर पर किया जाता है. यह Apigee Edge रनटाइम एनवायरमेंट का एक अहम हिस्सा है. इस दस्तावेज़ में, AWS एनवायरमेंट के लिए Cassandra को ऑप्टिमाइज़ करने के बारे में बताया गया है.

स्टोरेज और आई/ओ से जुड़ी ज़रूरी शर्तें

ज़्यादातर Cassandra I/O क्रम में होते हैं, लेकिन कुछ मामलों में आपको रैंडम I/O की ज़रूरत होती है. उदाहरण के लिए, डेटा पढ़ने की प्रोसेस के दौरान, सॉर्ट की गई स्ट्रिंग टेबल को पढ़ना. Cassandra के लिए, एसएसडी को स्टोरेज के लिए इस्तेमाल करने का सुझाव दिया जाता है. इसकी वजह यह है कि यह रैंडम रीड ऑपरेशन के लिए, बहुत कम इंतज़ार के समय में जवाब देता है. साथ ही, कंपैक्शन ऑपरेशन के लिए, क्रम से लिखने की परफ़ॉर्मेंस देता है. यहां रेप्लिकेशन को भी ध्यान में रखा जाता है.

AWS EC2 के कई इंस्टेंस में लोकल स्टोरेज होता है. इसमें हार्ड ड्राइव, उस हार्डवेयर से फ़िज़िकल तौर पर जुड़ी होती है जिस पर EC2 इंस्टेंस को होस्ट किया जाता है. Apigee का सुझाव है कि प्रोडक्शन में Cassandra को चलाते समय, एसएसडी और इंस्टेंस स्टोर, दोनों का इस्तेमाल करें. एक से ज़्यादा एसएसडी वाले इंस्टेंस टाइप का इस्तेमाल करने पर, RAID0 का इस्तेमाल किया जा सकता है. इससे ज़्यादा थ्रूपुट और स्टोरेज क्षमता मिलती है.

नेटवर्क की ज़रूरी शर्तें

Cassandra, नेटवर्क टोपोलॉजी के बारे में अन्य नोड के साथ जानकारी शेयर करने के लिए, गॉसिप प्रोटोकॉल का इस्तेमाल करता है. Gossip के इस्तेमाल और Cassandra के डिस्ट्रिब्यूटेड नेचर की वजह से, नेटवर्क के ज़रिए काफ़ी डेटा ट्रांसफ़र होता है. Cassandra के डिस्ट्रिब्यूटेड नेचर में, डेटा को पढ़ने और लिखने के लिए कई नोड से संपर्क करना पड़ता है. Apigee, कम से कम 1 जीबीपीएस नेटवर्क बैंडविड्थ वाले इंस्टेंस टाइप का इस्तेमाल करने का सुझाव देता है. साथ ही, प्रोडक्शन सिस्टम के लिए 1 जीबीपीएस से ज़्यादा बैंडविड्थ वाले इंस्टेंस टाइप का इस्तेमाल करने का सुझाव देता है.

/16 के सीआईडीआर वाले वीपीसी का इस्तेमाल करें. AWS में सबनेट, एक से ज़्यादा AZ में नहीं हो सकते. इसलिए, Apigee ये सुझाव देता है:

  • हर उपलब्धता ज़ोन (एज़ेड) के लिए एक सबनेट बनाएं
  • Apigee इंस्टॉल करने के लिए, तीन निजी सबनेट का इस्तेमाल करें. साथ ही, हर AZ में एक Cassandra नोड होना चाहिए. इन तीनों सबनेट में इतने सीआईडीआर ब्लॉक होने चाहिए कि Cassandra क्लस्टर को हॉरिज़ॉन्टल तौर पर बढ़ाया जा सके.
  • Cassandra के लिए, तीन सार्वजनिक सबनेट को खास एनएटी के साथ कॉन्फ़िगर करें, ताकि वह सॉफ़्टवेयर डाउनलोड करने और सुरक्षा से जुड़े अपडेट पाने के लिए, इंटरनेट से कनेक्ट कर सके.

Cassandra में मास्टर-लेस आर्किटेक्चर होता है. इसमें सभी नोड एक जैसी भूमिका निभाते हैं. इसलिए, इसमें खराब होने पर पूरे सिस्टम को बंद करने वाला पॉइंट नहीं होता. हालांकि, लेगसी मास्टर-स्लेव आर्किटेक्चर में ऐसा नहीं होता. ज़्यादा अपटाइम के लिए, Cassandra नोड को कई AZ में फैलाएं. अलग-अलग AZ में नोड को स्प्रेड करके, किसी आपदा के दौरान भी उपलब्धता और अपटाइम को बनाए रखा जा सकता है.

इंस्टेंस फ़ैमिली चुनना

Cassandra सीपीयू की ज़रूरी शर्तों को देखते समय, यह ध्यान रखना ज़रूरी है कि Cassandra में इंसर्ट-हैवी वर्कलोड, IO-बाउंड होने से पहले सीपीयू-बाउंड होते हैं. दूसरे शब्दों में, डेटा लिखने की सभी कार्रवाइयां कमिट लॉग में जाती हैं. हालांकि, Cassandra डेटा लिखने में इतना कुशल है कि सीपीयू की क्षमता कम पड़ जाती है. Cassandra, एक साथ कई काम कर सकता है. यह उपलब्ध सभी सीपीयू कोर का इस्तेमाल करता है.

Apigee, ऐसे इंस्टेंस फ़ैमिली का इस्तेमाल करने का सुझाव देता है जिसमें सीपीयू और मेमोरी, दोनों का संतुलन हो. हमारा सुझाव है कि अगर आपके AWS इलाके में C5 फ़ैमिली इंस्टेंस उपलब्ध हैं, तो उनका इस्तेमाल करें. साथ ही, C3 को फ़ॉलबैक विकल्प के तौर पर इस्तेमाल करें. कुछ मामलों में, 4xlarge दोनों फ़ैमिली में सबसे सही इंस्टेंस होता है. इससे सबसे अच्छी कीमत/परफ़ॉर्मेंस मिलती है.

Apigee, Cassandra इंस्टेंस के लिए डिफ़ॉल्ट टेनेंसी का इस्तेमाल करने का सुझाव भी देता है. अगर आपको हर AZ के लिए एक से ज़्यादा इंस्टेंस चाहिए, तो हो सकता है कि आपके सभी Cassandra इंस्टेंस एक ही हार्डवेयर पर रखे जाएं. ऐसा तब होगा, जब आपने टेनेंसी को डेडिकेटेड पर सेट किया हो. इसलिए, हार्डवेयर के काम न करने पर, उस AZ में मौजूद आपके सभी इंस्टेंस मिट सकते हैं.

सुझावों की खास जानकारी

नीचे दी गई टेबल में, Apigee Edge for Private Cloud के साथ AWS का इस्तेमाल करने के लिए, Apigee के सुझावों के बारे में बताया गया है:

इंस्टेंस फ़ैमिली C5d (पसंदीदा) या C3
इंस्टेंस का टाइप C(x).4xlarge
इंस्टेंस स्टोर RAID0 के साथ एसएसडी (लोकल स्टोरेज)
किरायेदारी का टाइप डिफ़ॉल्ट
नोड प्लेसमेंट हर AZ के लिए एक Cassandra नोड
वीपीसी और सबनेट हर AZ के लिए एक सबनेट और हर क्षेत्र के लिए एक वीपीसी

ज़्यादा जानकारी के लिए, Amazon इंस्टेंस के टाइप देखें.