amazon-web-services - services - https console aws amazon com ec2 v2 home region us east 1
Soluciones de copia de seguridad para instancias de AWS EC2 (14)
¡Aquí está el script Script para automatizar la copia de seguridad de AMI! ¡Encontrará la identificación de instancia de todas las instancias en su VPC y cree una copia de seguridad de 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
Estoy buscando una solución de copia de seguridad para instancias de Amazon EC2. Encontré esto: http://www.n2ws.com y quería saber si había otros.
Gracias
PD: es posible hacer una copia de seguridad automática de las bases de datos RDS utilizando la solución de Amazon, pero no hay nada para las instancias de EC2 ... ¿Lo hay?
Aquí está el script basado en AWS Lambda Boto3, que realiza copias de seguridad de la instancia en imágenes AMI y funciona de maravilla:
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},
]
)
Fue tomada desde aquí y adaptada para Python 3. ¡Muy recomendable!
El producto del administrador de protección de la nube que encontró (www.n2ws.com) es compatible con copias de seguridad automatizadas de instancias completas de EC2, más allá de la copia de seguridad de volúmenes de EBS de forma individual, así como instantáneas RDS. También tiene las opciones de programación, políticas de retención de datos y alertas automáticas que estaba buscando y otras funciones relacionadas con la copia de seguridad para AWS.
No se pudieron encontrar otros productos de terceros que proporcionen copias de seguridad automatizadas comparables para las instancias de EC2, pero algunas de las consolas de administración en la nube permiten la creación de una planificación de instantáneas y la creación de políticas de retención de datos.
Hay un proyecto de código abierto llamado Scalr que comencé a usar durante aproximadamente una semana y tiene características que le permiten programar instantáneas / copias de seguridad automatizadas de sus volúmenes de EBS. Scalr es en realidad una solución de administración en la nube y tiene muchas características fabulosas con las que aún no he jugado, pero estoy deseando que llegue.
Hay una versión de pago, pero por ahora solo estoy pateando los neumáticos en la versión de código abierto. El instalador de Scalr está disponible en Github: https://github.com/Scalr/installer-ng El código fuente de Scalr también está en Gitub: https://github.com/Scalr/scalr Las instrucciones de instalación están en la wiki de Scalr: https://scalr-wiki.atlassian.net/wiki/x/0Q8b
He estado usando Skeddly durante varios meses para hacer una copia de seguridad automática de los volúmenes EBS adjuntos a mis instancias de EC2.
Estoy muy contento con eso hasta ahora. Me gustó la forma en que podría definir qué instancias realizar copias de seguridad: solo se realizan copias de seguridad de las instancias con una etiqueta específica. Solo tengo que agregar esta etiqueta a las instancias de las que quiero hacer una copia de seguridad. No es necesario realizar ningún cambio en Skeddly cada vez que agrego una instancia. Tuve que definir 2 acciones en Skeddly: una para hacer una copia de seguridad de las instancias y otra para eliminar las instantáneas antiguas.
Y recibo correos electrónicos para informarme si las acciones (copia de seguridad y vencimiento) han tenido éxito o no.
La compañía para la que trabajo ha estado usando S3, EBS y EC2 de Amazon casi desde su creación. Se hizo dolorosamente obvio, después de perder 2 (1 desarrollo y 1 producción) de servidores virtuales 4 días después de que se completaron y se programó que se soltarían en EC2 la noche siguiente. Para resumir la historia, no encontramos una aplicación independiente que fuera muy pequeña, liviana y casi configurable para cualquier situación.
Usando AWS .NET SDK, pudimos escribir la aplicación anterior en menos de un día y luego usar el Programador de tareas en nuestro servidor interno de Windows Server 2008 R2. Hemos pasado por una serie de escenarios y nos hemos conformado con el siguiente programa: las instancias de EC2 se crean semanalmente, las instantáneas de EBS se crean a diario. Las instancias de EC2 anteriores a 31 días se eliminan y las instantáneas de EBS se eliminan después de 60 días, según nuestro contrato, firmamos un contrato con un cliente que se había quemado anteriormente con una aplicación independiente que se suponía que ejecutaba las copias de seguridad en su propio código de programación interno /mecanismo. Nunca corrió, y nadie lo miró después de que lo pusieron en marcha. A medida que la aplicación madura, planeamos tener un Servicio de correo electrónico simple (SES) para el correo electrónico de registro / resumen de respaldo para nuestros desarrolladores, y el Servicio de cola simple (SQS) para registrar el proceso.
Espero que esto ayude.
Olvidé cuando se introdujo Cloudwatch, pero definitivamente te permite programar instantáneas automáticas de EBS .
La respuesta de Pol usando AWS Lambda sigue siendo relevante. Hay un gran par de entradas de blog sobre Programación de instantáneas de EBS y Eliminación de instantáneas antiguas
Para aplicaciones críticas, una solución de respaldo debe ser más que solo programar instantáneas.
Usted esperaría características como soporte de aplicaciones, políticas de respaldo y poderosas opciones de recuperación y más.
Puedes leerlo en mi post:
http://www.n2ws.com/blog/tier-1-application-backup-on-amazon-cloud.html
Es del sitio n2ws y también hace referencia al producto de CPM.
Puede utilizar AutomatiCloud para hacer una copia de seguridad de sus volúmenes EC2 e instancias RDS. AutomatiCloud le permite definir horarios para copias de seguridad y limpiezas después de un período de retención que puede configurar. También envía notificaciones por correo electrónico en caso de éxito / fracaso. ¡Y es gratis! www.automaticloud.net
Descargo de responsabilidad: yo soy el autor
Si desea una solución 100% AWS para copias de seguridad automatizadas de instancias EC2, hay una: AWS lambda.
Crea un lambda basado en Python con algo como esto:
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'')
Y configura un origen de eventos para que se ejecute diariamente. Y boom, sin complicaciones, las copias de seguridad automatizadas de EC2 que son confiables, no requieren otra instancia para conducirlas y trabajos de cron, o un servicio de terceros. Con la API de SES, también puede enviar confirmaciones por correo electrónico desde esa lambda.
PD: asegúrese de que el rol IAM para la lambda tenga los derechos para operar en instantáneas EC2, por ejemplo:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeSnapshots"
],
"Resource": "*"
}
]
}
Si por "Instancias de EC2" realmente quiere decir "Instancias de EC2 con unidades EBS", entonces las características de instantáneas de EBS, disponibles a través de la consola de AWS y la API de AWS, son lo que está buscando.
De los documentos de EBS :
Amazon EBS también ofrece la posibilidad de crear instantáneas de volúmenes en un momento dado, que se conservan en Amazon S3. Estas instantáneas se pueden usar como punto de partida para los nuevos volúmenes de Amazon EBS y protegen los datos para una durabilidad a largo plazo. La misma instantánea se puede utilizar para instanciar tantos volúmenes como desee. Estas instantáneas se pueden copiar en todas las regiones de AWS, lo que facilita el aprovechamiento de múltiples regiones de AWS para la expansión geográfica, la migración del centro de datos y la recuperación ante desastres.
Amazon no ofrece ninguna política de tipo de programación o retención en torno a las instantáneas, pero hay algunas herramientas de terceros que aprovechan las API de AWS.
Una especie de Puede hacer una instantánea de los volúmenes EBS en un intervalo regular. Si bien no hay nada en la interfaz de usuario para hacer esto automáticamente, la API le permitirá hacerlo. Puede rodar su propio script de copia de seguridad o buscar uno que se haya publicado públicamente.
Una forma fácil de hacer una copia de seguridad de todas sus instancias aws ec2 es usar noovolari . Le permite programar copias de seguridad periódicas, tiene una función de recuperación de nivel de archivo y le permite recuperar una instantánea anterior de una manera muy fácil. También tiene un nivel gratuito ilimitado para 5 ec2 instancias, lo que no duele.
Lo hemos estado utilizando en varias infraestructuras durante un tiempo y funciona perfectamente.