MySQL के साथ Amazon RDS बनाम EC2 के संबंधित लाभ / सीमाएं क्या हैं? [बन्द है]


132

मुझे दोनों के बीच बुनियादी अंतर के एक जोड़े का एहसास है, यानी

  1. EC2 सस्ता होने जा रहा है

  2. RDS मुझे रखरखाव नहीं करना होगा

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

आपको मेरे उपयोग के बारे में थोड़ी और जानकारी देने के लिए, मुझे एक डेटाबेस मिला है, बहुत बड़ा या कुछ भी नहीं (सबसे बड़ी तालिका 1 मिलियन पंक्तियाँ), बस उच्च चयन मात्रा।


बस ec2 लगातार बैकअप विधि पर जोड़ना। alestic.com/2009/09/ec2-consistent-snapshot मैं उस टूल का उपयोग 300gb सर्वर और 5,000 डेटाबेस के साथ करता हूं। इस समय 3000 IOPS वॉल्यूम के साथ mysql को शुरू करने में लगभग 1.2 घंटे लगते हैं क्योंकि यह एक अशुद्ध शटडाउन से शुरू होता है इसलिए mysql को हर टेबल को स्कैन करना पड़ता है।
jozwikjp

Dba.stackexchange.com/questions/34525/… पर एक क्रॉस-साइट डुप्लिकेट है, जिसे कुछ अच्छे उत्तर मिले हैं।
मार्क अमेरी

जवाबों:


135

यह एक बहुत ही जटिल उत्तर के साथ एक सरल प्रश्न है!

संक्षेप में: यदि आप एक RAID0 ईबीएस के साथ जाते हैं तो EC2 अधिकतम प्रदर्शन प्रदान करेगा। RAID0 ईबीएस करने के लिए ओवरहेड के रखरखाव की एक महत्वपूर्ण राशि की आवश्यकता होती है, उदाहरण के लिए:

http://alestic.com/2009/06/ec2-ebs-raid

http://alestic.com/2009/09/ec2-consistent-snapshot

RAID0 ईबीएस के बिना EC2 भद्दा I / O प्रदर्शन प्रदान करेगा, इस प्रकार यह वास्तव में एक विकल्प भी नहीं है।

RDS बॉक्स से बहुत अच्छा (हालांकि अधिकतम नहीं) प्रदर्शन प्रदान करेगा। प्रबंधन कंसोल शानदार है और इंस्टेंसेस को अपग्रेड करना आसान है। उच्च उपलब्धता और केवल पढ़ने के लिए दास एक क्लिक दूर हैं। यह वास्तव में बहुत बढ़िया है।

संक्षिप्त उत्तर: RDS के साथ जाएं। अभी भी बाड़ पर? आरडीएस के साथ जाओ !!! यदि आप सिरदर्द का आनंद लेते हैं और अधिकतम प्रदर्शन के लिए हर आखिरी बार थोड़ा सा ट्यूनिंग करते हैं, तो आप EC2 + EBS RAID 0. वेनिला EC2 पर विचार कर सकते हैं जो MySQL होस्टिंग के लिए एक भयानक विकल्प है।


1
अच्छा उत्तर। यह एकदम वही है जो मैं चाहता: aws.typepad.com/aws/2010/10/... - धन्यवाद मुझे सही दिशा में अग्रणी के लिए
MacGyver

अच्छा उत्तर। आप प्रति सप्ताह 4 घंटे का डाउनटाइम कैसे संभालते हैं?
तिहाम

8
4 घंटे के रखरखाव विंडो के बारे में जानने के लिए एक बात यह है कि आपका सर्वर सप्ताह में 4 घंटे नीचे नहीं है! जब वे रखरखाव करेंगे तो बस तब होगा जब रखरखाव किया जाना है। मेरे पास आरडीएस सर्वर महीनों और महीनों तक शून्य डाउनटाइम के साथ चल रहा है।
इफालकाओ

2
हमारे पास शून्य डाउनटाइम के साथ YEARS के लिए चलने वाले RDS सर्वर हैं। एक बार एक प्रमुख आउटेज (लगभग 6 घंटे), एक बार जब एडब्ल्यूएस खुद को छांट लेता है, तो सब कुछ सामान्य हो जाता है। (मुझे यह इंगित करना चाहिए कि यह एक बहु-एज़ उदाहरण था लेकिन यह बैकअप में विफल होने में विफल रहा)।
cjm2671

1
@paulkon - हम प्रतिकृतियों को बंद करने के लिए असफल नहीं होते हैं, हम RDS विफलता का उपयोग करते हैं, अन्यथा नए मास्टर में वापस पदोन्नति आदि मुश्किल हो जाएगा। ऑफसाइट प्रतिकृतियां मुख्य रूप से आउट-ऑफ-क्लाउड बैकअप डीआर के साथ-साथ रिपोर्टिंग वातावरण के लिए पढ़ने / लिखने के विभाजन के लिए हैं (हमारा आवेदन स्तर उनके बारे में पता है)। HTH
रॉस

