AWS: एकल RDS उदाहरण का उपयोग कर बहु-क्षेत्र सेटअप


11

मैं एक बहु-क्षेत्र योजना में हमारे वेब एप्लिकेशन (PHP, MySQL, मेम्चे) को स्केल करने की कोशिश कर रहा हूं। वर्तमान में हम एक ईएलबी और एक आरडीएस उदाहरण के पीछे दो EC2 इंस्टेंस के साथ एक सेटअप का उपयोग कर रहे हैं, ये सभी US-EAST (वर्जीनिया) क्षेत्र में हैं।

हम यूरोपीय संघ (आयरलैंड) क्षेत्र में भी अपनी उपस्थिति दर्ज कराना चाहेंगे। इसका मतलब है कम से कम एक नया EC2 उदाहरण वहाँ (दूसरों के समान, एक ही आवेदन की सेवा)।

मैंने वांछित एएमआई की प्रतिलिपि बनाई है, नया उदाहरण सेटअप किया है, एक समान ईएलबी कॉन्फ़िगरेशन (एसएसएल समाप्ति के लिए आवश्यक) सेटअप और रूट 53 में विलंबता-आधारित रूटिंग को कॉन्फ़िगर किया है। और यह सुझाव के अनुसार काम करता है।

लेकिन, यूरोपीय संघ के ग्राहकों को गति की समस्या है। यह इस तथ्य के कारण है कि यूरोपीय संघ के ईसी 2 उदाहरण यूएस-आधारित आरडीएस उदाहरण से जुड़ते हैं। जहां तक ​​मुझे पता है कि अमेज़ॅन ने अभी तक आरडीएस बहु-क्षेत्र प्रतिकृति को सक्षम नहीं किया है।

क्या आपके पास एकल आरडीएस उदाहरण का उपयोग करते हुए पूरे सेटअप को ठीक से गति देने के बारे में कोई सुझाव है?

इसके अलावा, चीजों को सामान्य करने के तरीके पर कोई विचार? आदर्श रूप से हम विभिन्न कारणों से RDS तकनीक का उपयोग जारी रखना चाहेंगे। फिर भी, मैं सुझाव के लिए खुला हूं (मुझे लगता है कि अगला विचार हमारे अपने MySQL सर्वर को होस्ट करने के लिए होगा)।

जवाबों:


5

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

एक बहु-क्षेत्र के वातावरण में चलना बहुत अधिक जटिल है और आमतौर पर यूएस और ईयू के बीच निहित विलंबता के कारण प्रदर्शन को वापस दे रहा है।

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

सबसे आसान तरीका यूरोपीय संघ में एक समर्पित आरडीएस सर्वर स्थापित करना है और इन उदाहरणों के बीच कुछ भी साझा नहीं करना है।


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

यह डेटा कितनी बार अपडेट किया जाता है (यदि अक्सर नहीं तो आप इसे आसानी से क्षेत्रों के बीच दोहरा सकते हैं)?
गय

डेटा अक्सर सामान्य रूप से अपडेट किए जाते हैं। और वे अधिक बार अपडेट होना शुरू हो जाएंगे क्योंकि एप्लिकेशन उपयोगकर्ताओं में बढ़ता है। मुझे लगता है कि हमें कुछ अन्य समाधानों की तलाश करनी होगी।
आयन

4

कम विलंबता के कारण आरडीएस एकल-क्षेत्र की तैनाती के लिए बहुत अच्छा है, लेकिन जब आप विभिन्न क्षेत्रों में विस्तार करना शुरू करते हैं तो यह एक अलग कहानी बन जाती है। यदि आप RDS उदाहरण रखना चाहते हैं, तो आप EU क्षेत्र में अपना खुद का MySQL सर्वर सेट कर सकते हैं और प्रतिकृति बना सकते हैं। इस तरह, गति कहीं अधिक स्वीकार्य होगी।


1
एक अंतराल में RDS उदाहरण को दोहराने के लिए कोई (अर्ध) स्वचालित तरीका है? कोई विचार? मुझे लगता है कि यह प्रतिकृति केवल-पढ़ने के लिए ही सही होगी?
आयन

AWS डिफ़ॉल्ट रूप से रीड- रेप्लिका का समर्थन करता है, यह सही है: aws.amazon.com/rds/faqs/#86 - मुझे यकीन है कि प्रतिकृति पढ़ना / लिखना संभव है, लेकिन यह एसएफ के दायरे से बाहर है (मैं हमारे साथ जांच करूंगा) DBA साइट)।
नाथन सी

हां, लेकिन रीड-रेप्लिका एक ही क्षेत्र में बनाई गई हैं। हमें एक अलग क्षेत्र में एक पढ़ने की प्रतिकृति की आवश्यकता है, और पिछली बार मैंने जाँच की कि वे इसका समर्थन नहीं करते हैं।
आयन

2

हाल ही में, AWS ने उस दिशा की ओर कदम बढ़ाया, जो मैंने पहले क्रॉस-रीजन RDS रीड प्रतिकृतियों की घोषणा करके अपने प्रश्न के बारे में पूछा था । हालांकि, यह एक सच्चे बहु-क्षेत्र सेटअप की दिशा में केवल एक छोटा कदम है।


1

मेरा मानना ​​है कि आप यही चाहते हैं। ईसीएस प्रतिकृति एक अलग क्षेत्र में mysql चलाने वाले EC2 के लिए।

https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/


सर्वर दोष में आपका स्वागत है! जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
slm

धन्यवाद, दिलचस्प लगता है! यह एक अधिक प्रासंगिक लिंक है: docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
आयन

0

विलंबता में सुधार के लिए एक संभावित समाधान अमेज़ॅन ElastiCache (जो मूल रूप से कवर के तहत मेमकाटेड है) का उपयोग किया जा सकता है।

आपको प्रत्येक क्षेत्र (US-EST और EU) में एक ElastiCache नोड बनाना होगा और आपके एप्लिकेशन लॉजिक (EC2) को जब भी संभव हो कैश नोड का उपयोग करना होगा। यदि आप इस मार्ग पर जाते हैं, तो आपको अपने आवेदन को फिर से आर्किटेक्ट करना होगा 1) पता है कि स्थानीय इलास्टीचे नॉड से जितना संभव हो उतना कैश और कब और 2) लेना है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.