Blog de Amazon Web Services (AWS)

Migración de Azure Blob Storage a Amazon S3 mediante AWS DataSync

Por arquitecto de soluciones sénior en AWS
y Aidan Keane, arquitecto de soluciones sénior especializado que se centra en las cargas de trabajo de  Microsoft en AWS

 

Todos los días hablamos con los clientes sobre sus requisitos de migración de datos, que van desde las transferencias de datos entre los servicios de AWS, el traslado de datos locales a AWS hasta las migraciones de datos entre otros proveedores públicos y medios de almacenamiento. Lo único en común con estas solicitudes es el deseo de contar con un método nativo de AWS, simple y rentable para realizar estas transferencias de datos. Los clientes no desean escribir y mantener sus propios scripts, herramientas de programación y soluciones de monitoreo para simplemente mover datos de un lugar a otro.Para satisfacer esta demanda, AWS cuenta con servicios como la familia  AWS Snow, la familia AWS    Transfer y  AWS   DataSync. Trabajamos constantemente para ofrecer funciones nuevas y mejoradas a nuestros clientes, incluido un anuncio del 2022:  soporte para que AWS DataSync transfiera datos entre AWS y otras ubicaciones públicas. Esto incluye soporte para recursos compartidos SMB de Azure Files.  AWS DataSync acaba de publicar una versión preliminar de la compatibilidad con Azure Blob Storage, que permite a más clientes migrar fácilmente sus datos a los servicios de almacenamiento de AWS, incluidos  Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) y Amazon   FSx. En este blog, analizamos el uso de  AWS DataSync  para migrar objetos de Azure Blob Storage a Amazon S3. Actualmente no hay ningún agente DataSync nativo disponible para Azure. Le mostramos cómo puede aprovechar el agente DataSync de Hyper-V existente para acelerar la transferencia de sus datos de Azure Blob a Amazon S3. El agente DataSync también se puede implementar en EC2, pero si lo implementa cerca de la ubicación de almacenamiento de origen, puede aprovechar las optimizaciones de la red, como la compresión para reducir los cargos de salida de datos de Azure al transferir datos a Amazon S3.

AWS DataSync permite copiar datos de Azure Blob Storage

AWS DataSync es un servicio de transferencia de datos en línea totalmente administrado que facilita la automatización de la transferencia de datos a gran escala. Con AWS DataSync, puede implementar su agente y, con unos pocos clics o mediante la línea de comandos, tendrá ejecutada una tarea de transferencia de datos segura y confiable sin necesidad de implementar sus propias utilidades de software ni administrar scripts programados personalizados.

Al seleccionar los contenedores de Azure Blob Storage como ubicación de origen, AWS DataSync transfiere objetos de Azure Blob Storage de hasta 5 TB de tamaño con metadatos de objetos que no superan los 2 KB. Los metadatos de Azure Blob Storage son información adicional, como las propiedades del sistema y los pares de nombre-valor adicionales que puede definir, como el nombre del autor, el tipo de documento, la clase del documento, etc.

Azure Storage ofrece tres capas de acceso, que incluyen: capa activa, capa fria y capa de archivo. Las capas Activa y Fria se consideran capas de acceso en línea, lo que significa que los clientes pueden acceder a los datos inmediatamente cuando los soliciten. La capa de archivo está diseñada para datos a los que se accede con poca frecuencia. Si tiene datos archivados que deben transferirse al almacenamiento de AWS, tendrá que rehidratar los objetos de la capa de archivado a una capa de acceso en línea antes de poder transferirlos al almacenamiento de AWS. DataSync simplemente ignorará los objetos de Azure Blob Storage que están almacenados en la capa de archivo en lugar de generar un mensaje de error.

Descripción general y terminología de la solución AWS DataSync

DataSync tiene cuatro componentes para mover datos: tareas, ubicaciones, agentes y ejecución de tareas. La figura 1  muestra la relación entre los componentes y las configuraciones que utilizaremos en el tutorial.

 

DataSync has four components for data movement: task, locations, agent, and task execution.

