Cree una malla de datos empresarial con Amazon DataZone y AWS CDKAWS CloudFormation - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree una malla de datos empresarial con Amazon DataZone y AWS CDKAWS CloudFormation

Dhrubajyoti Mukherjee, Ravi Kumar, Weizhou Sun y Adjoa Taylor, Amazon Web Services

Resumen

En Amazon Web Services (AWS), los clientes saben que los datos son la clave para acelerar la innovación y favorecer el valor empresarial de su empresa. Para gestionar esta enorme cantidad de datos, puede adoptar una arquitectura descentralizada, como una malla de datos. Una arquitectura de malla de datos facilita la reflexión orientada al producto, que incluye una mentalidad que tiene en cuenta a los clientes, los objetivos y el mercado. La malla de datos también ayuda a establecer un modelo de gobierno federado que proporciona un acceso rápido y seguro a los datos.

En Estrategias para crear en AWS una solución empresarial basada en una malla de datos se analiza cómo puede utilizar el marco estratégico de malla de datos para formular e implementar una estrategia de malla de datos para su organización. Al utilizar el marco estratégico de malla de datos, puede optimizar la organización de los equipos y sus interacciones para acelerar su transición a la malla de datos.

Este documento proporciona orientación sobre cómo crear una malla de datos empresarial con Amazon DataZone. Amazon DataZone es un servicio de administración de datos para catalogar, descubrir, compartir y controlar los datos almacenados AWS en fuentes locales y de terceros. El patrón incluye artefactos de código que le ayudan a implementar la infraestructura de soluciones de datos basada en una malla de datos mediante y. AWS Cloud Development Kit (AWS CDK) AWS CloudFormation Este patrón está pensado para arquitectos e ingenieros de nube. DevOps

Para más información sobre los objetivos de este patrón y el alcance de la solución, consulte la sección Información adicional.

Requisitos previos y limitaciones

Requisitos previos 

  • Un mínimo de dos activos Cuentas de AWS: uno para la cuenta de gobierno central y otro para la cuenta de miembro

  • AWS credenciales de administrador para la cuenta de gobierno central en su entorno de desarrollo

  • AWS Command Line Interface (AWS CLI) instaladas para administrarlas Servicios de AWS desde la línea de comandos

  • Node.js y Node Package Manager (npm) instalados para administrar aplicaciones AWS CDK

  • AWS CDK El kit de herramientas se instala globalmente en su entorno de desarrollo mediante npm para sintetizar e implementar aplicaciones AWS CDK

    npm install -g aws-cdk
  • La versión 3.12 de Python instalada en su entorno de desarrollo

  • TypeScript instalado en su entorno de desarrollo o instalado globalmente mediante el compilador npm:

    npm install -g typescript
  • Docker instalado en su entorno de desarrollo

  • Un sistema de control de versiones como Git para mantener el código fuente de la solución (recomendado)

  • Un entorno de desarrollo integrado (IDE) o un editor de texto compatible con Python y TypeScript (muy recomendable)

Limitaciones

  • La solución se ha probado solo en máquinas que ejecutan Linux o macOS.

  • En la versión actual, la solución no admite la integración de Amazon DataZone y de forma AWS IAM Identity Center predeterminada. Sin embargo, puede modificar la configuración para admitir esta integración.

Versiones de producto

  • Python versión 3.12

Arquitectura

En el siguiente diagrama se muestra un ejemplo de la arquitectura de referenciade la malla de datos. La arquitectura se basa en Amazon DataZone y utiliza Amazon Simple Storage Service (Amazon S3) AWS Glue Data Catalog y como fuentes de datos. El Servicios de AWS que utilices con Amazon DataZone en tu implementación de malla de datos puede variar en función de los requisitos de tu organización.

