miércoles, 15 de julio de 2020

Backups de volúmenes de AWS desde CLI



Cómo crear backups de volúmenes EBS de instancias EC2 de AWS desde CLI.



Si usamos AWS, puede resultar interesante crear bakups / snapshots / copias de seguridad del disco principal de una instancia EC2 mediante CLI desde un Linux o Windows que tengan el AWS CLI instalado.

Para crear un snapshot del volumen de una instancia desde CLI, es interesante parar primero la instancia para evitar que se escriban datos al disco mientras se realiza la copia.

Para parar una instancia EC2 desde CLI, buscamos primero la ID de la instancia usando su tag "Name" (en este caso, busco la instance ID de una instancia llamada Test1):

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 describe-instances --filters 'Name=tag:Name,Values=Test1' --query 'Reservations[0].Instances[0].InstanceId' "i-04aebf98625bacce4"

Hemos obtenido el instance ID "i-04aebf98625bacce4".

Ahora buscamos el volume ID del disco EBS de la instancia Test1:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 describe-instances --filter 'Name=tag:Name,Values=Test1' --query 'Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.{VolumeId:VolumeId}' { "VolumeId": "vol-0b2efa7e024e758e5" }

Paramos la instancia:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 stop-instances --instance-ids i-04aebf98625bacce4 { "StoppingInstances": [ { "InstanceId": "i-04aebf98625bacce4", "CurrentState": { "Code": 64, "Name": "stopping" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }

Miramos si ya está apagada la instancia:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 wait instance-stopped --instance-id i-04aebf98625bacce4

Creamos un snapshot del volumen:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 create-snapshot --volume-id vol-0b2efa7e024e758e5 { "Description": "", "Tags": [], "Encrypted": false, "VolumeId": "vol-0b2efa7e024e758e5", "State": "pending", "VolumeSize": 8, "StartTime": "2020-06-17T10:45:11.000Z", "Progress": "", "OwnerId": "077455710323", "SnapshotId": "snap-0f2af28035ea778e5" }

Miramos si ya ha acabado el proceso:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 wait snapshot-completed --snapshot-id snap-0f2af28035ea778e5

Ya podemos iniciar la instancia:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 start-instances --instance-ids i-04aebf98625bacce4 { "StartingInstances": [ { "InstanceId": "i-04aebf98625bacce4", "CurrentState": { "Code": 0, "Name": "pending" }, "PreviousState": { "Code": 80, "Name": "stopped" } } ] }

Por último, podemos mirar qué snapshots hay del volumen de esta instancia en nuestra cuenta:

[ec2-user@ip-10-5-0-143 ~]$ aws ec2 describe-snapshots --filters "Name=volume-id,Values=vol-0b2efa7e024e758e5" { "Snapshots": [ { "Description": "", "Encrypted": false, "VolumeId": "vol-0b2efa7e024e758e5", "State": "completed", "VolumeSize": 8, "StartTime": "2020-07-15T10:50:02.036Z", "Progress": "100%", "OwnerId": "077455710323", "SnapshotId": "snap-0c9062daba8a9f4f7" } ] }

Vemos que tenemos un snapshot del volumen de la instancia con fecha de hoy. Misión cumplida.


Fuentes:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html
0

0 comentarios:

Publicar un comentario