Як запланувати автоматичні (щоденні) знімки екземпляра Windows AWS EC2?


12

У мене на Amazon EC2 розміщено декілька серверів Windows. Деякі запускають Windows Server 2003, а інші запускають Windows Server 2008. Це екземпляри, підтримувані EBS. Більшість екземплярів також додають додаткові томи EBS.

Ми хочемо запланувати щоденний знімок віконних машин (а також доданих EBS-томів) до S3, щоб ми мали щоденні резервні копії.

Можна подумати, що це дуже поширена вимога, і вона буде доступна через консоль управління AWS, але, на жаль, це не так. Які підходи доступні? Як запланувати щоденні знімки на наших серверах Windows?

Існує кілька прикладів сценаріїв, доступних в Інтернеті для Linux, але не так багато для Windows. Я ознайомився з http://sehmer.blogspot.com/2011/04/amazon-ec2-daily-snapshot-script-for.html , а також https://github.com/ronmichael/aws-snapshot- планувальник . Хтось використовував один із цих підходів і чи працює він?

Я також розглядав таку послугу, як Skeddly, яка здається недорогою на перший погляд, але коли ви дивитесь на її використання на декількох серверах, ціна незабаром зростає до такої точки, коли здається кращим варіантом створити власне рішення, оскільки ви зможете застосувати його до нові сервери в майбутньому. За допомогою Skeddly ми заплатимо за кожен сервер.

Як ми плануємо щоденні знімки екземплярів наших вікон?

Відповіді:


9

Нещодавно Amazon Web Services оголосив інструменти командного рядка PowerShell для Windows, і він постачається разом із AWS Tools для .NET SDK .

Інструменти AWS Powershell досить легко створюють знімок:

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

І ви можете запитувати свої знімки так:

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 і просто створіть заплановане завдання, яке використовує скрипт powerhell, аналогічний фрагменту, наведеному вище, для планування знімків, і ви повинні бути хорошими.

Оновлено запит на додані томи EBS:

Для запиту томів EBS, що додаються до вашого примірника, а потім знімка кожного з них, ви можете зробити щось подібне:

# 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"
}

Дуже дякую. Це, здається, те, що я шукаю. Будь ласка, уточніть лише: здається, що команда New-EC2Snapshot зробить знімок лише певного обсягу. У моєму випадку у мене є інстанція, і до неї також додаються деякі томи EBS. Як я можу зробити повний знімок всього екземпляра, включаючи кореневий пристрій та додані томи EBS?
Стенлі

@Stanley оновлено для запиту на томи EBS, що додаються до вашого примірника, і знімок кожного
Ameer Deen

Я бачу подяку. Це означає, що для кожного тома будуть окремі знімки. Я просто хочу зрозуміти, що це означає: у разі відмови, як я можу вивести екземпляр заміни? Знімки для кореневого обсягу EBS та окремих змонтованих томів EBS будуть окремими. Як я можу створити екземпляр заміни із змонтованими дисками з різних знімків?
Стенлі

Чому ви не можете налаштувати це через приладну панель EC2? Для людей, які не надто впевнені у сценаріях?
leen3o

5

Оновлення 2018 року Станом на кінець 2018 року є два додаткові способи автоматизації знімків EBS. Я все ще використовую оригінальний метод подій CloudWatch, оскільки він працює нормально роками, і я не бачу сенсу змінюватися.

Ops Automator (OA)

Ops Automator - це дуже гнучкий набір лямбда-скриптів, що надається AWS. Він розгорнутий за допомогою шаблону CloudWatch, який знаходиться на сторінці вище.

Це налаштування кроки

  1. Шаблон AWS CloudFormation запускає основний каркас, який включає набір мікросервісів (функції AWS Lambda), які керують ініціюючими подіями, підбором ресурсів, виконанням завдань, контролем одночасності та завершенням.
  2. Дані конфігурації завдань, які визначають подію запуску, спосіб виконання завдання, які ресурси будуть обрані діями та де вони знаходяться, зберігаються в таблиці Amazon DynamoDB.
  3. Шаблони AWS CloudFormation, що створюються рішенням, конфігурують завдання на основі визначених параметрів та ролей, необхідних для виконання дій в облікових записах.
  4. Рішення відстежує всі етапи процесу, вибрані ресурси та результати дій, включаючи можливі помилки, у таблиці DynamoDB.
  5. Рішення також використовує журнали Amazon CloudWatch для ведення журналів. Повідомлення про попередження та помилки публікуються у створеній рішеннями Amazon Simple Notification Service (Amazon SNS) темі, яка надсилає повідомлення на підписану електронну адресу.

Менеджер життєвого циклу даних (DLM)

Документація DLM . Це більш просте, але менш гнучке рішення, яке може створювати резервні копії кожні 12 або 24 години. Мені спантеличено, чому AWS поставив це обмеження на DLM - щотижня, щомісяця або змінної частоти було б легко реалізувати.

DLM інтегрований у консоль AWS. Я не збираюся копіювати та вставляти документацію, оскільки AWS постійно оновлює речі, а посилання рідко перериваються.

Станом на 2019 рік DLM дозволяє задавати більш короткі інтервали до двох годин, але все ж не дозволяє задавати інтервали більше 24 годин.

Оновлення 2017 року

Станом на 2017 рік є ще один спосіб створення регулярних знімків - за допомогою Cloudwatch Events .

