हमें इसके साथ कितनी गहराई तक जाना चाहिए? मैं यह कहकर शुरू करूंगा कि इस लेखन के रूप में, मैं क्लाउड में PostgreSQL के बारे में Amazon पर केवल 3 पुस्तकों का पता लगा सकता था, और PostgreSQL मेलिंग सूचियों पर Aurora PostgreSQL के बारे में 117 चर्चाएँ कर सकता था। यह बहुत कुछ नहीं दिखता है, और यह मुझे छोड़ देता है, उत्सुक पोस्टग्रेएसक्यूएल अंत उपयोगकर्ता, आधिकारिक दस्तावेज के साथ एकमात्र जगह है जहां मैं वास्तव में कुछ और सीख सकता हूं। चूंकि मेरे पास न तो क्षमता है, न ही खुद को रोमांचित करने का ज्ञान बहुत गहरा है, इसलिए AWS re:Invent 2018 उन लोगों के लिए है जो उस तरह के रोमांच की तलाश में हैं। मैं कोरम पर वर्नर के लेख के लिए समझौता कर सकता हूं।
वार्म अप करने के लिए, मैंने औरोरा पोस्टग्रेएसक्यूएल होमपेज से शुरुआत की, जहां मैंने नोट किया कि बेंचमार्क दिखा रहा है कि ऑरोरा पोस्टग्रेएसक्यूएल एक मानक पोस्टग्रेएसक्यूएल की तुलना में तीन गुना तेज है जो उसी हार्डवेयर पर चल रहा है जो पोस्टग्रेएसक्यूएल 9.6 पर वापस आता है। जैसा कि मैंने बाद में सीखा, नया क्लस्टर सेट करते समय 9.6.9 वर्तमान में डिफ़ॉल्ट विकल्प है। यह उन लोगों के लिए बहुत अच्छी खबर है जो तुरंत अपग्रेड नहीं करना चाहते हैं या नहीं कर सकते हैं। और केवल 99.99% उपलब्धता ही क्यों? एक स्पष्टीकरण ब्रूस मोमजियन के लेख में पाया जा सकता है।
संगतता
AWS के अनुसार, Aurora PostgreSQL PostgreSQL के लिए एक ड्रॉप-इन प्रतिस्थापन है, और दस्तावेज़ीकरण कहता है:
कोड, टूल और एप्लिकेशन जो आप आज अपने मौजूदा MySQL और PostgreSQL डेटाबेस के साथ उपयोग करते हैं, का उपयोग Aurora के साथ किया जा सकता है।
यह औरोरा अक्सर पूछे जाने वाले प्रश्नों से पुष्ट होता है:
इसका अर्थ यह है कि अधिकांश कोड, एप्लिकेशन, ड्राइवर और टूल जो आप आज अपने PostgreSQL डेटाबेस के साथ उपयोग कर रहे हैं, का उपयोग ऑरोरा के साथ बहुत कम या बिना किसी बदलाव के किया जा सकता है। Amazon Aurora डेटाबेस इंजन को PostgreSQL 9.6 और 10 के साथ तार-संगत होने के लिए डिज़ाइन किया गया है, और PostgreSQL एक्सटेंशन के उसी सेट का समर्थन करता है जो PostgreSQL 9.6 और 10 के लिए RDS के साथ समर्थित है, जिससे दो इंजनों के बीच अनुप्रयोगों को स्थानांतरित करना आसान हो जाता है।पी>
उपरोक्त पाठ में "अधिकांश" से पता चलता है कि 100% गारंटी नहीं है, जिस स्थिति में निश्चितता चाहने वालों को AWS व्यावसायिक सेवाओं, या Aamazon Aurora भागीदारों से तकनीकी सहायता खरीदने पर विचार करना चाहिए। एक साइड नोट के रूप में, मैंने देखा कि कोर समुदाय योगदानकर्ताओं को नियोजित करने वाले PostgreSQL पेशेवर होस्टिंग प्रदाताओं में से कोई भी उस सूची में नहीं है।
Aurora FAQs पृष्ठ से हम यह भी सीखते हैं कि Aurora PostgreSQL RDS के समान एक्सटेंशन का समर्थन करता है, जो बदले में अधिकांश सामुदायिक एक्सटेंशन और कुछ अतिरिक्त को सूचीबद्ध करता है।
अवधारणाएं
Amazon RDS के हिस्से के रूप में, Aurora PostgreSQL अपनी शब्दावली के साथ आता है:
- क्लस्टर:रीड/राइट मोड में प्राथमिक डीबी इंस्टेंस और शून्य या अधिक ऑरोरा प्रतिकृतियां। प्राथमिक DB को अक्सर `AWS डायग्राम्स`_ में मास्टर या AWS कंसोल में राइटर के रूप में लेबल किया जाता है। संदर्भ आरेख के आधार पर हम एक दिलचस्प अवलोकन कर सकते हैं:ऑरोरा तीन बार लिखता है। चूंकि AZ के बीच विलंबता आमतौर पर उसी AZ के भीतर की तुलना में अधिक होती है, इसलिए लेन-देन को उसी AZ के भीतर डेटा कॉपी पर लिखे जाने के साथ ही प्रतिबद्ध माना जाता है, अन्यथा AZ के बीच विलंबता और संभावित आउटेज।
- क्लस्टर वॉल्यूम:वर्चुअल डेटाबेस स्टोरेज वॉल्यूम कई AZ में फैला हुआ है।
- अरोड़ा URL:एक `होस्ट:पोर्ट` जोड़ी।
- क्लस्टर समापन बिंदु:प्राथमिक DB के लिए Aurora URL। एक क्लस्टर समापन बिंदु है।
- पाठक समापन बिंदु:प्रतिकृति सेट के लिए औरोरा URL। DNS के साथ एक सादृश्य बनाने के लिए यह एक उपनाम (CNAME) है। पढ़ने के अनुरोध उपलब्ध प्रतिकृतियों के बीच संतुलित लोड होते हैं।
- कस्टम समापन बिंदु:एक या अधिक DB इंस्टेंस वाले समूह के लिए Aurora URL।
- इंस्टेंस एंडपॉइंट:एक विशिष्ट डीबी इंस्टेंस के लिए ऑरोरा यूआरएल।
- अरोड़ा संस्करण:`SELECT AURORA_VERSION();` द्वारा लौटाया गया उत्पाद संस्करण।
AWS Aurora पर पोस्टग्रेएसक्यूएल प्रदर्शन और निगरानी
आकार बदलना
Aurora PostgreSQL सबसे अच्छा अनुमान कॉन्फ़िगरेशन लागू करता है जो DB इंस्टेंस आकार और भंडारण क्षमता पर आधारित होता है, जिससे DB पैरामीटर समूहों के उपयोग के माध्यम से DBA को और अधिक ट्यूनिंग मिलती है।
DB उदाहरण का चयन करते समय, अपने चयन को max_connections के वांछित मान पर आधारित करें।
स्केलिंग
Aurora PostgreSQL में ऑटो और मैन्युअल स्केलिंग की सुविधा है। प्रदर्शन मेट्रिक्स के उपयोग के माध्यम से पठन प्रतिकृतियों की क्षैतिज स्केलिंग स्वचालित है। लंबवत स्केलिंग को API के माध्यम से स्वचालित किया जा सकता है।
कंप्यूट इंजन को बदलने और किसी भी रखरखाव संचालन (अपग्रेड, पैचिंग) को निष्पादित करते समय क्षैतिज स्केलिंग कुछ मिनटों के लिए ऑफ़लाइन हो जाती है। इसलिए AWS रखरखाव विंडो के दौरान इस तरह के संचालन करने की सलाह देते हैं।
दोनों दिशाओं में स्केलिंग एक हवा है:
वर्टिकल स्केलिंग:इंस्टेंस क्लास को संशोधित करना क्षैतिज स्केलिंग:पाठक प्रतिकृति जोड़ना।भंडारण स्तर पर, 10G वेतन वृद्धि में स्थान जोड़ा जाता है। आवंटित संग्रहण को कभी भी पुनः प्राप्त नहीं किया जाता है, इस सीमा को कैसे दूर किया जाए, इसके लिए नीचे देखें।
संग्रहण
जैसा कि ऊपर उल्लेख किया गया है, Aurora PostgreSQL को प्रदर्शन स्थिरता में सुधार करने के लिए कोरम का लाभ उठाने के लिए डिज़ाइन किया गया था।
चूंकि अंतर्निहित भंडारण एक ही क्लस्टर के भीतर सभी डीबी उदाहरणों द्वारा साझा किया जाता है, इसलिए स्टैंडबाय नोड्स पर कोई अतिरिक्त लिखने की आवश्यकता नहीं होती है। साथ ही, DB इंस्टेंस को जोड़ने या हटाने से अंतर्निहित डेटा नहीं बदलता है।
आश्चर्य है कि वे IOs क्या हैं मासिक बिल पर इकाइयों का मतलब? Aurora अक्सर पूछे जाने वाले प्रश्न यह समझाने के लिए फिर से बचाव के लिए आते हैं कि IO . क्या है निगरानी और बिलिंग के संदर्भ में है। 8KiB डेटाबेस पेज पढ़ने के बराबर के रूप में एक रीड IO, और स्टोरेज लेयर पर लिखे गए 4KiB के बराबर के रूप में एक IO लिखें।
उच्च समवर्ती
Aurora के उच्च-संगामिति डिज़ाइन का पूरा लाभ उठाने के लिए, यह अनुशंसा की जाती है कि बड़ी संख्या में समवर्ती प्रश्नों और लेन-देन को चलाने के लिए अनुप्रयोगों को कॉन्फ़िगर किया जाए।
क्वेरीज़ को क्रमशः स्टैंडबाय और प्राथमिक डेटाबेस नोड्स पर सीधे पढ़ने और लिखने के लिए डिज़ाइन किए गए एप्लिकेशन को Aurora PostgreSQL रीडर रेप्लिका एंडपॉइंट से लाभ होगा।
कनेक्शन पढ़ने की प्रतिकृतियों के बीच संतुलित लोड होते हैं।
एनालिटिक्स जैसे गहन कार्यभार को चलाने के लिए अधिक क्षमता वाले कस्टम एंडपॉइंट डेटाबेस इंस्टेंस का उपयोग एक साथ समूहीकृत किया जा सकता है।
DB इंस्टेंस एंडपॉइंट्स का उपयोग फाइन-ग्रेन्ड लोड बैलेंसिंग या तेज़ फ़ेलओवर के लिए किया जा सकता है।
ध्यान दें कि रीडर एंडपॉइंट के लिए शेष व्यक्तिगत प्रश्नों को लोड करने के लिए, प्रत्येक क्वेरी को एक नए कनेक्शन के रूप में भेजा जाना चाहिए।
कैशिंग
Aurora PostgreSQL एक सर्वाइवेबल कैश वार्मिंग तकनीक का उपयोग करता है जो यह सुनिश्चित करती है कि बफ़र कैश में दिनांक संरक्षित है, डेटाबेस के पुनरारंभ होने के बाद कैश को फिर से पॉप्युलेट करने या गर्म करने की आवश्यकता को समाप्त करता है।
प्रतिकृति
प्रतिकृतियों के बीच प्रतिकृति अंतराल समय एकल अंक मिलीसेकंड के भीतर रखा जाता है। हालांकि PostgreSQL के लिए उपलब्ध नहीं है, यह जानना अच्छा है कि क्रॉस-क्षेत्र प्रतिकृति अंतराल 10 मिलीसेकंड के भीतर रखा जाता है।
दस्तावेज़ीकरण के अनुसार भारी लेखन अनुरोधों की अवधि के दौरान प्रतिकृति अंतराल बढ़ जाता है।
क्वेरी निष्पादन योजनाएं
इस धारणा के आधार पर कि विभिन्न डेटाबेस परिवर्तनों के कारण समय के साथ क्वेरी प्रदर्शन में गिरावट आती है, इस Aurora PostgreSQL घटक की भूमिका स्वीकृत या अस्वीकृत क्वेरी निष्पादन योजनाओं की सूची बनाए रखना है।
सक्रिय या प्रतिक्रियाशील विधियों का उपयोग करके योजनाओं को स्वीकृत या अस्वीकार किया जाता है।
जब एक निष्पादन योजना को अस्वीकृत के रूप में चिह्नित किया जाता है, तो क्वेरी निष्पादन योजना PostgreSQL अनुकूलक निर्णयों को ओवरराइड करती है और "खराब" योजना को निष्पादित होने से रोकती है।
इस सुविधा के लिए औरोरा 2.1.0 या बाद के संस्करण की आवश्यकता है।
AWS Aurora पर PostgreSQL उच्च उपलब्धता और प्रतिकृति
भंडारण स्तर पर, ऑरोरा पोस्टग्रेएसक्यूएल भौतिक सिंक्रोनस प्रतिकृति का उपयोग करते हुए प्रत्येक 10 जीबी स्टोरेज वॉल्यूम को छह बार 3 एजेड (प्रत्येक क्षेत्र में आमतौर पर 3 एजेड होते हैं) की नकल करके स्थायित्व सुनिश्चित करता है। यह डेटाबेस के लिए यह संभव बनाता है कि डेटा की 2 प्रतियां खो जाने पर भी काम करना जारी रखें। पढ़ने की उपलब्धता डेटा की 3 प्रतियों के नुकसान से बच जाती है।
प्रतिकृतियां पढ़ें सुनिश्चित करें कि एक विफल प्राथमिक उदाहरण को 15 उपलब्ध प्रतिकृतियों में से एक को बढ़ावा देकर जल्दी से बदला जा सकता है। बहु-एजेड परिनियोजन का चयन करते समय एक पठन प्रतिकृति स्वचालित रूप से बनाई जाती है। फ़ेलओवर के लिए किसी उपयोगकर्ता के हस्तक्षेप की आवश्यकता नहीं होती है, और डेटाबेस संचालन 30 सेकंड से कम समय में फिर से शुरू हो जाता है।
सिंगल-एजेड परिनियोजन के लिए, पुनर्प्राप्ति प्रक्रिया में अंतिम ज्ञात अच्छे बैकअप से पुनर्स्थापना शामिल है। Aurora FAQs के अनुसार यदि डेटाबेस को किसी भिन्न AZ में पुनर्स्थापित करने की आवश्यकता है तो प्रक्रिया 15 मिनट से कम समय में पूरी हो जाती है। दस्तावेज़ीकरण इतना विशिष्ट नहीं है, यह दावा करते हुए कि पुनर्स्थापना प्रक्रिया को पूरा करने में 10 मिनट से भी कम समय लगता है।
नए डीबी इंस्टेंस से कनेक्ट करने के लिए एप्लिकेशन साइड में किसी बदलाव की आवश्यकता नहीं है क्योंकि प्रतिकृति प्रचार या इंस्टेंस रिस्टोर के दौरान क्लस्टर एंडपॉइंट नहीं बदलता है।
चरण 1:विफलता को बाध्य करने के लिए प्राथमिक उदाहरण को हटा दें:
स्वचालित विफलता चरण 1:प्राथमिक हटाएंचरण 2:स्वचालित विफलता पूर्ण
स्वचालित विफलता चरण 2:विफलता पूर्ण।व्यस्त डेटाबेस के लिए, पुनरारंभ या क्रैश के बाद पुनर्प्राप्ति समय नाटकीय रूप से कम हो जाता है क्योंकि Aurora PostgreSQL को लेन-देन लॉग को फिर से चलाने की आवश्यकता नहीं होती है।
पूर्ण-प्रबंधित सेवा के भाग के रूप में, खराब डेटा ब्लॉक और डिस्क स्वचालित रूप से बदल दिए जाते हैं।
प्रतिकृतियां मौजूद होने पर विफलता में 120 सेकंड तक का समय लगता है और अक्सर समय 60 सेकंड से कम होता है। तेजी से पुनर्प्राप्ति समय तब प्राप्त किया जा सकता है जब विफलता की स्थिति पूर्व-निर्धारित होती है, जिस स्थिति में प्रतिकृतियों को विफलता प्राथमिकताएं सौंपी जा सकती हैं।
Aurora PostgreSQL Amazon RDS के साथ अच्छा खेलता है - Aurora इंस्टेंस प्राथमिक RDS इंस्टेंस के लिए रीड रेप्लिका के रूप में कार्य कर सकता है।
Aurora PostgreSQL तार्किक प्रतिकृति का समर्थन करता है, जो कि सामुदायिक संस्करण की तरह, अंतर्निहित प्रतिकृति सीमाओं को दूर करने के लिए उपयोग किया जा सकता है। कोई स्वचालन या AWS कंसोल इंटरफ़ेस नहीं है।
AWS Aurora पर PostgreSQL के लिए सुरक्षा
नेटवर्क स्तर पर, Aurora PostgreSQL AWS कोर घटकों, क्लाउड नेटवर्क आइसोलेशन के लिए VPC और नेटवर्क एक्सेस कंट्रोल के लिए सुरक्षा समूहों का लाभ उठाता है।
कोई सुपरयुसर एक्सेस नहीं है। क्लस्टर बनाते समय, Aurora PostgreSQL सुपरयूज़र अनुमतियों के सबसेट के साथ एक मास्टर खाता बनाता है:
[email protected]:5432 postgres> \du+ postgres
List of roles
Role name | Attributes | Member of | Description
-----------+-------------------------------+-----------------+-------------
postgres | Create role, Create DB +| {rds_superuser} |
| Password valid until infinity | |
ट्रांज़िट में डेटा सुरक्षित करने के लिए, Aurora PostgreSQL नेटिव SSL/TLS सपोर्ट प्रदान करता है जिसे प्रति DB इंस्टेंस कॉन्फ़िगर किया जा सकता है।
बाकी सभी डेटा को न्यूनतम प्रदर्शन प्रभाव के साथ एन्क्रिप्ट किया जा सकता है। यह बैकअप, स्नैपशॉट और प्रतिकृतियों पर भी लागू होता है।
एन्क्रिप्शन बाकी है।प्रमाणीकरण IAM नीतियों द्वारा नियंत्रित किया जाता है, और टैगिंग उपयोगकर्ताओं को क्या करने की अनुमति है और किन संसाधनों पर और अधिक नियंत्रण की अनुमति देता है।
सभी क्लाउड सेवाओं द्वारा उपयोग की जाने वाली API कॉल्स CloudTrail में लॉग इन हैं।
क्लाइंट साइड प्रतिबंधित पासवर्ड प्रबंधन rds.restrict_password_commands पैरामीटर के माध्यम से उपलब्ध है।
AWS Aurora पर PostgreSQL बैकअप और रिकवरी
बैकअप डिफ़ॉल्ट रूप से सक्षम होते हैं और अक्षम नहीं किए जा सकते। वे आधार बैकअप के रूप में पूर्ण दैनिक स्नैपशॉट का उपयोग करके पॉइंट-इन-टाइम-रिकवरी प्रदान करते हैं।
स्वचालित बैकअप से पुनर्स्थापित करने के कुछ नुकसान हैं:पुनर्स्थापित करने का समय कई घंटे हो सकता है और डेटा हानि आउटेज से पहले 5 मिनट तक हो सकती है। Amazon RDS मल्टी-एजेड डिप्लॉयमेंट बिना किसी डेटा हानि के, रीड रेप्लिका को प्राइमरी में बढ़ावा देकर इस समस्या का समाधान करते हैं।
डेटाबेस स्नैपशॉट तेज़ हैं और क्लस्टर प्रदर्शन को प्रभावित नहीं करते हैं। उन्हें अन्य उपयोगकर्ताओं के साथ कॉपी या साझा किया जा सकता है।
स्नैपशॉट लेना लगभग तुरंत हो जाता है:
स्नैपशॉट समय।स्नैपशॉट को पुनर्स्थापित करना भी तेज़ है। PITR से तुलना करें:
बैकअप और स्नैपशॉट S3 में संग्रहीत किए जाते हैं जो ग्यारह 9 की स्थायित्व प्रदान करता है।
बैकअप और स्नैपशॉट के अलावा, Aurora PostgreSQL डेटाबेस को क्लोन करने की अनुमति देता है। बड़े डेटा सेट की प्रतियां बनाने के लिए यह एक कुशल तरीका है। उदाहरण के लिए, मल्टी-टेराबाइट डेटा की क्लोनिंग में केवल कुछ मिनट लगते हैं और प्रदर्शन पर कोई प्रभाव नहीं पड़ता है।
Aurora PostgreSQL - पॉइंट-इन-टाइम रिकवरी डेमो
क्लस्टर से जुड़ना:
~ $ export PGUSER=postgres PGPASSWORD=postgres PGHOST=s9s-us-east-1.cluster-ctfirtyhadgr.us-east-1.rds.amazonaws.com
~ $ psql
Pager usage is off.
psql (11.3, server 10.7)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
डेटा के साथ एक तालिका पॉप्युलेट करें:
[email protected]:5432 postgres> create table s9s (id serial not null, msg text, created timestamptz not null default now());
CREATE TABLE
[email protected]:5432 postgres> select * from s9s;
id | msg | created
----+------+-------------------------------
1 | test | 2019-06-25 07:57:40.022125+00
2 | test | 2019-06-25 07:57:57.666222+00
3 | test | 2019-06-25 07:58:05.593214+00
4 | test | 2019-06-25 07:58:08.212324+00
5 | test | 2019-06-25 07:58:10.156834+00
6 | test | 2019-06-25 07:59:58.573371+00
7 | test | 2019-06-25 07:59:59.5233+00
8 | test | 2019-06-25 08:00:00.318474+00
9 | test | 2019-06-25 08:00:11.153298+00
10 | test | 2019-06-25 08:00:12.287245+00
(10 rows)
पुनर्स्थापना आरंभ करें:
प्वाइंट-इन-टाइम रिकवरी:रिस्टोर शुरू करें।एक बार पुनर्स्थापना पूर्ण हो जाने पर लॉग इन करें और जांचें:
~ $ psql -h pg107-dbt3medium-restored-cluster.cluster-ctfirtyhadgr.us-east-1.rds.amazonaws.com
Pager usage is off.
psql (11.3, server 10.7)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
[email protected]:5432 postgres> select * from s9s;
id | msg | created
----+------+-------------------------------
1 | test | 2019-06-25 07:57:40.022125+00
2 | test | 2019-06-25 07:57:57.666222+00
3 | test | 2019-06-25 07:58:05.593214+00
4 | test | 2019-06-25 07:58:08.212324+00
5 | test | 2019-06-25 07:58:10.156834+00
6 | test | 2019-06-25 07:59:58.573371+00
(6 rows)
सर्वोत्तम अभ्यास
निगरानी और लेखा परीक्षा
- अनुपालन और नियामक आवश्यकताओं के लिए डेटाबेस गतिविधि की निगरानी के लिए डेटाबेस गतिविधि स्ट्रीम को तीसरे पक्ष की निगरानी के साथ एकीकृत करें।
- एक पूरी तरह से प्रबंधित डेटाबेस सेवा का मतलब जिम्मेदारी की कमी नहीं है - सीपीयू, रैम, डिस्क स्पेस, नेटवर्क और डेटाबेस कनेक्शन की निगरानी के लिए मेट्रिक्स को परिभाषित करें।
- Aurora PostgreSQL AWS मानक निगरानी उपकरण CloudWatch के साथ एकीकृत करता है, साथ ही ऑरोरा मेट्रिक्स, ऑरोरा एन्हांस्ड मेट्रिक्स, परफॉर्मेंस इनसाइट काउंटर्स, Aurora PostgreSQL प्रतिकृति, और RDS मेट्रिक्स के लिए अतिरिक्त मॉनिटर प्रदान करता है जिसे आगे RDS डायमेंशन द्वारा समूहीकृत किया जा सकता है।ली>
- कनेक्शन ओवरहेड के संकेतों के लिए प्रतीक्षा द्वारा औसत सक्रिय सत्र डीबी लोड की निगरानी करें, एसक्यूएल क्वेरी जिन्हें ट्यूनिंग, संसाधन विवाद या अंडरसाइज्ड डीबी इंस्टेंस क्लास की आवश्यकता है।
- ईवेंट सूचनाएं सेट करें।
- त्रुटि लॉग पैरामीटर कॉन्फ़िगर करें।
- डेटाबेस क्लस्टर घटकों में कॉन्फ़िगरेशन परिवर्तन की निगरानी करें:उदाहरण, सबनेट समूह, स्नैपशॉट, सुरक्षा समूह।
प्रतिकृति
- अधिकतम DB आवृत्ति वर्ग और भंडारण क्षमता से अधिक कार्यभार के लिए मूल तालिका विभाजन का उपयोग करें
एन्क्रिप्शन
- एन्क्रिप्टेड डेटाबेस में बैकअप सक्षम होना चाहिए ताकि यह सुनिश्चित हो सके कि एन्क्रिप्शन कुंजी के निरस्त होने की स्थिति में डेटा को पुनर्स्थापित किया जा सकता है।
मास्टर खाता
- मास्टर उपयोगकर्ता पासवर्ड बदलने के लिए psql का उपयोग न करें।
आकार बदलना
- लागत कम करने के लिए क्लस्टर में विभिन्न इंस्टेंस क्लास का उपयोग करने पर विचार करें।
पैरामीटर समूह
- $$$ बचाने के लिए पैरामीटर समूहों का उपयोग करके ठीक ट्यून करें।
पैरामीटर समूह डेमो
वर्तमान सेटिंग:
[email protected]:5432 postgres> show shared_buffers ;
shared_buffers
----------------
10112136kB
(1 row)
एक नया पैरामीटर समूह बनाएं और नया क्लस्टर वाइड मान सेट करें:
shared_buffers क्लस्टर को अपडेट कर रहा है।कस्टम पैरामीटर समूह को क्लस्टर से संबद्ध करें:
लेखक को रीबूट करें और मान जांचें:
[email protected]:5432 postgres> show shared_buffers ;
shared_buffers
----------------
1GB
(1 row)
- स्थानीय समय क्षेत्र सेट करें
डिफ़ॉल्ट रूप से, समय क्षेत्र UTC में होता है:
[email protected]:5432 postgres> show timezone;
TimeZone
----------
UTC
(1 row)
नया समय क्षेत्र सेट करना:
समयक्षेत्र का विन्यासऔर फिर जांचें:
[email protected]:5432 postgres> show timezone;
TimeZone
------------
US/Pacific
(1 row)
ध्यान दें कि Amazon Aurora द्वारा स्वीकृत टाइमज़ोन मानों की सूची अपस्ट्रीम PostgreSQL में पाए जाने वाले टाइमज़ोनसेट नहीं हैं।
- इनस्टेंस पैरामीटर की समीक्षा करें जिन्हें क्लस्टर पैरामीटर द्वारा ओवरराइड किया गया है
- पैरामीटर समूह तुलना टूल का उपयोग करें।
स्नैपशॉट
- स्नैपशॉट को अन्य खातों के साथ साझा करके अतिरिक्त संग्रहण शुल्क से बचें ताकि उनके संबंधित वातावरण में पुनर्स्थापित किया जा सके।
रखरखाव
- संगठन शेड्यूल के अनुसार डिफ़ॉल्ट रखरखाव विंडो बदलें।
विफलता
- क्लस्टर कैश प्रबंधन को कॉन्फ़िगर करके पुनर्प्राप्ति समय में सुधार करें।
- क्लाइंट पर कर्नेल टीसीपी कीपलाइव वैल्यू कम करें और एप्लिकेशन डीएनएस कैशे और टीटीएल, और पोस्टग्रेएसक्यूएल कनेक्शन स्ट्रिंग्स को कॉन्फ़िगर करें।
डीबीए सावधान!
ज्ञात सीमाओं के अलावा निम्नलिखित से बचें या जागरूक रहें:
एन्क्रिप्शन
- एक बार डेटाबेस बन जाने के बाद एन्क्रिप्शन स्थिति को बदला नहीं जा सकता है।
अरोड़ा सर्वर रहित
- इस समय, Aurora Serverless का PostgreSQL संस्करण केवल सीमित पूर्वावलोकन में उपलब्ध है।
समानांतर क्वेरी
- अमेज़ॅन पैरेलल क्वेरी उपलब्ध नहीं है, हालांकि समान नाम वाली यह सुविधा PostgreSQL 9.6 के बाद से उपलब्ध है।
समापन बिंदु
अमेज़न कनेक्शन प्रबंधन से:
- प्रति क्लस्टर 5 कस्टम समापन बिंदु
- कस्टम समापन बिंदु नाम 63 वर्णों से अधिक नहीं हो सकते हैं
- क्लस्टर समापन बिंदु नाम एक ही क्षेत्र में अद्वितीय हैं
- जैसा कि ऊपर स्क्रीनशॉट में देखा गया है (औरोरा-कस्टम-एंडपॉइंट-विवरण) रीडर और कोई भी कस्टम एंडपॉइंट प्रकार उपलब्ध नहीं हैं, सीएलआई का उपयोग करें
- कस्टम समापन बिंदु अस्थायी रूप से अनुपलब्ध प्रतिकृतियों से अनजान हैं
प्रतिकृति
- रेप्लिका को प्राइमरी में प्रचारित करते समय, रीडर एंडपॉइंट के माध्यम से कनेक्शन को प्रचारित रेप्लिका के लिए थोड़े समय के लिए निर्देशित किया जा सकता है।
- क्रॉस-रीजन प्रतिकृतियां समर्थित नहीं हैं
- नवंबर 2017 के अंत में जारी होने पर, Amazon Aurora Multi-Master पूर्वावलोकन अभी भी PostgreSQL के लिए उपलब्ध नहीं है
- क्लस्टर पर तार्किक प्रतिकृति सक्षम होने पर प्रदर्शन में गिरावट पर ध्यान दें।
- तार्किक प्रतिकृति के लिए एक प्रकाशित चल रहे PostgreSQL इंजन 10.6 या बाद के संस्करण की आवश्यकता है।
संग्रहण
- डेटा हटाए जाने पर अधिकतम आवंटित संग्रहण सिकुड़ता नहीं है, न ही स्नैपशॉट से पुनर्स्थापित करके स्थान को पुनः प्राप्त किया जाता है। स्थान को पुनः प्राप्त करने का एकमात्र तरीका एक नए क्लस्टर में तार्किक डंप करना है।
बैकअप और पुनर्प्राप्ति
- क्लस्टर बंद होने पर बैकअप प्रतिधारण को बढ़ाया नहीं जाता है।
- अधिकतम अवधारण अवधि 35 दिन है — लंबी अवधारण अवधि के लिए मैन्युअल स्नैपशॉट का उपयोग करें।
- पॉइंट-इन-टाइम रिकवरी एक नए डीबी क्लस्टर में पुनर्स्थापित हो जाती है।
- प्रतिलिपियों में विफलता के दौरान पढ़ने में संक्षिप्त रुकावट।
- आपदा पुनर्प्राप्ति परिदृश्य क्रॉस-क्षेत्र उपलब्ध नहीं हैं।
स्नैपशॉट
- स्नैपशॉट से पुनर्स्थापित करना एक नया समापन बिंदु बनाता है (स्नैपशॉट केवल एक नए क्लस्टर में पुनर्स्थापित किया जा सकता है)।
- स्नैपशॉट को पुनर्स्थापित करने के बाद, कस्टम समापन बिंदुओं को फिर से बनाया जाना चाहिए।
- स्नैपशॉट से पुनर्स्थापित करने से स्थानीय समय क्षेत्र यूटीसी पर रीसेट हो जाता है।
- स्नैपशॉट से पुनर्स्थापित करना कस्टम सुरक्षा समूहों को संरक्षित नहीं करता है।
- स्नैपशॉट को अधिकतम 20 AWS खाता आईडी के साथ साझा किया जा सकता है।
- स्नैपशॉट क्षेत्रों के बीच साझा नहीं किए जा सकते।
- वृद्धिशील स्नैपशॉट हमेशा पूरे स्नैपशॉट के रूप में, क्षेत्रों के बीच और उसी क्षेत्र के भीतर कॉपी किए जाते हैं।
- स्नैपशॉट को सभी क्षेत्रों में कॉपी करने से गैर-डिफ़ॉल्ट पैरामीटर समूह सुरक्षित नहीं रहते हैं।
बिलिंग
- 10 मिनट का बिल नए उदाहरणों के साथ-साथ क्षमता परिवर्तन (गणना, या संग्रहण) का पालन करने पर लागू होता है।
प्रमाणीकरण
- IAM डेटाबेस प्रमाणीकरण का उपयोग प्रति सेकंड कनेक्शन की संख्या पर एक सीमा लगाता है।
- मास्टर खाते में कुछ सुपरयुसर विशेषाधिकार निरस्त कर दिए गए हैं।
शुरू करना और रोकना
ऑरोरा डीबी क्लस्टर को रोकने और घूरने के अवलोकन से:
- क्लस्टर को अनिश्चित काल के लिए रोका नहीं जा सकता क्योंकि वे 7 दिनों के बाद अपने आप शुरू हो जाते हैं।
- व्यक्तिगत डीबी इंस्टेंस को रोका नहीं जा सकता।
उन्नयन
- इन-प्लेस प्रमुख संस्करण अपग्रेड समर्थित नहीं हैं।
- डीबी इंस्टेंस और डीबी क्लस्टर दोनों के लिए पैरामीटर समूह परिवर्तन को लागू होने में कम से कम 5 मिनट लगते हैं।
क्लोनिंग
- प्रति डेटाबेस 15 क्लोन (मूल या कॉपी)।
- स्रोत डेटाबेस को हटाते समय क्लोन नहीं निकाले जाते।
स्केलिंग
- ऑटो-स्केलिंग के लिए आवश्यक है कि सभी प्रतिकृतियां उपलब्ध हों।
- प्रति क्लस्टर केवल `एक ऑटो-स्केलिंग नीति`_ प्रति मीट्रिक हो सकती है।
- प्राथमिक डीबी इंस्टेंस (इंस्टेंस क्लास) की क्षैतिज स्केलिंग पूरी तरह से स्वचालित नहीं है। क्लस्टर को स्केल करने से पहले प्रतिकृतियों में से एक के लिए एक स्वचालित विफलता को ट्रिगर करता है। स्केलिंग पूर्ण होने के बाद नए उदाहरण को पाठक से लेखक तक मैन्युअल रूप से प्रचारित किया जाना चाहिए:डीबी इंस्टेंस वर्ग परिवर्तन के बाद रीडर मोड में नया उदाहरण बचा है।
निगरानी
- PostgreSQL लॉग्स को CloudWatch पर प्रकाशित करने के लिए न्यूनतम डेटाबेस इंजन संस्करण 9.6.6 और 10.4 की आवश्यकता होती है।
- आरडीएस कंसोल में केवल कुछ ऑरोरा मेट्रिक्स उपलब्ध हैं और अन्य मेट्रिक्स के अलग-अलग नाम और माप इकाइयाँ हैं।
- डिफ़ॉल्ट रूप से, बेहतर मॉनिटरिंग लॉग्स को CloudWatch में 30 दिनों के लिए रखा जाता है।
- क्लाउडवॉच और एन्हांस्ड मॉनिटरिंग मेट्रिक्स अलग-अलग होंगे, क्योंकि वे क्रमशः हाइपरवाइजर और इंस्टेंस पर चल रहे एजेंट से डेटा एकत्र करते हैं।
- Performance Insights_ एक DB इंस्टेंस के भीतर सभी डेटाबेस में मेट्रिक को एकत्रित करता है।
- एडब्ल्यूएस प्रदर्शन अंतर्दृष्टि सीएलआई और एपीआई के साथ देखे जाने पर SQL कथन 500 वर्णों तक सीमित हैं।
माइग्रेशन
- केवल आरडीएस अनएन्क्रिप्टेड डीबी स्नैपशॉट को आराम से एन्क्रिप्ट किया जा सकता है।
- अरोड़ा रीड रेप्लिका तकनीक का उपयोग करके माइग्रेशन प्रति TiB में कई घंटे लगते हैं।
आकार बदलना
- सबसे छोटा उपलब्ध इंस्टेंस वर्ग db.t3.medium और सबसे बड़ा db.r5.24xlarge है। तुलना के लिए, MySQL इंजन db.t2.small और db.t2.medium प्रदान करता है, हालांकि ऊपरी रेंज में कोई db.r5.24xlarge नहीं है।
- अधिकतम_कनेक्शन की ऊपरी सीमा 262,143 है।
क्वेरी योजना प्रबंधन
- PL/pgSQL फ़ंक्शन के अंदर स्टेटमेंट असमर्थित हैं।
माइग्रेशन
Aurora PostgreSQL प्रत्यक्ष माइग्रेशन सेवाएं प्रदान नहीं करता है, बल्कि कार्य को एक विशेष AWS उत्पाद, अर्थात् AWS DMS पर लोड किया जाता है।
निष्कर्ष
अपस्ट्रीम पोस्टग्रेएसक्यूएल के लिए पूरी तरह से प्रबंधित ड्रॉप-इन प्रतिस्थापन के रूप में, अमेज़ॅन ऑरोरा पोस्टग्रेएसक्यूएल उन तकनीकों का लाभ उठाता है जो ऑटो-स्केलिंग, क्वेरी लोड-बैलेंसिंग, निम्न-स्तरीय डेटा जैसी सेवाओं को सेटअप करने के लिए आवश्यक जटिलता को दूर करने के लिए एडब्ल्यूएस क्लाउड को शक्ति प्रदान करती हैं। प्रतिकृति, वृद्धिशील बैकअप, और एन्क्रिप्शन।
PostgreSQL इंजन को अपग्रेड करने के लिए आर्किटेक्चर और एक रूढ़िवादी दृष्टिकोण प्रदर्शन प्रदान करता है और स्थिरता संगठनों को छोटे से लेकर बड़े तक की तलाश है।
अंतर्निहित सीमाएं केवल इस बात का प्रमाण हैं कि सेवा के रूप में बड़े पैमाने पर डेटाबेस का निर्माण एक जटिल कार्य है, अत्यधिक विशिष्ट पोस्टग्रेएसक्यूएल होस्टिंग प्रदाताओं को एक विशिष्ट बाजार के साथ छोड़कर जिसमें वे टैप कर सकते हैं।