24

में इस पोस्ट के बीच एक उत्कृष्ट बेंचमार्क है:

  • MySql को एक छोटे EC2 + EBS पर चलाना
  • एक छोटे EC2 + EBS + पर MySql चलाना MySql मापदंडों को समायोजित करता है
  • एक छोटा आरडीएस

बेंचमार्क बहुत अच्छा है क्योंकि यह केवल आदर्श स्थितियों (केवल एक धागा) में केंद्रित नहीं है, बल्कि अधिक यथार्थवादी परिदृश्यों में भी है, जिसमें 50 धागे डेटाबेस को मारते हैं।


2
यह बेंचमार्क प्रकाशित करने के लिए अच्छा है, लेकिन अच्छे विश्वास में लेखक ने अंत में स्वीकार किया कि उसने इनोडब को ठीक से ट्यून नहीं किया है (बदलने के लिए बड़ा एक परम बेशक innodb_buffer_pool_size है ... जो उसने नहीं किया)
फिलव

12

आरडीएस वास्तव में एक उच्च उपलब्धता प्रणाली नहीं है। RDS faq में ठीक प्रिंट पढ़ें। एक विफलता घटना के दौरान इसे विफल होने में 3 मिनट तक का समय लग सकता है। अतिरिक्त अमेज़ॅन यह तय करेगा कि यह आपके आरडीएस उदाहरण को "अपग्रेड" करने की आवश्यकता है और उस बिंदु पर एक विफलता है जो आपके डेटाबेस को "3 मिनट तक" नीचे ले जाएगा (हमारा अनुभव है कि यह उससे अधिक समय ले सकता है)।

आरडीएस उच्च उपलब्धता मास्टर - मास्टर या मास्टर - दास प्रतिकृति से बहुत अलग है और बहुत धीमी है। वे mysql प्रतिकृति का उपयोग नहीं करते हैं लेकिन कुछ प्रकार के ebs प्रतिकृति का उपयोग करते हैं। तो एक असफल स्थिति में यह बैकअप मशीन पर ईबीएस को माउंट करेगा, mysql शुरू करेगा, mysql के लिए प्रतीक्षा करने के लिए विफलता को ठीक करेगा (उम्मीद है कि कुछ भी दूषित नहीं हुआ है), फिर एक डीएनएस स्विच करें।

मुझे उम्मीद है कि इससे आपको मूल्यांकन में मदद मिलेगी।


1
40gb डेटा के साथ एक db पर रीड स्लेव जोड़ना मेरे लिए 20min से अधिक है। यह और नियमित रूप से ec2 और / या ऑफसाइट अनुपलब्ध में पढ़ने-दास की लागत और कमी मेरे लिए एक गैर-स्टार्टर है। मैं कहता हूं कि आरडीएस छोटी दुकानों के लिए अच्छा है, जिन्हें सही उच्च उपलब्धता और असफलता प्रतिक्रिया समय की आवश्यकता नहीं है। IMHO कुछ भी की तुलना में एक DBA को खत्म करने के लिए अधिक है।
रोस

अच्छी खबर यहाँ (मार्च 2020)। अरोरा के साथ चीजें बहुत बेहतर हो गई हैं। यह अभी भी एक मास्टर - दास प्रणाली नहीं चलाता है, लेकिन क्योंकि उन्होंने एक नया "क्लाउड आधारित" स्टोरेज सिस्टम बनाया है, जो अब बहुत जल्दी है। इसके अलावा यह तेजी से स्नैपशॉट और बैकअप प्रदान करता है। अरोड़ा ने वास्तव में आरडीएस MySQL की कई कमियों को संबोधित किया है।
जेफ व्हिटिंग

6

हमने EC2 MySQL उदाहरणों का उपयोग करने के लिए चुना क्योंकि हमारे पास उच्च पढ़ने की मात्रा है और मास्टर-दास प्रतिकृति की आवश्यकता है। बेशक, आप कई RDS उदाहरणों को स्पिन कर सकते हैं और MySQL प्रतिकृति को उनके बीच स्वयं स्थापित कर सकते हैं, लेकिन हम Scalr.net का उपयोग करते हैं, जो EC2 इंस्टेंसेस का उपयोग करते हुए आपके लिए प्रबंधित करता है।

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


ध्यान दें कि जब से मैंने उपरोक्त उत्तर पोस्ट किया है, अमेज़ॅन ने आरडीएस उदाहरणों (वर्तमान में MySQL केवल) के लिए स्पष्ट रीड-प्रतिकृति समर्थन पेश किया है।
डेविड जे

5