Це дозволяє планувати знімки, але це не вирішує проблему використовуваного обсягу, тому це лише часткове рішення. Можливо, існує спосіб використання подій CloudWatch, щоб запустити щось, що припиняє гучність.

  1. Відкрийте консоль CloudWatch за адресою https://console.aws.amazon.com/cloudwatch/ .

  2. На панелі навігації виберіть Події.

  3. Виберіть Створити правило.

  4. Для джерела події виконайте наступне:

    -> Виберіть Розклад.

    -> Виберіть фіксовану швидкість та вкажіть інтервал розкладу (наприклад, 5 хвилин). Крім того, виберіть вираз Cron та вкажіть вираз Cron (наприклад, кожні 15 хвилин з понеділка по п’ятницю, починаючи з поточного часу).

  5. Для цілей виберіть Додати ціль, а потім виберіть EC2 Create Snapshot API call.

  6. Для ідентифікатора гучності виберіть том EBS.

  7. Виберіть Налаштувати деталі.

  8. Для визначення правила введіть ім'я та опис правила.

  9. Для дозволів AWS виберіть варіант для створення нової ролі. Це відкриє консоль IAM на новій вкладці. Нова роль надає вбудований цільовий дозвіл на доступ до ресурсів від вашого імені. Виберіть Дозволити. Вкладка з вікном IAM закривається.

  10. Виберіть Створити правило.


Безкоштовне, просте та рідне рішення для aws.
Властиміл Овчачик

1
Тепер менеджер життєвого циклу дозволяє будь-яку з 2/3/4/6/8/12/24 годинної частоти.
Dan Pritts

3

Стрибки на стару відповідь, яка почала мене шукати. Кудос Амеєру Діну вище за сценарії, btw.

Знайдено цю публікацію, яка занурюється набагато глибше до сценаріїв PowerShell, щоб повністю автоматизувати процес збору даних та знімок EBS:

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

Тоді, звичайно, з’ясувалося, що всі вони написані для вже знеціненого версії 1.0 AWS SDK, тож я витратив останній день на виправлення цього та налагодження роботи всіх з v2.0:

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

Насолоджуйтесь!


3

AutomatiCloud робить саме те, що вам потрібно. Це простий у використанні інструмент Windows, де ви можете запланувати резервне копіювання ваших томів EBS або RDS: www.automaticoud.net

Ти можеш

  • створювати знімки та AMI на основі ідентифікаторів екземпляра або тегів
  • створювати динамічні теги за допомогою макросів
  • визначити 3 рівні періодів утримування (резервне копіювання GFS)
  • надсилати сповіщення електронною поштою
  • додати VSS-агент для екземплярів Windows
  • запускати сценарії до / після резервного копіювання
  • і багато іншого...

Це виглядає дійсно добре! Я збираюся завантажити та передати його пізніше сьогодні.
leen3o

1
Автоматичне завантаження безкоштовне? Чи попросить мене гроші після того, як я певний час користуюся ними?
EricP

AutomatiCloud безкоштовний. Розширені функції вимагають реєстрації.
Стефан Бахре

1

Тепер ви можете використовувати AWS Lambda для автоматичного створення AMI . Весь налаштування має бути завершено приблизно за 10 хвилин разом із графіком, який вам подобається. Подивіться на їхнє репортаж Github, щоб також зробити свій внесок. Запустіть сценарій самостійно і уникайте дозволів стороннім особам.


0

Ви можете написати сценарій, який розмовляє з API EC2, щоб запланувати ці знімки. Його можна запустити на одному з існуючих екземплярів або ви можете встановити для цього невеликий екземпляр Linux на t1.micro, єдиною функцією якого є створення знімків для хостів Windows. Сценарій може бути розміщений на хості Linux як робота із кроном, що виконується щодня у вибраний час.

Перше посилання - це приклад написання сценарію з хосту Windows, і його можна легко автоматизувати за допомогою запланованих завдань у Windows.

Я не використовував додаток, який ви пов’язали на своєму другому посиланні.


Не могли б ви детальніше розповісти? Я усвідомлюю, що рішення, ймовірно, буде для мене, щоб написати якийсь сценарій, але це знання самостійно для мене недостатньо для вирішення проблеми. Чи є у вас, можливо, посилання чи зразок скриптів, на які ви посилаєтесь?
Стенлі

Той, кого ви пов’язали зі своїм запитанням, насправді буде добре працювати. Чи знайомі ви з інструментами командного рядка API AWS взагалі?
Натан V

0

Поточні можливості EBS Snapshot для інстанцій Windows пояснюються тут: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-creating-snapshot.html

Для того, щоб отримати послідовний знімок, вам потрібно зробити паузу з записом на обсяг достатньо довгий, щоб знімок міг завершитись. Як правило, це означає, що вам потрібно відключити гучність. Документ AWS не обговорює, як це зробити за допомогою командної лінії в Windows, але ви можете дізнатися про це в цій потоці суперпользователя: /superuser/704870/mount-and-dismount-hard-drive-through -a-скрипт-програмне забезпечення

Щоб отримати знімок обсягу завантаження системи, вам потрібно зупинити свій примірник.

Сподіваюся, що це допомагає.


0

Я усвідомлюю, що це старе питання, але я поділюся нашим рішенням.

Ми використовуємо послугу під назвою Ylastic . Їхній план Pro ($ 50 / місяць) включає планування знімків EBS, не обмежуючи кількість серверів чи дисків. Це також видалить старі резервні копії, якщо ви хочете. Ви можете створити кілька розкладів (наприклад, щоденний, тижневий тощо), кожен з яких має власну політику утримання.

Інтерфейс також дозволяє створювати нові екземпляри з резервних копій.

Він надійно працював у нас роками, із двадцятьма примірниками та сороком томів EBS. Можливо, є і більш дешеві методи, але ціна є досить низькою, щоб ми не заважали будувати та підтримувати щось.

Докладніше про цю функцію див. На веб-сайті http://blog.ylastic.com/post/148519929496/multi-region-ebs-instan-backup-management .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.