У меня есть серверы Windows, размещенные на Amazon EC2. Некоторые работают под управлением Windows Server 2003, а другие - под управлением Windows Server 2008. Это экземпляры с поддержкой EBS. К большинству экземпляров также прикреплены дополнительные тома EBS.
Мы хотим запланировать ежедневный снимок компьютеров с Windows (а также подключенных томов 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-scheduler. Кто-нибудь использовал один из этих подходов и работает ли он?
Я также рассмотрел такую услугу, как Skeddly что на первый взгляд кажется недорогим, но когда вы посмотрите на его использование для нескольких серверов, цена скоро возрастет до такой степени, что кажется лучшим вариантом создать собственное решение, так как в будущем вы сможете применить его к новым серверам. Со Skeddly мы будем платить за каждый сервер.
Как мы планируем делать ежедневные снимки наших экземпляров Windows?
Amazon Web Services в последнее время объявил Инструменты командной строки PowerShell для Windows, и он упакован вместе с их Инструменты AWS для .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, и просто создайте запланированную задачу, которая использует сценарий PowerShell, аналогичный приведенному выше фрагменту, для планирования ваших снимков, и все должно быть хорошо.
Обновлено для запроса прикрепленных томов 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"
}
Обновление 2018 По состоянию на конец 2018 года есть два дополнительных способа автоматизировать моментальные снимки EBS. Я до сих пор использую оригинальный метод событий CloudWatch, так как он годами работал нормально, и я не вижу смысла менять.
Операционный автомат (OA)
Операционный автомат - очень гибкий набор лямбда-скриптов, предоставляемый AWS. Он развертывается с помощью шаблона CloudWatch, который находится на странице выше.
Шаги настройки
Диспетчер жизненного цикла данных (DLM)
Документация DLM. Это более простое, но менее гибкое решение, позволяющее выполнять резервное копирование томов каждые 12 или 24 часа. Я озадачен, почему AWS наложил это ограничение на DLM - еженедельно, ежемесячно или с переменной частотой было бы легко реализовать.
DLM интегрирован в консоль AWS. Я не собираюсь копировать и вставлять документацию, поскольку AWS постоянно обновляет информацию, а ссылки редко ломаются.
Начиная с 2019 года DLM позволяет указать более короткие интервалы до двух часов, но по-прежнему не позволяет указать интервалы более 24 часов.
Обновление 2017 г.
По состоянию на 2017 год появился еще один способ создания обычных снимков - с помощью События Cloudwatch.
Это позволяет вам планировать моментальные снимки, но не решает проблему с используемым томом, поэтому это только частичное решение. Возможно, есть способ использовать CloudWatch Events для запуска чего-то, что действительно останавливает громкость.
Откройте консоль CloudWatch на https://console.aws.amazon.com/cloudwatch/.
На панели навигации выберите События.
Выберите Создать правило.
Для источника события сделайте следующее:
-> Выбрать расписание.
-> Выберите Фиксированная скорость и укажите интервал расписания (например, 5 минут). Или выберите выражение Cron и укажите выражение Cron (например, каждые 15 минут с понедельника по пятницу, начиная с текущего времени).
Для целей выберите Добавить цель, а затем выберите вызов API создания снимков EC2.
В качестве идентификатора тома выберите том EBS.
Выберите «Настроить детали».
В поле «Определение правила» введите имя и описание правила.
Для разрешений AWS выберите вариант создания новой роли. Это откроет консоль IAM в новой вкладке. Новая роль предоставляет встроенному целевому разрешению доступ к ресурсам от вашего имени. Выберите Разрешить. Вкладка с окном IAM закрывается.
Выберите Создать правило.
AutomatiCloud делает именно то, что вам нужно. Это простой в использовании инструмент Windows, с помощью которого вы можете запланировать резервное копирование для ваших томов EBS или экземпляров RDS: www.automaticoud.net
Ты можешь
Вспоминая старый ответ, с которого я начал поиски. Престижность Амир Дин выше за сценарии, кстати.
Нашел этот пост, который гораздо глубже погружается в сценарии 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
Наслаждайтесь!
Теперь вы можете использовать AWS Lambda для автоматического создания AMI. Вся установка должна быть завершена примерно за 10 минут согласно расписанию, которое вам нравится. Посмотрите на их репо на Github, чтобы тоже внести свой вклад. Запустите сценарий самостоятельно и не давайте разрешения третьим лицам.
Вы можете написать сценарий, который взаимодействует с EC2 API, чтобы запланировать эти моментальные снимки. Его можно запустить на одном из ваших существующих экземпляров, или вы можете настроить для этой цели небольшой экземпляр Linux на t1.micro, единственная функция которого - запускать снимки для хостов Windows. Сценарий может быть размещен на хосте Linux как задание cron, которое будет запускаться ежедневно в выбранное вами время.
Первая ссылка - это пример написания сценария с хоста Windows, который можно легко автоматизировать с помощью запланированных задач в Windows.
Я не использовал приложение, которое вы указали по второй ссылке.
Текущие возможности моментальных снимков EBS для экземпляров Windows описаны здесь: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-creating-snapshot.html
Чтобы получить согласованный моментальный снимок, вам необходимо приостановить запись в том на время, достаточное для его завершения. Обычно это означает, что вам нужно размонтировать том. В документе AWS не обсуждается, как это сделать с помощью командной строки в Windows, но вы можете узнать об этом в этой ветке суперпользователя: https://superuser.com/questions/704870/mount-and-dismount-hard-drive-through-a-script-software
Чтобы получить снимок загрузочного тома системы, необходимо остановить свой экземпляр.
Надеюсь, это поможет.
Я понимаю, что это старый вопрос, но я поделюсь нашим решением.
Мы пользуемся сервисом под названием Ylastic. Их план Pro (50 долларов в месяц) включает планирование моментальных снимков EBS, не ограничивая количество серверов или дисков. При желании он также удалит старые резервные копии. Вы можете создать несколько расписаний (например, ежедневно, еженедельно и т. Д.), Каждое со своей собственной политикой хранения.
Интерфейс также позволяет создавать новые экземпляры из резервных копий.
Он надежно работал у нас в течение многих лет, около двадцати экземпляров и сорока томов EBS. Вероятно, есть более дешевые методы, но цена достаточно низкая, чтобы мы сами не беспокоились о создании и обслуживании чего-либо.
Видеть http://blog.ylastic.com/post/148519929496/multi-region-ebs-instance-backup-management для получения подробной информации об этой функции.