मैं CloudFront के साथ ब्लू / ग्रीन तैनाती करने का एक तरीका ढूंढ रहा हूं ।
क्या किसी के पास एक CloudFront वितरण से दूसरे में जाने के लिए एक अच्छा समाधान है या क्या हर कोई वास्तव में सिर्फ अपना वितरण बनाता है और फिर कभी इसे फिर से नहीं छूता है?
मेरे CloudFront वितरण में स्थैतिक सामग्री (जावास्क्रिप्ट, आदि) के लिए एक S3 मूल और AWS ELB की ओर इशारा करते हुए एक कस्टम मूल शामिल हैं।
CloudFront में कोई परिवर्तन नहीं
सामान्य परिस्थितियों में हम अपने CloudFront वितरण में कोई बदलाव नहीं करते हैं। हम S3 मूल में अपनी स्थैतिक सामग्री को S3 में स्थैतिक सामग्री फ़ाइलों का नाम बदलकर संस्करण बनाते हैं और लोचदार भार बैलेंसर (ELB) के तहत EC2 उदाहरणों के लिए तैनाती करते हैं। हालाँकि, ऐसे समय होते हैं जब हमें क्लाउडफ्रंट वितरण में स्वयं ही परीक्षण करने और बदलाव करने की आवश्यकता होती है या हमारे पर्यावरण में महत्वपूर्ण पर्याप्त परिवर्तन होते हैं जिन्हें हमें नए वातावरण में एक नए ईएलबी की ओर संकेत करने की आवश्यकता होती है।
दो CloudFront वितरण
मैंने जो पहला विकल्प चुना, वह था दो अलग-अलग क्लाउडफ्रंट वेब डिस्ट्रीब्यूशन , एक मेरे करंट के लिए, या ए, एनवायरनमेंट और एक मेरे नए या बी, एनवायरनमेंट के लिए। मैंने एक रूट -53 भारित रूटिंग नीति का उपयोग करने का प्रयास किया, जहां मैंने अपने www.domain.com रूट ५३ रिकॉर्ड के लिए दो रिकॉर्ड जोड़े, एक ने क्लाउडफ्रंट वितरण ए की ओर इशारा किया, जिसका वजन १ के वजन के साथ था और दूसरा ०.९ के वजन के साथ क्लाउडफ्रंट वितरण बी की ओर इशारा किया। योजना तब वज़न बदलने की होगी जब मैं वितरण ए से वितरण बी में जाना चाहता हूं। हालांकि, एक समय में केवल एक क्लाउडफ्रंट वितरण में www.domain.com वैकल्पिक डोमेन नाम (CNAME) पंजीकृत हो सकता है या आपको निम्न त्रुटि मिल सकती है:
com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException: One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: ef84a5f0-44e7-11e5-9315-0ba167bb108a)
एक CloudFront वितरण
दूसरा विकल्प एक CloudFront वेब वितरण रखना है। मेरे पास S3 और कस्टम मूल हैं जो मेरे A और B दोनों परिवेशों की ओर इशारा करते हैं और फिर मैं CloudFront Cache व्यवहार को दूसरे मूल की ओर इंगित करने के लिए अद्यतन करता हूं जब मैं एक वातावरण से दूसरे वातावरण में जाना चाहता हूं। यह बेहद गड़बड़ है क्योंकि इन अद्यतनों में 15-60 मिनट लगते हैं, अपडेट की प्रगति में कोई दृश्यता नहीं होती है और आपके परिवर्तन की प्रकृति के आधार पर आपको क्लाउडफ्रंट अमान्यकरण के साथ पालन करने की आवश्यकता हो सकती है ताकि आप कैश्ड सामग्री नहीं परोसें नई सामग्री के साथ पुराने वातावरण से।
आपके सुझाव के लिए धन्यवाद!