Figura 1. Componentes principales de AWS DataSync

  • Agente: máquina virtual (VM) que lee o escribe datos en una ubicación determinada. En este tutorial, implementamos el agente DataSync como una máquina virtual de Azure en una red virtual de Azure.
  • Ubicación: la ubicación de origen y destino de la migración de datos. En este tutorial, el lugar de origen es un contenedor de Azure Blob Storage. La ubicación de destino es un bucket de Amazon S3.
  • Tarea: Una tarea comprende una ubicación de origen y una ubicación de destino con una configuración que define cómo se transfieren los datos. Una tarea siempre sincroniza los datos del origen con el destino. La configuración incluye opciones como incluir/excluir valores predeterminados, programación de tareas, límites de ancho de banda, etc.
  • Ejecución de tareas: es una ejecución individual de una tarea, que incluye información como la hora de inicio, la hora de finalización, los bytes registrados y el estado.

La siguiente imagen muestra cómo se migran los datos de Azure Blob Storage a Amazon S3 con AWS DataSync.

Architectural diagram illustrates cross-cloud connectivity between an Azure hosted DataSync agent and the AWS DataSync service endpoint.

Figura 2. Arquitectura DataSync con contenedor de almacenamiento Azure Blob

Información sobre el tamaño de los agentes de AWS DataSync

Al implementar AWS DataSync en Azure, seleccione el  tamaño de instancia  adecuado a la cantidad de archivos que se van a transferir.

Recomendamos dedicar los siguientes recursos mínimos:

  • Procesadores virtuales: cuatro procesadores virtuales asignados a la máquina virtual.
  • Espacio en disco: 80 GB de espacio en disco para instalar la imagen de la máquina virtual y los datos del sistema.
  • RAM: en función de la configuración del almacenamiento de datos:
    • 32 GB de RAM asignados a la máquina virtual, para tareas que transfieren hasta 20 millones de archivos.
    • 64 GB de RAM asignados a la máquina virtual, para tareas que transfieren más de 20 millones de archivos.

Si bien puede implementar un agente de DataSync en una instancia de Amazon EC2 para acceder a su almacenamiento de Azure, puede resultar beneficioso implementar el agente más cercano al sistema de almacenamiento al que DataSync necesita acceder. La implementación del agente DataSync en la misma red que el sistema de almacenamiento de origen reducirá la latencia de la red, aprovechará la compresión de datos que proporciona el protocolo de transferencia diseñado por AWS y eliminará la necesidad de tener un terminal público para su cuenta de almacenamiento de Azure.

Transport Layer Security (TLS) 1.2 cifra todos los datos transferidos entre el origen y el destino. Además, los datos nunca se mantienen en AWS DataSync. El servicio admite el uso del cifrado estándar para los buckets de S3.

Prerrequisitos

Necesitarás lo siguiente para completar los pasos de esta publicación:

  • Cuenta de AWS
  • Suscripción a la cuenta de Azure
  • Bucket Amazon S3
  • Contenedor Azure Blob Storage
  • PowerShell
  • CLI de Azure
  • AZCopy
  • Deberás habilitar las siguientes funciones de Windows en tu equipo local:
    1. Módulo Hyper-V para Windows PowerShell
    2. Servicios Hyper-V

Puede encontrar detalles sobre cómo configurar un  contenedor de Azure Blob Storage aquí. También será necesario aprovisionar un bucket de S3. Encontrará detalles sobre cómo crear-lo aquí. Al bucket de S3 lo llamamos «datasynctest1234» y a la cuenta de almacenamiento de Azure «awsblobdatasync», que mencionaremos más adelante en este blog.

Despliegue del agente DataSync

En esta sección, nos centraremos en los pasos necesarios para implementar y configurar el agente DataSync.

Paso 1 Prepare la imagen del agente DataSync para la implementación

  1. Abra la consola de AWS DataSync en https://console.aws.amazon.com/datasync/
  2. En la página Crear agente de la consola, seleccione «Microsoft Hyper-V» en el menú desplegable del hipervisor.
  3. Elija «Descargar la imagen» en la sección Deploy Agent. Esto descarga el agente en un archivo .zip que contiene un archivo de imagen VHDX.

The AWS Management Console displays the Create agent settings with the download link for the agent image highlighted.

Figura 3. Descargar el agente DataSync

  1. Extraiga el archivo de imagen VHDX a su estación de trabajo.
  2. El archivo VHDX deberá convertirse en un archivo VHD de tamaño fijo para que sea compatible con Azure. Puede encontrar más información sobre cómo  preparar un VHDX para subirlo a Azure  aquí. Ejecute el siguiente comando y actualice la ruta y el nombre del archivo para que coincidan con su ubicación:
