it-roy-ru.com

Решения для резервного копирования для экземпляров AWS EC2

Я ищу решение для резервного копирования для экземпляров Amazon EC2. Я нашел это: http://www.n2ws.com и я хотел знать, были ли другие.

Спасибо

PS: Возможно автоматическое резервное копирование баз данных RDS с помощью решения Amazon, но для экземпляров EC2 ничего нет ... Есть?

16
Céline Aussourd

Я использую Skeddly уже несколько месяцев для автоматического резервного копирования томов EBS, прикрепленных к моим экземплярам EC2. 

Я действительно доволен этим до сих пор. Мне понравился способ определения экземпляров для резервного копирования: резервируются только экземпляры с определенным тегом. Мне просто нужно добавить этот тег в экземпляры, которые я хочу сохранить. Нет необходимости вносить какие-либо изменения в Skeddly каждый раз, когда я добавляю экземпляр. Мне пришлось определить 2 действия в Skeddly: одно для резервного копирования экземпляров и одно для удаления старых снимков.

И я получаю электронные письма, чтобы сообщить мне, что действия (резервное копирование и истечение срока) были успешными или нет. 

10
Céline Aussourd

Если вы хотите 100% -ное решение AWS для автоматического резервного копирования экземпляров EC2, есть одно: AWS lambda.

Создайте лямбду на основе Python примерно так:

import boto3

BACKUP_VOLUMES = [
  'vol-xxxxxxxx'
]

def lambda_handler(event, context):
    ec2 = boto3.resource('ec2')
    for volume in BACKUP_VOLUMES:
        ec2.create_snapshot(VolumeId=volume, Description='Automated backup')

И настройте источник событий для него так, чтобы он работал ежедневно. И бум, без хлопот, автоматические резервные копии EC2, которые надежны, не требуют другого экземпляра для их запуска и выполнения заданий cron, или стороннего сервиса С помощью SES API вы также можете отправлять по электронной почте подтверждения от этой лямбды.

PS: убедитесь, что роль IAM для лямбды имеет права работать со снимками EC2, например:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "ec2:CreateSnapshot",
                "ec2:DeleteSnapshot",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        }
    ]
}
7
Pol

Если под «Экземплярами EC2» вы действительно подразумеваете «Экземпляры EC2 с приводами EBS», то функции «Снимок» EBS, доступные через Консоль AWS и API AWS, - это то, что вам нужно. 

Из EBS Docs :

Amazon EBS также предоставляет возможность создавать моментальные снимки на определенный момент времени томов, которые сохраняются в Amazon S3. Эти снимки могут быть используется в качестве отправной точки для новых томов Amazon EBS и защищает данные для долгосрочной долговечности. Тот же снимок можно использовать для создать столько томов, сколько пожелаете. Эти снимки можно скопировать в разных регионах AWS, упрощая использование нескольких регионов AWS для географического расширения, миграции центров обработки данных и стихийных бедствий восстановление.

Amazon не предлагает никаких политик планирования или типов хранения для моментальных снимков, но есть некоторые сторонние инструменты, которые используют API-интерфейсы AWS. 

6
Chris M.

Компания, в которой я работаю, использует Amazon S3, EBS и EC2 почти с момента их создания. Это стало до боли очевидным после потери 2 (1 разработки и 1 производственного) виртуальных серверов через 4 дня после того, как они были завершены и запланированы к выпуску на EC2 на следующую ночь. Короче говоря, мы не нашли отдельного приложения, которое было бы очень маленьким, легким и практически настраиваемым для любой ситуации.

Используя AWS .NET SDK, мы смогли написать вышеупомянутое приложение менее чем за день, а затем с помощью планировщика задач на нашем собственном сервере Windows Server 2008 R2. Мы рассмотрели ряд сценариев и выбрали следующий график: образы экземпляров EC2 создаются еженедельно, снимки EBS создаются ежедневно. Экземпляры EC2 старше 31 дня удаляются, а моментальные снимки EBS удаляются через 60 дней, в соответствии с нашим контрактом, который мы заключили в контракте с клиентом, который был ранее записан с автономным приложением, которое должно было выполнять резервное копирование по собственному внутреннему коду планирования /механизм. Это никогда не бежало, и никто не смотрел на это после того, как они настроили это. По мере развития приложения мы планируем иметь Simple E-Mail Service (SES) для резервного копирования сводной информации/регистрации электронной почты для наших разработчиков и Simple Queuing Service (SQS) для записи процесса.

Надеюсь это поможет.

3
Jim

Для легкого управления с помощью графического интерфейса есть также Skeddly . Это плата за большинство действий CAD 0,15 для большинства действий . Также можно делать все это бесплатно. Хороший сценарий для начала это это .

3
Josef

Продукт менеджера облачной защиты, который вы нашли (www.n2ws.com), поддерживает автоматическое резервное копирование полных экземпляров EC2, помимо резервного копирования томов EBS по отдельности, а также снимков RDS. Он также имеет расписание, политики хранения данных и опции автоматического оповещения, которые вы искали, а также другие функции, связанные с резервным копированием для AWS. 

Не удалось найти другие сторонние продукты, предоставляющие сопоставимые автоматизированные резервные копии для экземпляров EC2, но некоторые из облачных консолей управления позволяют планировать моментальные снимки и создавать политики хранения данных.

