whatsappImg

Como crear un respaldo desde EC2 y guardarlo en S3?

Escrito por Juan Felipe Morales

26 de mayo de 2023

Muchas veces cuando empezamos a usar servicios en la nube en mi caso AWS queremos lanzar un servidor para quizás un wordpress o algún sistema que queremos tener en linea, terminamos de configurar todo y al final del día queremos que ese sistema se respalde “por si acaso”, así que hay que probablemente lo mas seguro que podemos hacer es crear un usuario en IAM y agregar el usuario y contraseña a nuestro servidor, a pesar de que podemos cerrar muchos puertos y mantener a nuestro servidor seguro para evitar que si alguien entra a nuestro servidor y pueda robarse nuestras credenciales, debemos de tomar una mejor medida, para evitar dejar nuestras credenciales expuestas en nuestro servidor, lo mejor seria crear un rol y agregar ese rol al EC2 en donde podemos agregar diferentes permisos sobre S3, pudiera darse el caso que solo queremos leer algún dato o quizás guardar alguna base de datos o simplemente actualizar algo. Sea lo que queramos hacer podemos darle los permisos adecuados desde la consola.

Lo primero que deberas hacer es entrar en la consola de AWS (osea loguearte con tus credenciales), algunas veces no tenemos los permisos necesarios para hacer esto, así que verifica con tu administrador que tienes los suficientes permiso.

En el menu que aparece en la izquierda deberas a ir al enlace que dice Roles y darle click, aparecerá una pantalla muy parecida a la de arriba, y un botón en color azul que dir Crear rol, deberas dar click en el.

Te aparecerá una pantalla como la de arriba en donde dejaras Servicio de AWS como viene por default, y deberas seleccionar EC2 en la parte de caso de uso y dar click en siguiente.

En la parte de agregar permisos deberas agregar los permisos que necesitas dentro de tu servidor, puedes poner s3 y presionar enter para filtrar los permisos que coincidan con la palabra que pusiste.

Una vez que se hayan filtrado los permisos podrás dar click en los permisos que necesites, en mi caso daremos Full Access a Amazon S3, inmediatamente después daremos click en siguiente

Deberas asignarle un nombre a tu política para poder identificarla posteriormente y dar click en crear rol que se encuentra en la parte de abajo, si deseas agregarle una etiqueta para identificarlo mejor lo puedes hacer, pero este paso es opcional

AWS te avisara que tu rol como sea que se llame ha sido creado, y listo ya tenemos un rol, pero aun debemos agregarlo a nuestro EC2, así que sigamos.

Para esto deberemos entrar en EC2 y entrar en la instancia que queremos agregar nuestro rol, deberemos seleccionarla y de ahi procederemos a dar click en acciones /seguridad / modificar rol de IAM

Nos pasara a la pantalla de arriba en donde podremos modificar el rol por el de MiPoliticaS3FullAccess o el nombre que le hayas puesto, una vez seleccionado podrás dar click en el botón de actualizar rol de IAM

Una vez que esta todo esto configurado podremos ir a nuestra linea de consola.

Es importante que si no tienes el CLI de AWS lo instales, aquí viene toda la documentación en español por si no sabes como hacerlo, y también dependerá de tu Sistema Operativo.

Instalación o actualización de la versión más reciente de AWS CLI

En la siguiente imagen hacemos un simple comando de listado de nuestro bucket en s3 con el comando

aws s3 ls

Si necesitas mas ayuda con los comandos que puedes ejecutar puedes consultar la siguiente documentación.

Uso de comandos alto nivel (s3) con la AWS CLI

Y bueno ya casi terminamos, recapitulando, ya configuramos el rol, después agregamos el rol al EC2 y pues vimos que se comunica sin ningún problema, ahora hay que crear el respaldo, en mi caso estoy respaldando toda la información que tengo de un wordpress, este script es muy sencillo y básico pero hace lo que necesito.

Así que agregare un archivo llamado backupwww.sh en la carpeta de backups, tu puedes hacerlo donde quieras, solo recuerda agregar los suficientes permisos para no tener ningún problema.


#!/bin/bash
cd /var/www/backups
today=$(date +%m-%d-%Y)
tar -czf misitio_www_$today.zip /var/www/misitio.com/htdocs/
echo "Backup & Zip www folder $today done! - FILENAME misitio_www_$today.zip"
aws s3 cp "misitio_www_$today.zip" s3://misitiobackups/www/
echo "Sent to S3 misitio_www_$today.zip"
rm -rf misitio_www_$today.zip

Una vez creado este script lo puede ejecutar de la siguiente forma

./backupwww.sh

y hará una copia de tu sitio y lo subirá a s3 “como por arte de magia”

Y asi es como queda.

Si tienes dudas comentarios puedes hacerlas aquí o mandarme un tweet a @johntzulik, si sabes de alguna otra herramienta me gustaría que la compartieras conmigo.

Aplaudir no cuesta nada. :D


Como crear un respaldo desde EC2 y guardarlo en S3? was originally published in 200 Response on Medium, where people are continuing the conversation by highlighting and responding to this story.

2OO

RESPONSE

All mentioned brands belong to their respective owners.
200 Response SAS de CV