Convert-VHD -Path .\<path to vhdx>\aws-datasync-2.0.1678813931.1-x86_64.xfs.gpt.vhdx
-DestinationPath .\<path to vhdx>\ aws-datasync-2016788139311-x86_64.vhd -VHDType Fixed

Paso 2 Cargue el VHD en un disco gestionado

  1. Determine el tamaño del VHD para poder crear un disco administrado vacío compatible. Utilice el comando «ls -l. » en el directorio que contiene la imagen del archivo VHD. Esto le dará el número de bytes del archivo VHD. Lo necesitarás para el parámetro  –upload-size-bytes  más adelante.

Illustration of the command line displays the length of the VHD file in bytes.

Figura 4. Identifique el tamaño en bytes del archivo DataSync VHD

  1. Cree el disco administrado vacío mediante la ejecución del siguiente comando. Actualice los parámetros con su información.
az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --upload-type Upload --upload-size-bytes 85899346432--sku standard_lrs
  1. Generar una suscripción de acceso compartido (SAS)
az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400
  1. Cargue DataSync VHD en el disco administrado vacío
AzCopy.exe copy "c:\somewhere\mydisk.vhd" "sas-URI"--blob-type PageBlob
  1. Cuando finalice la carga, revoque el SAS para preparar el disco para montarlo en la nueva máquina virtual.
az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>

Paso 3 Cree la máquina virtual del agente DataSync

  1. Cree la máquina virtual DataSync con el disco administrado  que creó.
az vm create --resource-group myResourceGroup --location eastus --name myNewVM --size Standard_E4as_v4 --os-type linux --attach-os-disk myManagedDisk
  1. Habilitar el diagnóstico de arranque
  2. Conéctese mediante una conexión en serie  e inicie sesión en la consola local de su agente

The Azure console displays the Enable with custom storage account selected along with a specified diagnostics storage account.

Figura 5. Habilitar el diagnóstico de inicio

  1. En el menú principal  de AWS DataSync Activation — Configuration, escriba 0 para obtener una clave de activación.
  2. Introduzca la región de AWS en la que va a activar el agente.
  3. Introduzca el tipo de terminal de servicio que utilizará su agente. Las opciones incluyen pública, FIPS y VPC con AWS PrivateLink. Usaremos la opción pública en este ejemplo.
  4. La clave de activación se generará automáticamente y se mostrará en la pantalla. Selecciona y copia dicha clave.

Paso 4: Activar la máquina virtual del agente DataSync

  1. Abra la consola de AWS DataSync en https://console.aws.amazon.com/datasync/
  2. En la página Crear agente de la consola, seleccione «Microsoft Hyper-V» en el menú desplegable del hipervisor.
  3. En la sección Terminal de  servicio, seleccione la opción Terminales   de servicio público  en la región en la que activará su agente.
  4. En  Activación de clave, selecciona  Introducir manualmente la clave de activación del agente  y pega el valor que copiaste de la consola local del agente.
  5. Proporcione un nombre único para el agente, si lo desea, y haga clic en el botón  Crear agente.

The AWS Mangement Console displays the Create agent settings. The settings correspond to Microsoft Hyper-V and a public service endpoint in the us-east-1 region.

Figura 6. Crear el agente DataSync

Configuración de la replicación de datos

En esta sección, nos centraremos en los pasos necesarios para crear ubicaciones de almacenamiento y configurar la replicación de datos.

Paso 1 Configurar la ubicación de origen de Azure Blob Storage

Configure el contenedor origen de Azure Blob Storage como una ubicación de Azure Blob DataSync. Elija la opción  Ubicaciones  en el panel de navegación de la izquierda y seleccione  Crear ubicación. A continuación, seleccione  Microsoft Azure Blob Storage  como  tipo de ubicación. Asegúrese de seleccionar el agente que creó en los pasos anteriores.

The AWS Mangement Console displays the Create location settings. The settings correspond to Microsoft Azure Blob Storage and the newly created DataSync Agent.

Figura 7. Creación de la ubicación de Azure Blob Storage

A continuación, deberá especificar una  URL de contenedor  y un  token SAS. Si lo desea, puede especificar la ruta de una carpeta del contenedor para recuperar un subconjunto de datos. Siga estos pasos para recuperar la URL del contenedor y generar un token SAS de Azure.

