AWS EC2 Windows Bulut Sunucusu'nun otomatik (günlük) anlık görüntülerini nasıl zamanlayabilirim?


12

Amazon EC2'de barındırılan bazı Windows sunucularım var. Bazıları Windows Server 2003 ve diğerlerini Windows Server 2008 çalıştırır. Bunlar EBS destekli örneklerdir. Örneklerin çoğunda bazı ek EBS hacimleri eklenmiştir.

S3'e Windows makinelerinin (ve ekli EBS hacimlerinin) günlük bir anlık görüntüsünü S3'e programlamak istiyoruz, böylece günlük yedeklemelerimiz var.

Bunun çok yaygın bir gereklilik olduğunu ve AWS Yönetim Konsolu aracılığıyla sağlanabileceğini düşünürsek, ama ne yazık ki öyle değil. Hangi yaklaşımlar mevcut? Windows Sunucularımızda günlük anlık görüntüleri nasıl planlayabilirim?

Linux için çevrimiçi olarak kullanılabilen birkaç komut dosyası örneği vardır, ancak pencereler için çok fazla değildir. Ben bir göz oldu http://sehmer.blogspot.com/2011/04/amazon-ec2-daily-snapshot-script-for.html olarak kuyu olarak https://github.com/ronmichael/aws-snapshot- zamanlayıcı . Herkes bu yaklaşımlardan birini kullandı ve işe yarıyor mu?

Ayrıca ilk bakışta ucuz gibi görünen Skeddly gibi bir hizmeti de düşündüm , ancak birkaç sunucu için kullanmaya baktığınızda, fiyat yakında kendi çözümünüzü oluşturmak için daha iyi bir seçenek gibi göründüğü bir noktaya yükselir. gelecekte yeni sunucular. Skeddly ile her sunucu için ödeme yaparız.

Windows bulut sunucularımızın günlük anlık görüntülerini nasıl planlayabiliriz?

Yanıtlar:


9

Amazon Web Services yakın zamanda Windows için PowerShell komut satırı araçlarını duyurdu ve .NET SDK için AWS Araçları ile birlikte paketlendi .

AWS Powershell araçları, anlık görüntü oluşturmayı oldukça kolaylaştırır:

New-EC2Snapshot "vol-371acd04" -Description "My Snapshot"

Anlık görüntülerinizi şu şekilde sorgulayabilirsiniz:

PS C:\Program Files (x86)\AWS Tools\PowerShell> Get-EC2Snapshot | more


SnapshotId  : snap-18be2b28
VolumeId    : vol-371acd04
Status      : completed
StartTime   : 2012-12-28T08:17:00.000Z
Progress    : 100%
OwnerId     : 383816850479
VolumeSize  : 30
Description : My Snapshot
OwnerAlias  :
Tag         : {}

AWS Powershell araçlarının yüklü olduğundan emin olun ve anlık görüntülerinizi planlamak için yukarıdaki snippet'e benzer bir powershell betiği kullanan zamanlanmış bir görev oluşturun ve iyi olmalısınız.

Ekli EBS birimlerini sorgulamak için güncellendi:

Örneğin örneğinize eklenmiş EBS birimlerini sorgulamak ve her birinin anlık görüntüsünü almak için aşağıdakine benzer bir şey yapabilirsiniz:

# Find my instance ID from the EC2 metadata
$myInstanceID = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")

# Query for volumes that are attached to my Instance Id
$volumes = (Get-EC2Volume).Attachment | where {$_.InstanceId -eq $myInstanceID } | Select VolumeId

# Iterate through these volumes and snapshot each of them
foreach ($volume in $volumes)
{
    New-EC2Snapshot $volume.VolumeId -Description "My Snapshot"
}

Çok teşekkür ederim. Aradığım şey bu gibi görünüyor. Lütfen açıklığa kavuşturun: New-EC2Snapshot komutu yalnızca belirli bir birimin anlık görüntüsünü alacak gibi görünüyor. Benim durumumda Eşgörünüm var ve ayrıca bazı EBS hacimleri eklenmiş. Kök aygıt ve ekli EBS birimleri dahil tüm örneğin tam bir anlık görüntüsünü nasıl alabilirim?
Stanley

@Stanley, örneğinize eklenmiş EBS hacimlerini ve her bir anlık görüntüyü sorgulamak üzere güncellendi
Ameer Deen

Teşekkür ederim. Bu, her birim için ayrı anlık görüntüler olacağı anlamına gelir. Sadece bunun anlamını anlamak istiyorum: Arıza durumunda nasıl yedek bir örnek oluşturabilirim? EBS kök biriminin ve tek tek monte edilen EBS birimlerinin anlık görüntüleri ayrı olacaktır. Farklı anlık görüntülerdeki takılı sürücülerle nasıl yeni bir örnek oluşturabilirim?
Stanley

Bunu neden EC2 kontrol panelinden ayarlayamıyorsunuz? Senaryolara aşırı güvenmeyen insanlar için?
leen3o

5