Flujo de trabajo de cinco pasos para las cuentas de miembros y la cuenta de gobernanza central.
  1. En las cuentas de los productores, los datos sin procesar son aptos para el consumo en su forma actual o se transforman para su consumo mediante el uso AWS Glue. Los metadatos técnicos de los datos se almacenan en Amazon S3 y se evalúan mediante un rastreador de AWS Glue datos. La calidad de los datos se mide mediante Calidad de datos de AWS Glue. La base de datos de origen del catálogo de datos está registrada como un activo en el DataZone catálogo de Amazon. El DataZone catálogo de Amazon se aloja en la cuenta de gobierno central mediante los trabajos de la fuente de DataZone datos de Amazon.

  2. La cuenta de gobierno central aloja el DataZone dominio de Amazon y el portal de DataZone datos de Amazon. Los productores y consumidores Cuentas de AWS de datos están asociados al DataZone dominio Amazon. Los DataZone proyectos de Amazon de los productores y consumidores de datos se organizan en las correspondientes unidades de DataZone dominio de Amazon.

  3. Los usuarios finales de los activos de datos inician sesión en el portal de DataZone datos de Amazon mediante sus credenciales AWS Identity and Access Management (de IAM) o mediante un inicio de sesión único (con integración a través del Centro de identidad de IAM). Buscan, filtran y visualizan la información de los activos (por ejemplo, información sobre la calidad de los datos o metadatos empresariales y técnicos) en el catálogo de DataZone datos de Amazon.

  4. Cuando un usuario final encuentra el activo de datos que busca, utiliza la función de DataZone suscripción de Amazon para solicitar el acceso. El propietario de los datos del equipo de productores recibe una notificación y evalúa la solicitud de suscripción en el portal de DataZone datos de Amazon. El propietario de los datos aprueba o rechaza la solicitud de suscripción en función de su validez.

  5. Una vez concedida y tramitada la solicitud de suscripción, el consumidor puede acceder al activo desde su cuenta para realizar las siguientes actividades:

    • Desarrollo de modelos AI/ML mediante Amazon AI SageMaker

    • Análisis y creación de informes mediante Amazon Athena y Amazon Quick Suite

Tools (Herramientas)

Servicios de AWS

  • Amazon Athena es un servicio interactivo de consultas que le permite analizar datos directamente en Amazon Simple Storage Service (Amazon S3) usando SQL estándar.

  • AWS Cloud Development Kit (AWS CDK)es un marco de desarrollo de software que le ayuda a definir y aprovisionar la Nube de AWS infraestructura en código.

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el Cuentas de AWS mundo Regiones de AWS.

  • Amazon DataZone es un servicio de gestión de datos que te ayuda a catalogar, descubrir, compartir y gestionar los datos AWS almacenados en fuentes externas, locales y de terceros.

  • Amazon Quick Suite es un servicio de inteligencia empresarial (BI) a escala de la nube que lo ayuda a visualizar, analizar y generar informes de sus datos en un único panel.

  • Amazon SageMaker AI es un servicio de aprendizaje automático (ML) gestionado que le ayuda a crear y entrenar modelos de aprendizaje automático para luego implementarlos en un entorno hospedado listo para la producción.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • Amazon Simple Queue Service (Amazon SQS) ofrece una cola alojada segura, duradera y disponible que le permite integrar y desacoplar sistemas y componentes de software distribuidos.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

Repositorio de código

La solución está disponible en el repositorio GitHub data-mesh-datazone-cdk-cloudformation.

Epics

TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Para clonar el repositorio, ejecute el siguiente comando en el entorno de desarrollo local (Linux o macOS):

git clone https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation
Arquitecto e ingeniero de nube DevOps

Cree el entorno.

Para crear el entorno virtual de Python, ejecute los siguientes comandos:

python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
Arquitecto de nube, DevOps ingeniero

Arranque la cuentas.

Para iniciar la cuenta de gobierno central mediante AWS CDK, ejecute el siguiente comando:

cdk bootstrap aws://<GOVERNANCE_ACCOUNT_ID>/<AWS_REGION>

Inicie sesión en Consola de administración de AWS, abra la consola de cuentas de gobierno central y obtenga el nombre de recurso de Amazon (ARN) de la función de AWS CDK ejecución.