El token SAS de Azure proporciona acceso delegado a los recursos de la cuenta de almacenamiento. Puede proporcionar un acceso detallado a sus datos definiendo los recursos a los que se puede acceder, los permisos de esos recursos y la duración de la validez del token SAS. Puede generar un token SAS de Azure a nivel de cuenta de almacenamiento o a nivel de bloque de contenedores. Generar el token a nivel de bloque del contenedor puede resultar útil cuando se desea limitar el acceso a un solo contenedor.

Puede generar un token SAS de Azure desde el portal de Azure, Azure Storage Explorer o la CLI de Azure. Usaremos el método Azure Portal para crear un token a nivel de cuenta.

  1. En el portal de Azure, vaya a la cuenta de almacenamiento y seleccione Firma de acceso compartido  en la parte izquierda de la página. Borre todos los  servicios permitidos, excepto  
  2. Seleccione Contenedor  y  Objeto  en los  tipos de recursos permitidos. Asigne los  permisos de  lectura  y  lista  desde los permisos autorizados. Asigne el permiso de  lectura/escritura  en la sección permisos del índice de blob para copiar las etiquetas. Puede encontrar detalles adicionales relacionados con los permisos del token SAS en la  documentación.
  3. Especifique las fechas y horas de inicio  y  caducidad  de la clave firmada. Asegúrese de que el período de validez del token sea suficiente para migrar los datos.
  4. Revise la configuración y seleccione Generar SAS y cadena de conexión.
  5. Los valores de SAS Token y de Blob Service SAS URL  se mostrarán en la parte inferior de la pantalla. Copie el campo del SAS token de la consola de AWS.

The Azure console displays the shared access signature settings with the Shared access signature menu item and SAS token selected.

Figura 8. Identifique el token SAS

6. Copie la URL del contenedor de las propiedades del contenedor de Azure Blob.

The Azure console displays the dstest blob container settings with the container URL selected.

Figura 9. Identificar la URL del contenedor

Paso 2: Configurea la ubicación de destino

Configure la ubicación de destino como Amazon S3. Seleccione  Ubicaciones en  el menú de navegación de la izquierda y haga clic en  Crear ubicación. Elija el  bucket de Amazon S3  de destino, la   clase de almacenamiento de S3 , el folder  y  el rol de IAM  con los permisos para acceder al bucket de Amazon S3. DataSync puede transferir datos directamente a todas las clases de almacenamiento de S3 sin tener que gestionar políticas de ciclo de vida de día cero. Para cada transferencia, puede seleccionar la  clase de almacenamiento S3  más rentable según sus necesidades. DataSync detecta archivos u objetos que existen en el sistema de archivos o en el bucket de destino. Los datos que cambiaron entre la ubicación de origen y la ubicación de destino se transferirán en ejecuciones secuenciales de la tarea de AWS DataSync.

The AWS Management Console displays the Create location settings for the Amazon S3 bucket. The highlighted settings correspond to the S3 bucket and associated IAM role.

Figura 10: Crie a localização do S3

Paso 3: Crear la tarea de replicación

Configure los parámetros de la tarea asignando la ubicación de origen de Azure Blob Storage existente en el paso 3 y el bucket de Amazon S3 de destino en el paso 4. Consulte la  documentación de configuración de tareas  para obtener más información sobre la configuración y las opciones de la tarea.

The AWS Management Console displays the Configure source location settings. The settings correspond to the Azure Blob Sotrage location previously created.

Figura 11. Configurar el lugar de origen

Tras configurar la ubicación de origen, haga clic en  Siguiente  y seleccione el bucket de Amazon S3 de destino:

The AWS Management Console displays the Configure destination location settings. The settings correspond to the Amazon S3 location previously created.

Figura 12. Configurar la ubicación de destino

El siguiente es un ejemplo de los ajustes que configuramos anteriormente.

DataSync task configure settings

Figura 13. Configuración de tareas de DataSync

Paso 4: Iniciar la tarea DataSync

Inicie la tarea para que DataSync pueda transferir los datos haciendo clic en  Iniciar  en la lista de tareas o en la propia descripción general de la tarea. Para obtener más información sobre  la ejecución de tareas y la   supervisión de su tarea de DataSync con Amazon CloudWatch, haga clic en  los enlaces.