2018 Güncellemesi 2018'in sonlarından itibaren EBS anlık görüntülerini otomatikleştirmenin iki ek yolu daha var. CloudWatch olaylarının orijinal yöntemini hala yıllarca iyi çalıştığı için kullanıyorum ve değişmenin bir anlamı yok.

Ops Otomatiği (OA)

Ops Automator , AWS tarafından sağlanan çok esnek bir lambda komut dizisidir. Yukarıdaki sayfada bulunan bir CloudWatch şablonuyla konuşlandırılmıştır.

Kurulum adımları

  1. AWS CloudFormation şablonu, tetikleyici olayları, kaynak seçimini, görev yürütme, eşzamanlılık kontrolü ve tamamlamayı yöneten bir dizi mikro hizmet (AWS Lambda işlevleri) içeren temel çerçeveyi başlatır.
  2. Tetikleyici olayı, görevin nasıl gerçekleştirileceğini, eylemler tarafından hangi kaynakların seçileceğini ve bu kaynakların nerede bulunduğunu tanımlayan görev yapılandırma verileri bir Amazon DynamoDB tablosunda saklanır.
  3. Çözüm tarafından oluşturulan AWS CloudFormation şablonları, görevleri tanımladığınız parametrelere ve hesaplar arasında eylem gerçekleştirmek için gerekli rollere göre yapılandırır.
  4. Çözüm, bir DynamoDB tablosundaki işlemdeki tüm adımları, seçilen kaynakları ve olası hatalar dahil olmak üzere eylemlerin sonuçlarını izler.
  5. Çözüm, günlük kaydı için Amazon CloudWatch Günlüklerini de kullanıyor. Uyarı ve hata mesajları, abone olunan bir e-posta adresine mesaj gönderen, çözüm tarafından oluşturulmuş bir Amazon Basit Bildirim Hizmeti (Amazon SNS) konusuna yayınlanır.

Veri Yaşam Döngüsü Yöneticisi (DLM)

DLM Belgeleri . Bu, her 12 veya 24 saatte bir hacimleri yedekleyebilen daha basit ama daha az esnek bir çözümdür. AWS'nin bu sınırlamayı DLM'ye neden uyguladığı konusunda şaşkınım - haftalık, aylık veya değişken bir frekansın uygulanması kolay olurdu.

DLM, AWS konsoluna entegre edilmiştir. AWS işleri iyi bir şekilde güncel tuttuğu ve bağlantılar nadiren koptuğu için belgeleri kopyalayıp yapıştırmayacağım.

2019 itibariyle DLM , iki saate kadar daha kısa aralıklar belirlemenize izin verir , ancak yine de 24 saatten daha uzun aralıklar belirtmenize izin vermez.

2017 Güncellemesi

2017 itibariyle, Cloudwatch Olaylarını kullanarak düzenli anlık görüntüler oluşturmanın başka bir yolu var .

Bu, anlık görüntüleri planlamanızı sağlar, ancak kullanımda olan birimin sorununu çözmez, bu yüzden sadece kısmi bir çözümdür. Birimi yavaşlatan bir şeyi tetiklemek için CloudWatch Olaylarını kullanmanın bir yolu olabilir.

  1. Https://console.aws.amazon.com/cloudwatch/ adresinden CloudWatch konsolunu açın .

  2. Gezinme bölmesinde Etkinlikler'i seçin.

  3. Kural oluştur'u seçin.

  4. Etkinlik Kaynağı için aşağıdakileri yapın:

    -> Zamanlama Seçin.

    -> Sabit oran'ı seçin ve program aralığını belirtin (örneğin, 5 dakika). Alternatif olarak, Cron ifadesini seçin ve bir Cron ifadesi belirtin (örneğin, geçerli saatten başlayarak Pazartesi'den Cuma'ya her 15 dakikada bir).

  5. Hedefler için Hedef ekle'yi ve ardından EC2 Anlık Görüntü API'sı çağrısı oluştur'u seçin.

  6. Birim Kimliği için bir EBS birimi seçin.

  7. Ayrıntıları yapılandır'ı seçin.

  8. Kural tanımı için kural için bir ad ve açıklama yazın.

  9. AWS izinleri için yeni bir rol oluşturma seçeneğini seçin. Bu, IAM konsolunu yeni bir sekmede açar. Yeni rol, kaynaklara sizin adınıza erişmek için yerleşik hedef izni verir. İzin Ver'i seçin. IAM pencereli sekme kapanır.

  10. Kural oluştur'u seçin.


Aws için ücretsiz, basit ve yerel bir çözüm.
Vlastimil Ovčáčík

1
Yaşam döngüsü yöneticisi artık 2/3/4/6/8/12/24 saat frekansından herhangi birine izin veriyor.
Dan Pritts

3

Beni aramamda başlatan eski bir cevaba atlamak. Senaryolar için yukarıda Ameer Deen'e şükredin, btw.

Veri toplama ve EBS anlık görüntü sürecini tam otomatikleştirmek için PowerShell komut dosyalarına çok daha derinlemesine dalış yapan bu gönderi bulundu:

