Blog de Amazon Web Services (AWS)
Transfiera sus datos de forma rápida, sencilla y segura hacia AWS con AWS DataSync
Por José Peñúñuri es Arquitecto de Soluciones en AWS.
A medida que las organizaciones requieren migrar más cargas de trabajo críticas a la nube, se genera la necesidad de mover conjuntos de datos más grandes, por lo cual es necesario contar con herramientas que permitan mover los datos de manera rápida y eficiente. En el mercado existen muchas herramientas de código abierto disponibles que son gratuitas o de bajo costo… la pregunta es: ¿una herramienta de código abierto es la alternativa adecuada como solución de transferencia de datos para usted y su necesidad?
Transferir unos cuantos archivos puede ser una tarea simple, pero las grandes transferencias de datos se pueden convertir en un gran desafío, y en caso de no utilizar la herramienta adecuada, una transferencia de datos a escala puede volverse compleja y lenta. Inicialmente, muchas organizaciones pueden optar por el uso de herramientas de código abierto, y ciertamente el nulo o bajo costo de estas herramientas siempre será algo atractivo; sin embargo, las herramientas que originalmente parecían gratuitas, en realidad pueden llegar a costar a las organizaciones mucho dinero y tiempo cuando se aplican a esfuerzos de transferencia de datos en escala masiva. Al transferir los datos usted mismo, usted es responsable del desempeño de esta transferencia, de la seguridad de los datos en tránsito y de validar la integridad de estos una vez que hayan sido transferidos. De igual manera, usted también debe implementar los mecanismos para escalar y acelerar la transferencia de datos, sobre todo si tiene que cumplir con un objetivo de tiempo. Las organizaciones a menudo necesitan mover sus datos rápidamente y lo último que necesitan son herramientas que vuelvan lento este proceso.
Con todo lo anterior en mente y con la intención de ayudar a nuestros clientes con estos retos y el trabajo pesado que esto implica, fue que se creó AWS DataSync, un servicio de transferencia de datos en línea que simplifica, automatiza y acelera la copia de datos hacia y desde los servicios de almacenamiento de AWS. AWS DataSync es un servicio que permite hacer transferencias de datos rápidas ya que utiliza compresión en línea, transferencias paralelas y otras optimizaciones para transferir sus datos de forma eficiente. AWS DataSync es un servicio totalmente administrado que le permite mover los datos desde su centro de datos hacia la región de AWS de su preferencia. Con AWS DataSync usted puede tomar los datos que se encuentren en recursos compartidos con protocolos estándar como NFS y SMB, y moverlos a buckets de Amazon S3 y sistemas de archivos de Amazon EFS y Amazon FSx for Windows File Server. Con AWS DataSync usted puede simplificar el movimiento de grandes cantidades de datos, de forma rápida y segura, entre su centro de datos, ubicaciones remotas, AWS Snowcone, AWS Outposts y las regiones de AWS. También puede utilizar AWS DataSync para transferir datos entre los servicios de almacenamiento de AWS.
En AWS la seguridad es nuestra principal prioridad, es por eso que AWS DataSync le permite transferir sus datos de manera segura y confiable. AWS DataSync cifra los datos en tránsito y también permite cifrar los datos en reposo. Los datos son transferidos por medio de Internet y viajan cifrados mediante TLS, con la opción de poder utilizar una conexión VPN o un enlace de AWS Direct Connect entre su centro de datos y AWS. AWS DataSync también proporciona múltiples opciones para verificar la integridad de los datos, lo cual garantiza que todos los datos hayan sido transferidos correctamente. Adicionalmente, AWS DataSync se integra con herramientas de monitoreo y auditoría de AWS como Amazon CloudWatch y AWS CloudTrail.
AWS DataSync permite a nuestros clientes calendarizar la ejecución de las transferencias de datos y regular el ancho de banda que se utilizará. Con AWS DataSync también se puede configurar filtrado de archivos y directorios, y hacer transferencias completas o incrementales de archivos activos. AWS DataSync es una opción rentable ya que no se incurre en la compra de una licencia de software y únicamente se paga por la cantidad de datos transferidos sin que exista una cantidad mínima que tenga que transferir.
¿Cómo funciona AWS DataSync?
AWS DataSync utiliza agentes que son desplegados en las instalaciones del centro de datos para conectarse al almacenamiento local. Un agente es una máquina virtual que se utiliza para leer o escribir datos en los sistemas de almacenamiento. El agente se puede implementar en hipervisores VMware ESXi, KVM, Microsoft Hyper-V o se puede desplegar como una instancia Amazon EC2. Una vez que el agente es instalado, este se activa en la consola de AWS lo cual asocia dicho agente a su cuenta de AWS.
Posteriormente se configura una tarea, en donde se definen parámetros como las ubicaciones de los datos, y el agente que se va a utilizar. Cada tarea tiene dos ubicaciones: una ubicación origen y una ubicación destino y dichas ubicaciones pueden ser recursos compartidos por medio de los protocolos NFS y SMB, almacenamientos de objetos (compatible con Amazon S3), sistemas de archivos de Amazon EFS y Amazon FSx for Windows File Server, y buckets de Amazon S3. Las ubicaciones se quedan guardadas en el apartado de Locations del menú del servicio y pueden ser reutilizadas posteriormente en otras tareas. En la tarea también se configuran otros parámetros como el modo de transferencia (total o incremental), se habilita el tipo de verificación de integridad de los datos, se regula el ancho de banda a utilizar, se configuran filtros opcionales para excluir determinados archivos y directorios, y también se define la frecuencia con que se ejecutará dicha tarea. Una vez que se ejecuta la tarea, AWS DataSync coordina la transferencia de los datos entre las ubicaciones previamente definidas.
Casos de uso
Nuestros clientes utilizan AWS DataSync para migrar los datos de sus aplicaciones a la nube. Mover datos que cambian constantemente en un solo paso puede ser una tarea complicada por lo cual AWS DataSync permite hacer transferencias completas e incrementales mientras los datos están activos, facilitando así el proceso de migración.
Con AWS DataSync nuestros clientes también pueden archivar en la nube sus datos fríos e históricos de sus respaldos, los cuales se pueden almacenar de manera duradera y confiable usando las clases de almacenamiento de Amazon S3 como Amazon S3 Glacier y Amazon S3 Glacier Deep archive con costos que pueden ser tan bajos como un dólar por TB al mes. Esta característica permite a las organizaciones liberar almacenamiento local de sus sistemas NAS y de sus bibliotecas de respaldo y eventualmente decomisar estos sistemas.
Muchas organizaciones también utilizan AWS DataSync para replicar sus datos a la nube como parte de sus estrategias de recuperación en caso de desastre. Este proceso de replicación de datos puede ejecutarse en un solo evento o llevarse a cabo de manera continua y calendarizada.
Finalmente, nuestros clientes también utilizan AWS DataSync para transferir datos y procesarlos en la nube, apalancando la oferta de servicios de cómputo, analíticos y machine learning que ofrece AWS. Mediante AWS DataSync, es posible aprovechar las ventajas de la nube para ampliar su capacidad de procesamiento y análisis de datos generados en sitio.
Manos a la obra
A continuación, explicaré cómo mover datos que se encuentran dentro un recurso de compartido por medio de NFS a un bucket de Amazon S3. Este recurso compartido estará montado dentro de una instancia EC2 que fungirá como la ubicación origen de los datos y el bucket de Amazon S3 será la ubicación destino. La información que se migrará corresponde a un conjunto de datos históricos en diferentes formatos (CSV en su mayoría) con estadísticas de baseball de los últimos 20 años. Al finalizar este ejercicio usted habrá aprendido a:
- Desplegar el Agente de AWS DataSync como una instancia de Amazon EC2.
- Configurar una tarea con sus ubicaciones de origen y destino, y parámetros adicionales.
Para este ejercicio usted deberá contar con los siguientes prerrequisitos:
- Tener una cuenta de AWS. Si no tiene una, la puede generar aquí.
- Crear una instancia Amazon EC2 con sistema operativo Amazon Linux 2 (ubicación origen).
- Como crear una instancia Amazon EC2
- Al desplegar su instancia, en el paso 3 (Configure Instance Details) agregue el siguiente script en el campo User data del apartado Advanced Details:
wget https://awsimmersiondays.s3.amazonaws.com/nfs.sh chmod 755 nfs.sh ./nfs.sh
-
- Nota: El script anterior se ejecuta automáticamente durante el arranque de la instancia y genera el recurso que se compartirá por medio de NFS, descarga los archivos que se migrarán al bucket de Amazon S3 y monta todo en la ruta local /mnt/nfs.
- Copie la dirección IP privada de esta instancia y guárdela en un archivo de texto ya que la utilizará más adelante.
- Crear un bucket de Amazon S3 (ubicación destino).
Creación del agente
- Dentro de la consola de AWS, haga clic en Services y diríjase al servicio de
- Ejecute el siguiente comando, sustituyendo el valor de $region por la región en la que está trabajando:
aws ssm get-parameter --name /aws/service/datasync/ami --region $region
Ejemplo. Si usted se encuentra trabajando en la región de N. Virginia, el comando se ejecutaría así:
aws ssm get-parameter --name /aws/service/datasync/ami --region us-east-1
Nota: La ejecución de este comando nos permite conocer la versión más reciente de la AMI de AWS DataSync (ami-id).
- Copie el resultado de la ejecución del comando anterior y guárdelo en un archivo de texto.
- Copie la siguiente URL y sustituya los valores de source-file-systemregion por la región en la que va a desplegar su agente y el valor de ami-id por el valor de ami-id resultado de la ejecución del comando del paso anterior:
https://console.thinkwithwp.com/ec2/v2/home?region=source-file-systemregion#LaunchInstanceWizard:ami=ami-id
Ejemplo. Si usted se encuentra trabajando en la región de N. Virginia, la URL quedaría así:
https://console.thinkwithwp.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-0915bec43b802ceb7
- Una vez que haya sustituido los valores, copie la URL y péguela en su navegador web. Esta URL lo llevará a desplegar el agente de AWS DataSync como una instancia de Amazon EC2.
- Seleccione 2xlarge como tipo de instancia.
- Haga clic en Next: Configure instance details.
- En Network, elija la VPC donde donde desplegó la instancia que utilizará como ubicación origen.
- Haga clic en Next: Add storage.
- En la pantalla de Add Storage mantenga los valores predeterminados, no es necesario agregar almacenamiento adicional. Haga clic en Next: Add tags.
- Agregue la etiqueta Name con el valor Agente AWS DataSync.
- Haga clic en Next: Configure Security Group.
- Habilite el acceso al puerto TCP 80 (HTTP) desde su dirección IP.
- Haga clic en Review and Launch.
- Haga clic en Launch.
- Seleccione un key pair y haga clic en Launch Instances.
- Dentro de la consola de AWS, haga clic en Services y diríjase al servicio de
- Asegúrese de que la instancia de su agente indique Running bajo el apartado de Instance State y 2/2 checks passed bajo el apartado de Status check.
- Seleccione la casilla del agente de AWS DataSync, copie las direcciones IP pública y privada, y guárdelas en un archivo de texto.
- Seleccione la instancia que creó como parte de los pre-requisitos y modifique el grupo de seguridad para permitir el acceso por el puerto TCP 2049 (NFS) desde la dirección IP privada del agente de AWS DataSync.
- Dentro de la consola de AWS, haga clic en Services y diríjase al servicio de
- Haga clic en Agents en el menú lateral izquierdo.
- Haga clic en el botón de Create agent.
- En el campo de Agent adress ingrese la dirección IP pública del agente de AWS DataSync.
- Haga clic en Get key.
- Ingrese Agente AWS DataSync en el campo de Agent name.
- aHHaga clic en Create agent.
- Haga clic en Agents en el menú lateral izquierdo y compruebe que su agente se encuentra activo (Status = Online).
Creación de la tarea
- Dentro de la consola de AWS, haga clic en Services y diríjase al servicio de
- Haga click en Tasks en el menú lateral de la izquierda.
- Haga click en Create task.
- En Location type seleccione Network File System (NFS).
- En Agents seleccione el agente de AWS DataSync que creó anteriormente.
- En NFS Server ingrese la dirección IP privada de la instancia Amazon Linux 2 que creó como como parte de los pre-requisitos.
- En Mount path ingrese la siguiente ruta: /mnt/nfs.
- Haga clic en Next.
- En Location type seleccione Amazon S3 bucket.
- En S3 bucket seleccione el bucket que creó como como parte de los pre-requisitos.
- En S3 Storage class seleccione Standard.
Nota: En este menú desplegable usted podrá ver que AWS DataSync le permite transferir datos directamente a cualquiera de las clases de almacenamiento de Amazon S3. Si, por ejemplo, usted requiere archivar datos históricos que no necesita acceder frecuentemente, puede transferir estos datos directamente a Amazon S3 Glacier o Amazon S3 Glacier Deep Archive.
- En IAM role haga clic en Autogenerate para generar un rol que permita a AWS DataSync interactuar con su bucket.
- Haga clic en Next.
- En Task Name ingrese un nombre para su tarea (Data-migration-lab).
- En Task logging seleccione Log basic information such as transfer errors del menú desplegable de Log level.
- Haga clic en el botón de Autogenerate.
Nota. En la pantalla de Configure settings, usted puede configurar diferentes opciones adicionales como habilitar la verificación de los datos, regular el ancho de banda, modificar el modo de la transferencia, filtrar archivos y directorios, y calendarizar la frecuencia de ejecución de la tarea.
- Haga clic en Next.
- En la pantalla de Review haga clic en Create task.
- Haga click en Tasks en el menú lateral de la izquierda. Usted podrá ver que la tarea se está creando (status = Creating).
- Espere unos minutos a que el status de la tarea cambie a Available.
- Seleccione la casilla de su tarea.
- Haga click en el menú desplegable de Actions.
- Haga clic en Start. Podrá ver como el status de su tarea cambia a Running. Espere unos minutos a que la tarea de migración termine y el status de su tarea cambie de nuevo a Available.
- Una vez que el status de su tarea cambie de nuevo a Available haga click en History bajo Tasks en el menú lateral izquierdo. Aquí podrá corroborar que su tarea se ejecutó satisfactoriamente.
- Haga clic en el valor de Execution ID si desea conocer más detalles acerca de la ejecución de su tarea.
- Haga clic en Services y posteriormente seleccione el servicio de S3 el cual se encuentra bajo la categoría de Storage.
- Haga clic en el bucket que creó como parte de los pre-requisitos. Podrá corroborar que los datos se migraron existosamente.
- Por último, se recomienda eliminar todos los recursos creados en su cuenta de AWS durante este ejercicio para así evitar generar costos adicionales.
Resumen
En esta publicación se explicó qué es AWS DataSync, sus componentes y beneficios, y como es que usted puede utilizar este servicio para migrar datos desde un recurso compartido por NFS hacia un bucket de Amazon S3. Con un solo servicio usted podrá: migrar los datos de sus aplicaciones a la nube, archivar sus datos fríos y respaldos históricos, habilitar una ubicación de recuperación de sus datos en la nube y mover los datos que se generan en sitio para procesarlos apalancando la amplia oferta de servicios de cómputo, analíticos y machine learning de AWS. Adicionalmente, usted puede combinar este servicio con AWS Storage Gateway para tener acceso local a los datos que ya migró a la nube y así aprovechar las ventajas de tener un almacenamiento híbrido en su centro de datos. AWS DataSync representa una opción segura, confiable, rentable y totalmente administrada que le permitirá cumplir con sus objetivos de migración de datos a gran escala y liberar almacenamiento de sus sistemas locales.
Enlaces adicionales:
Preguntas frecuentes de AWS DataSync (FAQ)
AWS DataSync – Guía del usuario
Sobre el autor
José Peñúñuri es Arquitecto de Soluciones en AWS.
Revisor
Carlos Landaeta es Arquitecto de Soluciones en AWS.
Efraín Castilla es Arquitecto de Soluciones en AWS.
René Roldán es Arquitecto de Soluciones en AWS.