Why real-world DynamoDB usage scenarios often lead to unexpected expenses में , मैंने कवर किया कि कैसे अप्रत्याशित कार्य भार DynamoDB में अप्रत्याशित लागत का कारण बनता है। DynamoDB लागत पर मेरी अंतिम पोस्ट अब चलो गहराई पर जाएं. एक बार जब आप बुनियादी बातों को समझ गए हैं, जैसे कि नॉटी , या आइटम आकार, पुनरावृत्ति और कैशिंग के आसपास अत्यधिक लागत ... आप महसूस करेंगे कि डायनामोडीबी लागत केवल पढ़ने / लिखने की मात्रा के बारे में नहीं है - यह वास्तविक दुनिया में बहुत अधिक रंगीन है। 7.5x inflation of on-demand compared to reserved चढ़ाई के लिए 'हम ऊपर! 100 बाइट्स पर प्रति सेकंड एक मिलियन लिखते हैं, 5KB पर एक मिलियन लिखते हैं. क्यों? क्योंकि DynamoDB लिखने के लिए 1KB टुकड़ों (और पढ़ने के लिए 4KB) में गोल-अप लागतों को मापता है। 1.2KB आइटम लिखना? आप 2KB के लिए शुल्क लगा रहे हैं. मजबूत स्थिरता के साथ 4.5KB आइटम पढ़ने के लिए? आप 8KB के लिए शुल्क लगा रहे हैं. आप केवल जो आप उपयोग करते हैं के लिए भुगतान नहीं कर रहे हैं, आप इसे गोल करने के लिए भुगतान कर रहे हैं. सुपरमैन III में इस चरित्र को याद रखें कि प्रत्येक भुगतान से 1⁄2 सेंट लेते हैं? यह एक ही सौदा है (और हाँ, $ 85,789.90 1983 में बहुत पैसा था) ... पैमाने पर बर्बाद क्षमता अपरिहार्य है, लेकिन यह बहुत वास्तविक हो जाता है, बहुत तेजी से जब आप हर एक ऑपरेशन पर उस सीमा को पार करते हैं. और प्रति आइटम 400KB की कठोर सीमा को मत भूलना. यह सीधे मूल्य निर्धारण समस्या नहीं है, लेकिन यह कुछ ऐसा है जो DynamoDB ग्राहकों को विकल्पों की तलाश करने के लिए प्रेरित करता है. हमारे यह आपको यह सब मॉडलिंग करने देता है. इसका क्या मतलब नहीं है, वास्तविक दुनिया के कुछ भूमि मिनी हैं – जैसे कि एक संघर्ष हल लिखने का तथ्य (जैसे कई क्षेत्रों में एक साथ अद्यतन) अभी भी आपको प्रत्येक प्रयास के लिए खर्च करता है, भले ही केवल अंतिम लिखना जीतता है। या जब आप अपना खुद का TTL समाप्ति तर्क बनाते हैं, तो शायद एक स्कैन में वस्तुओं का एक टुकड़ा खींचें, ऐप कोड में टाइमस्टैम्प्स की जांच करें, या हटाएं जारी करें। जिसे आप अब अनुरोध पर देख सकते हैं। DynamoDB लागत गणना DynamoDB Webinar की कीमतें वैश्विक टेबल एक वैश्विक दर्द है तो आप दुनिया भर के उपयोगकर्ताओं के लिए कम लाटेनता चाहते हैं? वैश्विक तालिकाएं ऐसा करने का सबसे आसान तरीका हैं. कुछ लोग यह भी कह सकते हैं कि यह "बैटरी शामिल है." लेकिन ये बैटरी एक विशाल मूल्य टैग के साथ आती हैं। प्रत्येक लिखने को अतिरिक्त क्षेत्रों पर दोहराया जाता है. एक 3.5KB आइटम लिखें और इसे 4 क्षेत्रों में दोहराएं? अब आप 4 x 4KB के लिए भुगतान कर रहे हैं (सामान्य रूप से गोल किया गया है)। क्षेत्रों के बीच नेटवर्क हस्तांतरण पर टैक करना न भूलें. यह प्रीमियम मूल्य पर एक और हिट है. और क्षमा करें, आप उन दोहराए गए लेखों को भी आरक्षित नहीं कर सकते. आप उस गति के लिए भुगतान कर रहे हैं, कई बार, और बिल आपके क्षेत्रीय विकास के साथ रैखिक रूप से बढ़ता है। यह बदतर हो जाता है जब कई क्षेत्र एक ही आइटम को एक ही समय में लिखते हैं. DynamoDB संघर्ष को हल करता है (पिछले लिखने के लिए जीतता है) लेकिन आप अभी भी हर प्रयास के लिए भुगतान करते हैं। हमारे लागत कैलकुलेटर आपको यह सब मॉडल करने की अनुमति देता है. हम संयुक्त राज्य अमेरिका-पूर्व के लिए रूढ़िवादी कीमतों का उपयोग करते हैं, लेकिन क्षेत्र जितना अधिक विदेशी है, उतना अधिक संभावना है कि लागत अधिक होगी. एक ऑस्ट्रेलियाई के रूप में, मैं आपकी दर्द महसूस करता हूं. तो इस बारे में सोचें कि बैटरी सहित वैश्विक तालिकाओं की पुनरावृत्ति लागत, और कृपया याद रखें, यह है ! मेज पर एक पकड़ के साथ DAX कैशिंग अब क्या आप और भी कठोर पढ़ने की लंबी अवधि चाहते हैं, विशेष रूप से आपके लंबी अवधि संवेदनशील P99 के लिए? DynamoDB Accelerator (DAX) मदद करता है, लेकिन यह ओवरहेड, दोनों संचालन और वित्तीय जोड़ता है। क्लस्टर को सही आकार दिया जाना चाहिए, हिट अनुपात समायोजित किया जाना चाहिए, और आपके अनुप्रयोग में विफलता के मामलों को संबोधित किया जाता है। कैश को याद करें, पढ़ने के लिए भुगतान करें। यहां तक कि जब आप इसे समायोजित कर चुके हैं, तो यह मुफ्त नहीं है. DAX उदाहरणों को एक घंटे के आधार पर, एक फ्लैट दर पर, और फिर से, कोई आरक्षित उदाहरण विकल्प नहीं हैं, जैसा कि आप उपयोग कर सकते हैं। हमारे DynamoDB लागत गणना आपको कैश हिट अनुपात, डेटा सेट आकार, उदाहरण प्रकार और नोड्स का अनुकरण करने की अनुमति देता है. यह कैश दक्षता की भविष्यवाणी नहीं करेगा, लेकिन यह आपको उन कैश गॉच को पकड़ने में मदद करेगा. लाखों डॉलर की सिफारिश इंजन एक बड़ा स्ट्रीमिंग सेवा ने DynamoDB के साथ एक वैश्विक सिफारिश इंजन बनाया. दैनिक बैच नौकरियां ताजा सिफारिशें उत्पन्न करती हैं और उन्हें एक 1PB एकल तालिका में लिखती हैं, 6 क्षेत्रों में पुनरावृत्ति। वे लेटेनशिप और स्थानीय लेखन के लिए अनुकूलित किए गए थे. लागत? आधार तालिका में प्रत्येक लेखन प्लस 5 पुनरावृत्ति लेखन. प्रत्येक उपयोगकर्ता बातचीत ने एक लेखन (पढ़ें इतिहास, प्रतिक्रिया, प्राथमिकताएं) को शुरू किया. और उस दैनिक नवीनीकरण चक्र के लिए धन्यवाद, वे तालिका को फिर से लिख रहे थे - चाहे कुछ भी बदल गया हो या नहीं। उन्होंने प्रावधान क्षमता का उपयोग किया, अनुमानित ट्रैफ़िक पिक्स के लिए स्केलिंग, लेकिन फिर भी लाटेन के साथ संघर्ष किया. कैश हिट दरें Redis या DAX को लागत प्रभावी बनाने के लिए बहुत कम थीं। परिणाम? केवल आधार कार्य भार प्रति वर्ष दर्जनों मिलियन खर्च करता है, और ट्रैफ़िक पिक्स और बैच लोड प्रक्रियाओं में ऊंचाइयों को समायोजित करने के बाद कुल दोगुना हो गया। कई टीमों के लिए, यह उत्पाद के स्वयं के आय से अधिक है! हमारे आपूर्ति क्षमता पर आधारित मूल्य निर्धारण मॉडल पर स्विच करने के बाद (प्रत्येक ऑपरेशन बिलिंग नहीं), ScyllaDB अपने संग्रहीत डेटा को काफी संपीड़ित करने में सक्षम था, जबकि एजेएस और क्षेत्रों के बीच नेटवर्क संपीड़न में भी सुधार हुआ था। उनके पास किसी भी क्लाउड (या यहां तक कि स्थानीय) पर ऐसा करने की स्वतंत्रता थी। जीवित रहने के लिए कैशिंग का एक और मामला DynamoDB का उपयोग कर एक एडटेक कंपनी कठिन तरीके से कैश जटिलता में भाग गई. उन्होंने 4 क्षेत्रों में 48 DAX नोड्स को तैनात किया ताकि वे अपने P99 लाटेंसी लक्ष्यों को पूरा कर सकें. प्रत्येक नोड उस क्षेत्र के कार्य भार के अनुरूप है (बहुत परीक्षण और त्रुटि के बाद)। उनके लेखन (246 बाइट्स / आइटम) गिनती किए गए लिखने की इकाई का 75% बर्बाद कर रहे थे. उनके विश्लेषणात्मक वर्कचार्ज ने पिक के दौरान लाइव ट्रैफ़िक को टैंक किया. और शायद सबसे बुरा, ऑटो-स्केलिंग ट्रिगर बस पर्याप्त तेजी से नहीं थे, जिसके परिणामस्वरूप अनुरोध ड्रॉटलिंग और एप्लिकेशन विफलताएं हुईं। DynamoDB और DAX की कुल लागत प्रति वर्ष सैकड़ों हजार थी। ScyllaDB ने एक बहुत ही सरल समाधान पेश किया। अंतर्निहित रेखा कैशिंग ने रखरखाव के लिए कोई बाहरी कैशिंग परत के बिना कोई अतिरिक्त लागत के बिना इंस्टीट्यूट मेमोरी का उपयोग किया। प्रदर्शन पर कोई असर नहीं पड़ा। नौकरी की प्राथमिकता इससे भी बेहतर, उनके TTL आधारित सत्र समाप्ति को अतिरिक्त पढ़ने / हटाने के तर्क के बिना स्वचालित रूप से संसाधित किया गया था. लागत और जटिलता में कमी आई है, और वे अब एक खुश ग्राहक हैं। DynamoDB लागत वीडियो देखें यदि आप वेबमिनार को याद करते हैं, तो सुनिश्चित करें कि आप – विशेष रूप से जहां Guilherme इन सभी वास्तविक दुनिया के कार्य भारों को विस्तृत रूप से कवर करता है। DynamoDB वीडियो की कीमत DynamoDB लागत गैर लाइनरी है और उपयोग पैटर्न द्वारा आकार दिया जाता है, न कि केवल पारगमन। वैश्विक तालिकाएं, आइटम आकार, संघर्ष समाधान, कैश गर्मअप और अधिक 7 आंकड़ों के बुरे सपने में "सामान्य" उपयोग को बदल सकते हैं। DAX और ऑटो-स्केलिंग जादू नहीं हैं; उन्हें ट्यूनिंग की आवश्यकता होती है और अभी भी सही होने के लिए काफी पैसा खर्च होता है। हमारे DynamoDB लागत गणना इन छिपे हुए लागतों को मॉडल करने और विभिन्न सेटिंग्स की तुलना करने में मदद करता है, भले ही आप ScyllaDB का उपयोग नहीं कर रहे हों। और अंत में, यदि आप DynamoDB का उपयोग करके अप्रत्याशित लागत और प्रदर्शन के साथ एक टीम हैं, तो ScyllaDB पर स्विच करें और भविष्यवाणी योग्य मूल्य निर्धारण, अंतर्निहित दक्षता और अपने डेटाबेस आर्किटेक्चर पर अधिक नियंत्रण के लाभ का आनंद लें। . हमारे साथ चैट यहाँ Tim Koopmans के बारे में टिम ने पिछले कुछ दशकों के लिए इंजीनियरिंग के सभी रूपों में हाथ रखे हैं, विश्वसनीयता और सुरक्षा के लिए एक प्रवृत्ति के साथ। 2013 में उन्होंने फ्लोड आईओ की स्थापना की; एक वितरित प्रदर्शन परीक्षण प्लेटफॉर्म।