http://messor.com/aws-disaster-recovery-automation-w-powershell/

Daha sonra elbette bunların hepsi AWS SDK'nın şu anda amortismanlı v1.0'ı için yazıldığını keşfetti, bu yüzden son günü bunu düzeltmek ve hepsini v2.0 ile çalışmak için harcadım:

https://github.com/noahlh/aws-automated-backup-powershell

Zevk almak!


3

AutomatiCloud tam olarak ihtiyacınız olanı yapar. EBS Birimleri veya RDS örnekleri için yedeklemeleri planlayabileceğiniz, kullanımı kolay bir windows aracıdır: www.automaticoud.net

Yapabilirsin

  • örnek kimliklerine veya etiketlerine dayalı anlık görüntüler ve AMI'ler oluşturma
  • makroları kullanarak dinamik etiketler oluşturma
  • 3 düzey tutma süresi tanımlayın (GFS yedekleme)
  • e-posta bildirimleri gönder
  • Windows örnekleri için VSS aracısı ekle
  • Yedeklemeden önce / sonra komut dosyalarını çalıştır
  • ve daha fazlası...

Bu gerçekten iyi görünüyor! İndirip bugün daha sonra kullanacağım.
leen3o

1
Automaticloud ücretsiz mi? Bir süre kullandıktan sonra benden para isteyecek mi?
EricP

AutomatiCloud ücretsizdir. Gelişmiş özellikler kayıt gerektirir.
Stephan Buhre

1

Artık otomatik olarak AMI'ler oluşturmak için AWS Lambda'yı kullanabilirsiniz . Tüm kurulum, istediğiniz programla birlikte yaklaşık 10 dakika içinde tamamlanmalıdır. Ayrıca katkıda bulunmak için Github repolarına bakın. Komut dosyasını kendiniz çalıştırın ve üçüncü taraflara izin vermekten kaçının.


0

Bu anlık görüntüleri planlamak için EC2 API'siyle konuşan bir komut dosyası yazabilirsiniz. Mevcut örneklerinizden birinde çalıştırılabilir veya tek işlevi Windows ana bilgisayarlarının anlık görüntülerini başlatmak olan bir t1.micro üzerinde bu amaçla küçük bir linux örneği oluşturabilirsiniz. Komut dosyası, seçtiğiniz zaman günlük olarak çalıştırmak için linux ana bilgisayarına bir cron işi olarak yerleştirilebilir.

İlk bağlantı, bir Windows ana bilgisayarından komut dosyasının bir örneğidir ve Windows'ta Zamanlanmış Görevler ile kolayca otomatikleştirilebilir.

İkinci bağlantınıza bağladığınız uygulamayı kullanmadım.


Belki biraz daha ayrıntı verebilir misiniz? Çözümün muhtemelen bir tür senaryo yazmak benim için olacağını anlıyorum, ancak bu bilgi kendi başına sorunu maalesef çözmek için yeterli değil. Bahsettiğiniz komut dosyalarının bir bağlantısı veya örneği olabilir mi?
Stanley

Sorunuzdan bağladığınız kişi gerçekten işe yarayacak. AWS API Komut Satırı araçlarını hiç biliyor musunuz?
Nathan V

0

Windows Örnekleri için geçerli EBS Anlık Görüntüsü özellikleri burada açıklanmaktadır: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-creating-snapshot.html

Tutarlı bir anlık görüntü elde etmek için, anlık görüntünün tamamlanması için birime yazmaları duraklatmanız gerekir. Tipik olarak, bu, sesi çıkarmanız gerektiği anlamına gelir. AWS dokümanı, bunun Windows'ta komut satırı aracılığıyla nasıl yapılacağını tartışmaz, ancak bunu bu süper kullanıcı iş parçacığında bulabilirsiniz: /superuser/704870/mount-and-dismount-hard-drive-through -a-script yazılım

Sistem önyükleme biriminin anlık görüntüsünü almak için örneğinizi durdurmanız gerekir.

Umarım yardımcı olur.


0

Bunun eski bir soru olduğunun farkındayım, ama çözümümüzü paylaşacağım.

Ylastic adlı bir hizmet kullanıyoruz . Pro planı (50 $ / aylık), sunucu veya disk sayısını sınırlamayan EBS anlık görüntülerinin zamanlanmasını içerir. İsterseniz eski yedekleri de kaldıracaktır. Her biri kendi saklama politikalarına sahip birden çok program (ör. Günlük, haftalık vb.) Oluşturabilirsiniz.

Arayüz ayrıca yedeklemelerden yeni örnekler oluşturmanıza da olanak tanır.

Yaklaşık yirmi örnek ve kırk EBS hacmi ile yıllarca güvenilir bir şekilde çalıştı. Muhtemelen daha ucuz yöntemler vardır, ancak fiyat sadece bina ve kendimiz bir şey korumak rahatsız değil yeterince düşük.

Bu özellikle ilgili ayrıntılar için http://blog.ylastic.com/post/148519929496/multi-region-ebs-instance-backup-management adresine bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.