S3 ऑफ़लाइन होने पर मेरी साइट को ऑनलाइन रखने के लिए एक अच्छी रणनीति क्या है?


32

S3 ऑफ़लाइन होने पर मेरी साइट को ऑनलाइन रखने के लिए एक अच्छी रणनीति क्या है?

यदि S3 US पूर्व 1 ऑफ़लाइन हो जाता है, तो मुझे अपनी संपूर्ण साइट को ऑफ़लाइन लेने से रोकने के लिए अपने एप्लिकेशन को कॉन्फ़िगर / संरचित कैसे करना चाहिए?

इस तरह की स्थिति में विविधता लाने के लिए सबसे अच्छी रणनीति क्या है?


आपने क्या प्रयास किया?
030

जवाबों:


26

मार्च 2015 में, अमेज़न AWS ने घोषणा की कि वे पूरे क्षेत्र में S3 प्रतिकृति का समर्थन करते हैं। जब S3 में एक निश्चित क्षेत्र ऑफ़लाइन हो जाता है, तो आप अपने दर्पण से दूसरे क्षेत्र में फ़ाइलों की सेवा कर सकते हैं।

स्रोत: https://aws.amazon.com/blogs/aws/new-cross-region-replication-for-amazon-s3/

किसी अन्य क्षेत्र पर स्विच करके अपने बुनियादी ढांचे को ऑनलाइन रखने का अभ्यास एक जटिल है, लेकिन S3 एक अपेक्षाकृत छोटा और सरल घटक है। नेटफ्लिक्स में कैओस गोरिल्ला के साथ उनके अनुभव पर एक शानदार लेख है

यह बढ़ी हुई विलंबता की तरह, सेवा में गिरावट पर भी लागू होता है। सिर्फ जब आप पर निर्भर एक सेवा पूरी तरह से ऑफ़लाइन है। नेटफ्लिक्स का इस पर एक लेख भी है: कैओस इंजीनियरिंग अपग्रेडेड


यह जांचने की रणनीति कि कुछ काम करता है, यह परीक्षण करना है कि यह काम करता है। वही बैकअप, कोड, आदि के लिए जाता है। मेरा सुझाव है कि आपके स्टेजिंग वातावरण (यदि आपके पास एक है) या आपके विकास का वातावरण / (यदि आपके पास है) तो आप परीक्षण किए गए साइट पर काम करते हैं।
एव्जेनी

नेटफ्लिक्स पूरे क्षेत्रों को ऑफ़लाइन जांचने के लिए जाना जाता है ताकि उनकी बैकअप योजना वास्तव में काम कर सके।
एव्जेनी

मुझे याद है कि जब नेटफ्लिक्स अमेज़ॅन के साथ नीचे जाती थी ....
वॉग्सलैंड

10

आप जो मांग रहे हैं, वह मूल रूप से उच्च-उपलब्धता है। किसी प्रणाली को अत्यधिक उपलब्ध कराने के लिए, आपको तीन चीजों की आवश्यकता होती है:

  1. विफलता के एकल अंक को हटा दें
  2. एक समापन बिंदु से दूसरे तक स्विच करने के लिए एक तंत्र
  3. विफलताओं का पता लगाने का एक तरीका

विफलता के एकल अंक को हटा दें

S3 के मामले में, बिंदु # 1 को संबोधित किया जाता है, जैसा कि एव्जेनी ने कहा था, एस 3 क्रॉस-रीजन प्रतिकृति द्वारा

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

एक समापन बिंदु से दूसरे तक स्विच करने के लिए एक तंत्र

S3 के लिए, इसका मतलब है कि आउटेज की स्थिति में, आप चाहते हैं कि एप्लिकेशन पढ़ने और लिखने को / A से बाल्टी A तक रोक दे और इसके बजाय बाल्टी B का उपयोग करें।

इसे कैसे प्राप्त किया जा सकता है, जहां तक ​​मुझे पता है, अभी तक आपके लिए है। कुछ अन्य एडब्ल्यूएस सेवाएं पूरी तरह से पारदर्शी असफल-ओवरों की पेशकश करती हैं, लेकिन मुझे फिलहाल एस 3 के लिए इस तरह की जानकारी नहीं है।

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

विफलताओं का पता लगाने का एक तरीका

खैर, यह आसान है, मुझे लगता है। बस एक राइट + लूप और अलर्ट सेटअप करें जैसे ही कुछ सही न हो :)

नोट बंद करना

  • यदि आपका आवेदन बाल्टी को लिख रहा है, तो आपको यह सोचना होगा कि असफल होने की स्थिति में क्या होगा। क्या सभी लेखों ने इसे गंतव्य की बाल्टी में बदल दिया है (और क्या आप बता सकते हैं)? क्या आप गंतव्य बकेट को लिखते हैं (इसे नया "प्राथमिक" बनाते हैं)? सावधानीपूर्वक योजना विभाजित-मस्तिष्क या खो अद्यतन परिदृश्यों से बचेंगी।
  • आपके SLA के आधार पर, आप चाहते हैं कि अंक # 2 और # 3 स्वचालित या स्वचालित हों। इसके लिए अतिरिक्त नियोजन, टूलींग और परीक्षण की आवश्यकता होती है, लेकिन अच्छी तरह से लिखी गई लिपियाँ हमेशा तेजी से और मानवीय अनुमानों की तुलना में अधिक पूर्वानुमानित तरीकों पर प्रतिक्रिया देंगी (असफलताओं में भी रात के मध्य में होने की कष्टप्रद आदत होती है जब मानव हस्तक्षेप कुछ खतरनाक होता है।
  • यह ध्यान देने योग्य है कि क्रॉस-क्षेत्र प्रतिकृति भी विफलता के एकल बिंदुओं को पूरी तरह से समाप्त नहीं करती है। यकीन है, अगर कोई क्षेत्र नीचे जाता है, तो आप कवर किए जाते हैं। लेकिन क्या होगा अगर एक यूएस-वाइड एडब्ल्यूएस आउटेज होता है? एज़्योर के पास पिछले साल आंशिक और वैश्विक आउटेज था और 2014 में भी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.