रखरखाव विंडो प्रश्न के बारे में। यदि आप मल्टी-एज़ का उपयोग करते हैं तो आरडीएस एक और उपलब्धता क्षेत्र में एक स्टैंडबाय प्रतिकृति बनाएगा ताकि रखरखाव का कोई समय कम न हो और आप ज़ोन की विफलता के खिलाफ खुद की रक्षा करें।

मैं अगले सप्ताह में ऐसा करने की योजना बना रहा हूं। बेशक यह आपको अधिक खर्च करने वाला है लेकिन मैंने अभी तक उस पर काम नहीं किया है।


4

EC2 बनाम आरडीएस पर MySQL

EC2 अमेज़ॅन EC2 इंटर क्षेत्र प्रतिकृति पर MySQL के लाभ

अमेज़न EC2 क्षेत्रों में स्नैपशॉट कॉपी करें

RAID 0 MySQL EC2 में EBS स्ट्रिपिंग के साथ

EC2 पर MySQL पर डिस्क स्थान के 3TB से अधिक (आपको अपने आकार के लिए इसकी आवश्यकता नहीं होगी) संलग्न किया जा सकता है।

EC2 पर MySQL के नुकसान

आरडीएस की तुलना में कॉन्फ़िगरेशन, निगरानी और रखरखाव

आरडीएस में उपलब्ध समय बैकअप में प्वाइंट

RDS MySQL की तुलना में IOPS कम (RAID 0 के बाद भी) वर्तमान में, EC800 पर MySQL के लिए 6 डिस्क के साथ 10800 जबकि RDS MySQL पर 12500 IOPS 16KB


4

मैं कुछ महीनों से आरडीएस की कोशिश कर रहा हूं और यहां कुछ मुद्दे हैं:

  1. SQL प्रोफाइलर का उपयोग करना मुश्किल है। चूंकि आप प्रोफाइलर को सर्वर से सीधे कनेक्ट नहीं कर सकते हैं, इसलिए आपको लॉग फ़ाइल बनाने के लिए कुछ संग्रहीत कार्यविधियाँ चलानी होंगी जिनका आप विश्लेषण कर सकते हैं। जबकि वे कुछ सुझाव देते हैं कि यह कैसे किया जाता है, यह उपयोगकर्ता के अनुकूल नहीं है। मैं केवल यह सलाह दूंगा कि आपके पास एक प्रमाणित SQL पेशेवर है जो इस तरह का काम करता है।

  2. जबकि अमेज़ॅन आपके उदाहरण का समर्थन करता है, आप एक व्यक्तिगत डेटाबेस को पुनर्स्थापित नहीं कर सकते। मेरे पास कई अलग-अलग ग्राहक-विशिष्ट डेटाबेसों के साथ एक वेब ऐप है और मेरा समाधान यह था कि उत्पादन आरडीबी डेटाबेस से जुड़ने के लिए एसक्यूएल के साथ ईसी 2 इंस्टेंस लॉन्च किया जाए और डेटा आयात किया जाए और फिर इसे ईसी 2 इंस्टेंस पर वापस किया जाए। अन्य समाधान एक 3 पार्टी टूल का उपयोग करना था जो एक बड़े पैमाने पर SQL स्क्रिप्ट (ऐप सर्वर पर) बनाता है जो स्कीमा को फिर से बनाएगा और डेटा को एक पुनर्स्थापना बिंदु पर वापस लाएगा।


1

इस वीकेंड भी मेरा वही सवाल था। आरडीएस के लिए प्रति सप्ताह 4 घंटे डाउनटाइम विंडो है जहां वे रखरखाव करते हैं। आरडीएस अधिक महंगा लग रहा था अगर आप ईसी 2 के सूक्ष्म उदाहरण के साथ भाग सकते हैं। (यह परीक्षण उदाहरणों का सच है जिसमें न्यूनतम यातायात है) मैं आरडीएस उदाहरण के समय क्षेत्र को बदलने में सक्षम नहीं था क्योंकि मेरे पास अनुमति नहीं है।

मैं अब वास्तव में http://xeround.com/ को देख रहा हूं, जो किसी अन्य कंपनी द्वारा EC2 पर mysql है। वे InnoDB का उपयोग नहीं करते हैं, इसके बजाय उनके पास अपना स्वयं का इंजन है जिसे IDG कहा जाता है। मैं अभी इसकी जांच शुरू कर रहा हूं लेकिन वे बीटा में हैं और 500MB जगह देंगे।


ध्यान दें कि रखरखाव खिड़की हर हफ्ते डाउनटाइम नहीं होती है; यह सिर्फ समय है जब किसी भी रखरखाव की आवश्यकता होने पर किया जाएगा: aws.amazon.com/rds/faqs/#12 इसके अलावा ऊपर दिए गए जवाब पर @ efalcao की टिप्पणी देखें।
mpdaugherty

यदि आप xeround.com पर किसी भी राशि का डेटा है तो वास्तव में अच्छा है लेकिन $ $ लगता है
csharp4me
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.