Arquitecto e ingeniero de nube DevOps

Cree el archivo DzDataMeshMemberStackSet.yaml.

Para crear el archivo DzDataMeshMemberStackSet.yaml, vaya al directorio raíz del repositorio e inicie el siguiente script de bash:

./lib/scripts/create_dz_data_mesh_member_stack_set.sh
Arquitecto de nube, DevOps ingeniero

Confirme la creación de la plantilla.

Asegúrese de que el archivo CloudFormation de plantilla se haya creado en la lib/cfn-templates/DzDataMeshMemberStackSet.yaml ubicación.

Arquitecto de nube, DevOps ingeniero
TareaDescripciónHabilidades requeridas

Modifique la configuración.

En el archivo config/Config.ts, modifique los siguientes parámetros:

DZ_APPLICATION_NAME - Name of the application. DZ_STAGE_NAME - Name of the stage. DZ_DOMAIN_NAME - Name of the Amazon DataZone domain DZ_DOMAIN_DESCRIPTION - Description of the Amazon DataZone domain DZ_DOMAIN_TAG - Tag of the Amazon DataZone domain DZ_ADMIN_PROJECT_NAME - Name of the Amazon DataZone project for administrators DZ_ADMIN_PROJECT_DESCRIPTION - Description of the Amazon DataZone project for administrators CDK_EXEC_ROLE_ARN - ARN of the cdk execution role DZ_ADMIN_ROLE_ARN - ARN of the administrator role

Mantenga los parámetros restantes vacíos.

Arquitecto de nube, DevOps ingeniero

Actualiza la configuración del DataZone glosario de Amazon.

Para actualizar la configuración del DataZone glosario de Amazon en el lib/utils/glossary_config.json archivo, usa el siguiente ejemplo de configuración:

{ "GlossaryName": "PII Data", "GlossaryDescription": "If data source contains PII attributes", "GlossaryTerms": [{ "Name": "Yes", "ShortDescription": "Yes", "LongDescription": "Yes Glossary Term" }, { "Name": "No", "ShortDescription": "No", "LongDescription": "No Glossary Term" } ] }
Arquitecto e ingeniero de nube DevOps

Actualiza la configuración del formulario de DataZone metadatos de Amazon.

Para actualizar la configuración del formulario de DataZone metadatos de Amazon enlib/utils/metadata_form_config.json file, utilice el siguiente ejemplo de configuración:

{ "FormName": "ScheduleDataRefresh", "FormDescription": "Form for data refresh schedule", "FormSmithyModel": "@amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\nstructure ScheduleDataRefresh {\n @documentation(\"Schedule of Data Refresh\")\n @required\n @amazon.datazone#searchable\n @amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\n data_refresh_schedule: String\n}" }
Arquitecto e DevOps ingeniero de nube

Exporte las AWS credenciales.

Para exportar AWS las credenciales a su entorno de desarrollo para el rol de IAM con permisos administrativos, utilice el siguiente formato:

export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export AWS_SESSION_TOKEN=
Arquitecto de nube, ingeniero DevOps

Sintetice la plantilla.

Para sintetizar la CloudFormation plantilla, ejecute el siguiente comando:

npx cdk synth
Arquitecto de nube, ingeniero DevOps

Implemente la solución.

Ejecute el siguiente comando para implementar la solución:

npx cdk deploy --all
Arquitecto de nube, DevOps ingeniero
TareaDescripciónHabilidades requeridas

Implemente la plantilla.

Implemente la CloudFormation plantilla ubicada lib/cfn-templates/DzDataMeshCfnStackSetExecutionRole.yaml en la cuenta del miembro con los siguientes parámetros de entrada:

  • GovernanceAccountID: ID de cuenta de la cuenta de gobernanza

  • DataZoneKMSKeyID‒ ID de la clave AWS Key Management Service (AWS KMS) que cifra los metadatos de Amazon DataZone

  • NotificationQueueName: nombre de la cola de notificaciones de Amazon SQS en la cuenta de gobernanza

