अमेज़ॅन EC2 इंस्टेंस / वॉल्यूम के लिए सरल बैकअप रणनीति?


13

आपने Amazon EC2 EBS- समर्थित Windows छवियाँ 010 के लिए परिचयात्मक बैकअप दर्ज किया है ...

मैं SharePoint सेवा चलाने वाली हमारी एकल विंडोज़ 2008 सर्वर के लिए एक साधारण बैकअप रणनीति खोजने के लिए अपने दिमाग को ब्राउज़ कर रहा हूं। यह एक सर्वर की एक ईबीएस समर्थित छवि है जिसमें एक डेटा वॉल्यूम है। मैं कुछ भी विदेशी की जरूरत नहीं है। मुझे केवल एक "दैनिक" बैकअप की आवश्यकता है (एक दिन के डेटा का मूल्य कम करना भयावह नहीं है)।

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

बैकअप बनाने का मानक तरीका एक चल उदाहरण से जुड़ी मात्रा के स्नैपशॉट बनाना प्रतीत होगा। फिर से यह बहुत आसान है और सर्वर स्नैपशॉट पीढ़ी के दौरान प्रयोग करने योग्य रहता है। स्पष्ट कैच -22 यह है कि आप एक स्नैपशॉट से सीधे एक नया उदाहरण लॉन्च नहीं कर सकते।

मुझे पता है कि S3 स्टोरेज के लिए एक इंस्टेंसिंग को कैसे बंडल किया जाए और फिर S3 बकेट से AMI रजिस्टर करें। यह मुझे एक रनिंग इंस्टेंस का बैकअप कैप्चर करने की अनुमति देता है, और यदि रनिंग इंस्टेंस खो जाता है, तो एएमआई को S3 बकेट से रजिस्टर करें और इंस्टेंस को रिकवर करने के लिए नए एएमआई को लॉन्च करें, लेकिन यह वास्तव में जटिल लगता है और यह हास्यास्पद लगता है इसे पूरा करने के लिए फ़ायरफ़ॉक्स के लिए AWS कंसोल और S3 ऑर्गनाइज़र प्लग-इन के बीच आगे-पीछे जॉगल करें। (कृपया कमांड लाइन दृष्टिकोण का उल्लेख न करें, यह एक 010 स्तर का कोर्स है)।

ईबीएस समर्थित छवियों के साथ खेलने से, निम्नलिखित दृष्टिकोण मेरे लिए काम करता है (सभी AWS कंसोल के भीतर किया गया है):

1. अपने बैकअप के लिए, बस आवश्यकतानुसार सिस्टम वॉल्यूम (/ dev / sda1) को स्नैपशॉट दें। 2. यदि आप अपना रनिंग इंस्टेंस खो देते हैं, तो निम्न कार्य करें: अपने पिछले स्नैपशॉट बैकअप से एक नया वॉल्यूम बनाएँ। अपने शुरुआती एएमआई का एक और उदाहरण होना चाहिए (ईबीएस समर्थित होना चाहिए) सी। इस उदाहरण को छोड़ दें। d। मौजूदा सिस्टम वॉल्यूम को नए बंद उदाहरण से हटाएं और त्यागें। ई। रोकें गए उदाहरण के लिए सिस्टम वॉल्यूम (/ dev / sda1) के रूप में नए बनाए गए वॉल्यूम को चुनें। f। नया उदाहरण आरंभ करें। मैंने कई बार इसका परीक्षण किया है और यह मेरे लिए काम करता है।

प्रश्न: क्या इस दृष्टिकोण में कुछ गड़बड़ है?

जवाबों:


9

आपका दृष्टिकोण बहुत अच्छा लगता है - लेकिन मैं इसे सुधारने के संभावित तरीके के बारे में सोच सकता हूं।

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

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


बहुत बढ़िया बिंदु।
जॉन माइनर

4

मैं बैश स्क्रिप्ट का उपयोग करके अपने खाते में प्रत्येक वॉल्यूम के लिए एक स्नैपशॉट उत्पन्न करता हूं

#!/bin/bash

ec2-describe-volumes | awk '{ print $2 }' | sort -u >  /tmp/ebs_volumes

for i in $(cat /tmp/ebs_volumes); do
   echo $i;
   ec2-create-snapshot $i;
done

3
आप पुराने स्नैपशॉट को कैसे प्रिंयस करते हैं?
रमलैटर

1
प्रेरणा के लिए +1। (मैंने अपने स्वयं के समान उद्देश्यों के लिए कुछ स्क्रिप्ट्स लिखीं: serverfault.com/questions/275245/… )
जोनीक

0

यहां वह स्क्रिप्ट है जो आपके VPC के भीतर सभी ec2 उदाहरणों के लिए AMI बैकअप बनाएगी

#!/bin/bash
#Script to Automate AMI backup

echo "----------------------------------\n   `date`   \n----------------------------------"

aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-xxx |   awk '{ print $8 }' | sort -n   | grep  "i-" > /tmp/instanceid.txt

echo "Starting the Daily AMI creation: "

 #To create AMI from instance-id 

for i in $(cat /tmp/instanceid.txt); do
        echo "Creating AMI for Instance id $i ......."


echo "instance-`date +%d%b%y`-$i" > /tmp/aminame.txt

aws ec2 create-image --instance-id $i --name "`cat /tmp/aminame.txt`" --description "This is created by ami-backup.sh" --no-reboot | grep -ir ami | awk '{print $4}' > /tmp/amiID.txt

echo  "AMI Name is: `cat /tmp/aminame.txt`\n"

done

echo done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.