2
OK1

Для критически важных приложений решение для резервного копирования должно быть больше, чем просто планирование моментальных снимков.

Вы ожидаете, что такие функции, как поддержка приложений, политики резервного копирования и мощные параметры восстановления и многое другое.

Вы можете прочитать об этом в моем посте:

http://www.n2ws.com/blog/tier-1-application-backup-on-Amazon-cloud.html

Это с сайта n2ws и также ссылается на продукт CPM.

2
uriwo

Вот скрипт AWS Lambda Boto3, который выполняет резервное копирование экземпляра в образы AMI, и он работает потрясающе:

import boto3, collections, datetime, sys

ec = boto3.client('ec2')

def lambda_handler(event, context):

    reservations = ec.describe_instances(        
        Filters=[
        {'Name': 'tag-key', 'Values': ['backup', 'Backup']},
    ]
    ).get(
        'Reservations', []
    )

    instances = sum(
        [
            [i for i in r['Instances']]
            for r in reservations
        ], [])

    print("Found %d instances that need backing up" % len(instances))

    to_tag = {}

    for instance in instances:
        try:
            retention_days = [
                int(t.get('Value')) for t in instance['Tags']
                if t['Key'] == 'retention'][0]
        except IndexError:
            retention_days = 7

        create_time = datetime.datetime.now()
        create_fmt = create_time.strftime('%Y-%m-%d_%H-%M-%S')

        AMIid = ec.create_image(InstanceId=instance['InstanceId'], Name="backup of " + instance['InstanceId'] + " dated " + create_fmt, Description="Lambda-created AMI of instance " + instance['InstanceId'] + " from " + create_fmt, NoReboot=True, DryRun=False)

        to_tag[retention_days] = AMIid['ImageId']

        print("Retaining AMI %s of instance %s for %d days" % (AMIid['ImageId'],
                                                               instance['InstanceId'],
                                                               retention_days)
             )

    print(to_tag.keys())

    for retention_days in to_tag.keys():
        delete_date = datetime.date.today() + datetime.timedelta(days=retention_days)
        delete_fmt = delete_date.strftime('%m-%d-%Y')
        print("Will delete %d AMIs on %s" % (len(to_tag[retention_days]), delete_fmt))

        ec.create_tags(
            Resources=[to_tag[retention_days],],
            Tags=[
                {'Key': 'DeleteOn', 'Value': delete_fmt},
            ]
        )

Он был взят отсюда и адаптирован для Python 3. Очень рекомендую!

2
Suncatcher

Вроде, как бы, что-то вроде. Вы можете снимать тома EBS на регулярной основе. Хотя в пользовательском интерфейсе нет ничего, чтобы сделать это автоматически, API позволит вам сделать это. Вы можете либо свернуть свой собственный скрипт резервного копирования, либо найти тот, который был опубликован публично.

1
datasage

Вот скрипт Script для автоматизации резервного копирования AMI! Он найдет идентификатор экземпляра всего экземпляра в вашем VPC и создаст резервную копию AMI! 

 #!/bin/bash

 #Script to Automate AMI backup

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

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



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

echo "Starting the Daily AMI creation: "
 #echo -e "Starting the Daily AMI creation: `cat /tmp/aminame.txt`\n"

 #To create AMI of defined instance

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"

echo done 
done
echo done
1
Ashish Karpe

Я забыл, когда был представлен Cloudwatch, но он определенно позволяет планировать автоматические снимки EBS .

Ответ Пола с использованием AWS Lambda по-прежнему актуален. Есть отличная пара блогов о Планирование снимков EBS и Удаление старых снимков

1
davewasthere

Простой способ сделать резервную копию всех ваших экземпляров aws ec2 - это использовать noovolari . Он позволяет планировать периодическое резервное копирование, имеет функцию восстановления на уровне файлов и позволяет очень легко восстановить предыдущий снимок. Он также имеет неограниченный бесплатный уровень на 5 экземпляров ec2, что не повредит. 

Некоторое время мы использовали его в нескольких инфраструктурах, и он работает безупречно.

0
Andrea Cavagna

Существует проект с открытым исходным кодом, называемый Scalr, который я только начал использовать в течение недели, и он имеет функции, которые позволяют вам запланировать автоматические снимки/резервные копии ваших томов EBS. Scalr на самом деле является решением для управления облаком и имеет множество потрясающих функций, с которыми мне еще предстоит поиграть, но я с нетерпением жду этого.

Есть платная версия, но сейчас я просто в восторге от бесплатной версии с открытым исходным кодом . Установщик Scalr доступен на Github: https://github.com/Scalr/installer-ng Исходный код Scalr также есть на Gitub: https://github.com/Scalr/scalr Инструкции по установке находятся на вики Scalr: https: //scalr-wiki.atlassian. net/wiki/x/0Q8b

0
punkdata

Вы можете использовать AutomatiCloud для резервного копирования томов EC2 и экземпляров RDS. AutomatiCloud позволяет вам определять расписание для резервного копирования и очищает после периода хранения, который вы можете настроить. Он также отправляет уведомления по электронной почте в случае успеха/неудачи . И это бесплатно! www.automaticloud.net

Отказ от ответственности: я автор

0
Stephan Buhre