Arquitecto de nube, ingeniero DevOps

Actualice el ARNs.

Para actualizar la lista de funciones de CloudFormation StackSet ejecución ARNs de las cuentas de los miembros, utilice el siguiente código:

DZ_MEMBER_STACK_SET_EXEC_ROLE_LIST - List of Stack set execution role arns for the member accounts.
Arquitecto de nube, DevOps ingeniero

Sintetice e implemente.

Para sintetizar la CloudFormation plantilla e implementar la solución, ejecute los siguientes comandos:

npx cdk synth npx cdk deploy --all
Arquitecto de nube, ingeniero DevOps

Asocie la cuenta de miembro

Para asociar la cuenta de miembro a la cuenta de gobernanza central, haga lo siguiente:

  1. Inicia sesión en la consola de la cuenta de gobierno central y abre la DataZone consola de Amazon en https://console.aws.amazon.com/datazone/.

  2. Seleccione el dominio que creó.

  3. Desplácese hasta la pestaña Cuentas asociadas y elija Solicitar asociación.

  4. Proporcione el ID de la cuenta de AWS y elija AWSRAMPermissionDataZonePortalReadWriteuna política de RAM.

  5. Elija Solicitar asociación.

  6. Espere a recibir una notificación por correo electrónico donde se indique que su cuenta se ha iniciado correctamente.

Arquitecto e DevOps ingeniero de nube

Actualice los parámetros.

Para actualizar los parámetros específicos de la cuenta de miembro en el archivo de configuración de config/Config.ts, utilice el siguiente formato:

export const DZ_MEMBER_ACCOUNT_CONFIG: memberAccountConfig = { '123456789012' : { PROJECT_NAME: 'TEST-PROJECT-123456789012', PROJECT_DESCRIPTION: 'TEST-PROJECT-123456789012', PROJECT_EMAIL: 'user@xyz.com' } }
Arquitecto de nube, DevOps ingeniero

Sintetice e implemente la plantilla.

Para sintetizar la CloudFormation plantilla e implementar la solución, ejecute los siguientes comandos:

npx cdk synth npx cdk deploy --all
Arquitecto de nube, ingeniero DevOps

Agregue cuentas de miembro.

Para crear y configurar cuentas de miembros adicionales en la solución de datos, repita los pasos anteriores para cada cuenta de miembro.

Esta solución no diferencia entre productores y consumidores de datos.

Arquitecto de nube, DevOps ingeniero
TareaDescripciónHabilidades requeridas

Elimine la asociación de las cuentas de miembros.

Para desasociar las cuentas, haga lo siguiente:

  1. Inicia sesión en la consola y abre la DataZone consola de Amazon.

  2. Seleccione Ver dominios.

  3. Seleccione el dominio que creó.

  4. Seleccione la pestaña Asociaciones de cuentas.

  5. Seleccione la cuenta de miembro que quiera desasociar.

  6. Elija Desasociar e introduzca disassociate para confirmar.

  7. Repita los pasos 3 a 6 para todas las cuentas de miembros.

Arquitecto e DevOps ingeniero de nube

Elimine las instancias de pila.

Para eliminar las instancias de la CloudFormation pila, haga lo siguiente:

  1. Abre la CloudFormation consola en https://console.aws.amazon.com/cloudformation/.

  2. En el panel de navegación, elija StackSets.

  3. Elija el conjunto de pilas denominado StackSet- DataZone - DataMesh -Member y elija la pestaña Instancias de pila.

  4. Copia el Cuenta de AWS ID de la cuenta de miembro que quieres eliminar de la membresía. 

  5. Selecciona Acciones, selecciona Eliminar pilas de y StackSet conserva las opciones predeterminadas.

  6. En el campo Números de cuenta, introduzca el ID de la cuenta. 

  7. En la lista desplegable Especificar regiones, elija Región de AWS. 

  8. Seleccione Siguiente y, a continuación, elija Enviar

  9. En la pestaña Operaciones, confirme que la operación se haya realizado correctamente. La eliminación de la pila puede tardar algún tiempo.

  10. Repita los pasos 2 a 9 para todas las cuentas de miembros.