Tras completar los pasos de este tutorial, dispondrá de una canalización de datos segura para mover sus datos de forma eficiente de Azure Blob Storage a Amazon S3. Cada vez que se ejecuta la tarea DataSync, comprueba las ubicaciones de origen y destino para ver si hay cambios y ejecuta una copia de cualquier diferencia en los datos y los metadatos. Hay varias fases por las que pasa una tarea de DataSync: lanzamiento, preparación, transferencia y verificación. El tiempo empleado en la fase de preparación varía según la cantidad de archivos en las ubicaciones de origen y destino. Por lo general, toma de unos minutos a varias horas. Consulte la  Guía del usuario de DataSync  para obtener más información sobre las fases de la tarea DataSync.

Limpieza

Para obtener más información sobre los precios de AWS, consulte la documentación de AWS DataSync. Si bien no hay ningún cargo adicional por la transferencia de datos entrantes, es posible que haya cargos por datos salientes en la cuenta de origen de Azure. Consulte el sitio de precios del proveedor para obtener información actualizada sobre las tarifas de salida. Para evitar cargos continuos por los recursos que has creado, sigue estos pasos:

  1. Elimine la tarea DataSync  creada en el paso 3 de la configuración de la replicación de datos.
  2. Elimine los sitios de origen y destino creados en los pasos 1 y 2 de la configuración de la replicación de datos.
  3. Elimine el agente  DataSync  creado en el paso 3 de la implementación de DataSync
  4. Elimine la máquina virtual de Azure y los recursos adjuntos que se crearon al implementar el agente DataSync.
  5. Elimine todos los objetos del bucket de S3 del paso 1 de la configuración de la replicación de datos. El bucket debe estar vacío para poder eliminarlo siguiendo los pasos que se indican aquí.

Conclusión

En esta entrada de blog, analizamos la implementación paso a paso del agente AWS DataSync en Azure. Creamos y configuramos una tarea que copia los datos de los objetos de un contenedor de Azure Blob Storage a un bucket de S3 en AWS sin administrar scripts ni utilidades personalizados.

Los clientes pueden beneficiarse de la fácil migración de datos de Azure Blob Storage a los servicios de almacenamiento de AWS, como Amazon S3, Amazon Elastic File System y cualquier sistema de archivos Amazon FSx compatible. La compatibilidad con la copia de datos de los servicios de almacenamiento de AWS a Azure Blob Storage se añadirá como parte de la disponibilidad general (GA). Al aprovechar un servicio gestionado como DataSync, se elimina la carga de administrar la infraestructura adicional, se ahorra tiempo operativo y se reduce la complejidad de mover datos a gran escala.

Estos son otros recursos que le ayudarán a empezar a utilizar AWS DataSync:

Gracias por leer esta publicación sobre la migración de Azure Blob Storage a Amazon S3 mediante AWS DataSync. Le animo a que pruebe esa solución hoy. Si tiene algún comentario o pregunta, déjelo en la sección de comentarios.

 

Este artículo fue traducido del Blog de AWS en Inglés.


Acerca de los autores

Rodney Underkoffler es arquitecto de soluciones sénior en Amazon Web Services y se centra en guiar a los clientes corporativos en su viaje a la nube. Tiene experiencia en prácticas empresariales de infraestructura, seguridad y TI. Le apasiona la tecnología y disfruta creando y explorando nuevas soluciones y metodologías.

 

 

 

 

Aidan Keane es un arquitecto de soluciones sénior especializado que se centra en las cargas de trabajo de Microsoft en AWS. Lleva más de 5 años trabajando con tecnologías en la nube y tiene más de 20 años de experiencia técnica. Fuera del trabajo, es un entusiasta de los deportes que disfruta jugar al golf, andar en bicicleta y ver el Liverpool FC, pasar tiempo con su familia y viajar a Irlanda y Sudamérica.

 

 

 

 

Revisores e Traductores

Gustavo Lima es arquitecto de soluciones en AWS en el segmento Partner First SP High Biller. Cuenta con más de 13 años de experiencia en el área de soluciones de almacenamiento y protección de datos. Se unió al equipo en 2022.

 

 

 

 

Maribel Ramirez Madrigal es arquitecto de soluciones en AWS. Se unió al equipo en 2021.