Arquitecto de nube, ingeniero DevOps

Elimine todos los recursos.

Para eliminar recursos, realice los siguientes pasos en su entorno de desarrollo local (Linux o macOS):

  1. Vaya hasta la raíz del directorio de su repositorio. 

  2. Exporte las AWS credenciales del rol de IAM que utilizó para crear la AWS CDK pila. 

  3. Ejecute el siguiente comando para eliminar los recursos en la nube:

    npx cdk destroy --all
Arquitecto e ingeniero de nube DevOps

Recursos relacionados

Información adicional

Objetivos

Con la implementación de este patrón logrará lo siguiente:

  • Propiedad descentralizada de los datos: traslade la propiedad de los datos de un equipo central a equipos que representen los sistemas de origen, las unidades de negocio o los casos de uso de su organización.

  • Pensamiento dedicado al producto: introduzca una mentalidad basada en el producto que incluya a los clientes, el mercado y otros factores cuando tenga que considerar los activos de datos de su organización.

  • Gobernanza federada: mejore las barreras de protección, los controles y el cumplimiento en todos los productos de datos de su organización.

  • Soporte para varias cuentas y proyectos: ayuda para el intercambio de datos y la colaboración eficientes y seguros entre las unidades de negocio o los proyectos de su organización.

  • Supervisión y notificaciones centralizadas: supervise los recursos en la nube de su red de datos mediante Amazon CloudWatch y notifique a los usuarios cuando se asocie una nueva cuenta de miembro.

  • Escalabilidad y extensibilidad: añada nuevos casos de uso a la malla de datos a medida que su organización evoluciona.

Alcance de la solución

Al utilizar esta solución, puede empezar poco a poco y ampliarla a medida que avanza en su transición hacia la malla de datos. A menudo, cuando una cuenta de miembro adopta la solución de datos, esta contiene configuraciones de cuenta específicas para la organización, el proyecto o la unidad de negocio. Esta solución se adapta a estas diversas Cuenta de AWS configuraciones al admitir las siguientes funciones:

  • AWS Glue Data Catalog como fuente de datos para Amazon DataZone

  • Gestión del dominio de DataZone datos de Amazon y el portal de datos relacionado

  • Administración de la adición de cuentas de miembros a la solución de datos basada en la malla de datos

  • Gestión de DataZone proyectos y entornos de Amazon

  • Gestión de DataZone glosarios y formularios de metadatos de Amazon

  • Administración de roles de IAM que corresponden a los usuarios de la solución de datos basada en la malla de datos

  • Notificaciones para los usuarios de soluciones de datos basadas en la malla de datos

  • Supervisión de la infraestructura en la nube aprovisionada

    Esta solución utiliza AWS CDK e implementa CloudFormation la infraestructura de la nube. Suele CloudFormation hacer lo siguiente:

    • Definir e implementar los recursos de la nube con un nivel de abstracción inferior.

    • Implemente recursos en la nube desde Consola de administración de AWS. Al utilizar este enfoque, puede implementar la infraestructura sin un entorno de desarrollo.

    La solución de malla de datos se utiliza AWS CDK para definir los recursos a un nivel de abstracción superior. Como resultado, la solución proporciona un enfoque desacoplado, modular y escalable al elegir la herramienta adecuada para implementar los recursos de la nube.

Pasos siguientes

Puedes ponerte en contacto con AWSexpertos para que te asesoren sobre cómo crear una malla de datos con Amazon DataZone.

La naturaleza modular de esta solución permite crear soluciones de administración de datos con diferentes arquitecturas, como tejidos y lagos de datos. Además, en función de los requisitos de su organización, puede extender la solución a otras fuentes de DataZone datos de Amazon.