Crie uma malha de dados corporativa com a Amazon DataZone, AWS CDK, e AWS CloudFormation - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie uma malha de dados corporativa com a Amazon DataZone, AWS CDK, e AWS CloudFormation

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

Resumo

Na Amazon Web Services (AWS), os clientes entendem que os dados são a chave para acelerar a inovação e gerar valor comercial para sua empresa. Para gerenciar esse volume massivo de dados, você pode adotar uma arquitetura descentralizada como data mesh. Uma arquitetura de data mesh facilita o pensamento voltado ao produto, uma mentalidade que leva em consideração os clientes, as metas e o mercado. A data mesh também ajuda a estabelecer um modelo de governança federada que fornece acesso rápido e seguro aos seus dados.

Strategies for building a data mesh-based enterprise solution on AWS discute como você pode usar a Data Mesh Strategy Framework para formular e implementar uma estratégia de data mesh para sua organização. Ao usar a Data Mesh Strategy Framework, você pode otimizar a organização das equipes e suas interações para acelerar sua jornada de data mesh.

Este documento fornece orientação sobre como criar uma malha de dados corporativa com a Amazon DataZone. DataZone A Amazon é um serviço de gerenciamento de dados para catalogar, descobrir, compartilhar e governar dados armazenados localmente e em AWS fontes terceirizadas. O padrão inclui artefatos de código que ajudam você a implantar a infraestrutura de solução de dados baseada em malha de dados usando e. AWS Cloud Development Kit (AWS CDK) AWS CloudFormation Esse padrão é destinado a arquitetos e DevOps engenheiros de nuvem.

Para obter informações sobre os objetivos desse padrão e o escopo da solução, consulte a seção Informações adicionais.

Pré-requisitos e limitações

Pré-requisitos

  • Um mínimo de dois ativos Contas da AWS: um para a conta de governança central e outro para a conta do membro

  • AWS credenciais de administrador para a conta de governança central em seu ambiente de desenvolvimento

  • AWS Command Line Interface (AWS CLI) instalado para gerenciar seu a Serviços da AWS partir da linha de comando

  • Node.js e Node Package Manager (npm) instalados para gerenciar aplicativos AWS CDK

  • AWS CDK Kit de ferramentas instalado globalmente em seu ambiente de desenvolvimento usando npm, para sintetizar e implantar aplicativos AWS CDK

    npm install -g aws-cdk
  • Python versão 3.12 instalada em seu ambiente de desenvolvimento

  • TypeScript instalado em seu ambiente de desenvolvimento ou instalado globalmente usando o compilador npm:

    npm install -g typescript
  • Docker instalado em seu ambiente de desenvolvimento

  • Um sistema de controle de versão, como o Git, para manter o código-fonte da solução (recomendado)

  • Um ambiente de desenvolvimento integrado (IDE) ou editor de texto com suporte para Python e TypeScript (altamente recomendado)

Limitações

  • A solução foi testada somente em máquinas com Linux ou macOS em execução.

  • Na versão atual, a solução não suporta a integração da Amazon DataZone e, Centro de Identidade do AWS IAM por padrão. No entanto, é possível configurá-la para ser compatível com essa integração.

Versões do produto

  • Python versão 3.12

Arquitetura

O diagrama a seguir mostra uma arquitetura de referência de data mesh. A arquitetura é baseada na Amazon DataZone e usa o Amazon Simple Storage Service (Amazon S3) AWS Glue Data Catalog e como fontes de dados. O Serviços da AWS que você usa com a Amazon DataZone em sua implementação de malha de dados pode ser diferente, com base nos requisitos da sua organização.

Fluxo de trabalho em cinco etapas para contas de membros e conta de governança central.
  1. Nas contas do produtor, os dados brutos são adequados para consumo em sua forma atual ou são transformados para consumo por meio do uso AWS Glue. Os metadados técnicos dos dados são armazenados no Amazon S3 e avaliados usando AWS Glue um rastreador de dados. A qualidade dos dados é medida usando o AWS Glue Data Quality. O banco de dados de origem no catálogo de dados é registrado como um ativo no DataZone catálogo da Amazon. O DataZone catálogo da Amazon é hospedado na conta de governança central usando trabalhos de fonte DataZone de dados da Amazon.

  2. A conta de governança central hospeda o DataZone domínio da Amazon e o portal de DataZone dados da Amazon. Os produtores e consumidores Contas da AWS de dados estão associados ao DataZone domínio da Amazon. Os DataZone projetos da Amazon dos produtores e consumidores de dados são organizados sob as unidades de DataZone domínio correspondentes da Amazon.

  3. Os usuários finais dos ativos de dados fazem login no portal de DataZone dados da Amazon usando suas credenciais AWS Identity and Access Management (IAM) ou login único (com integração por meio do IAM Identity Center). Eles pesquisam, filtram e visualizam informações de ativos (por exemplo, informações sobre qualidade de dados ou metadados comerciais e técnicos) no catálogo de DataZone dados da Amazon.

  4. Depois que um usuário final encontra o ativo de dados que deseja, ele usa o recurso de DataZone assinatura da Amazon para solicitar acesso. O proprietário dos dados da equipe de produtores recebe uma notificação e avalia a solicitação de assinatura no portal de DataZone dados da Amazon. O proprietário dos dados aprova ou rejeita a solicitação de assinatura com base em sua validade.

  5. Depois que a solicitação de assinatura é concedida e atendida, o ativo é acessado na conta do consumidor para as seguintes atividades:

    • Desenvolvimento de modelos de IA/ML usando Amazon AI SageMaker

    • Analytics e relatórios usando o Amazon Athena e o Amazon Quick Suite

Ferramentas

Serviços da AWS

  • O Amazon Athena é um serviço de consultas interativas que ajuda a análise de dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão.

  • AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.

  • AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS

  • DataZoneA Amazon é um serviço de gerenciamento de dados que ajuda você a catalogar, descobrir, compartilhar e controlar dados armazenados localmente e em fontes terceirizadas. AWS

  • O Amazon Quick Suite é um serviço de business intelligence (BI) em escala de nuvem que facilita a visualização, a análise e a geração de relatórios dos seus dados em um único painel.

  • O Amazon SageMaker AI é um serviço gerenciado de aprendizado de máquina (ML) que ajuda você a criar e treinar modelos de ML e depois implantá-los em um ambiente hospedado pronto para produção.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

  • O Amazon Simple Queue Service (Amazon SQS) fornece uma fila hospedada segura, durável e disponível que ajuda a integrar e desacoplar sistemas e componentes de software distribuídos.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

Repositório de código

A solução está disponível no repositório GitHub data-mesh-datazone-cdk-cloudformation.

Épicos

TarefaDescriptionHabilidades necessárias

Clonar o repositório.

Para clonar o repositório, execute o seguinte comando em seu ambiente de desenvolvimento local (Linux ou macOS):

git clone https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation
Arquiteto de nuvem, DevOps engenheiro

Criar o ambiente

Para criar o ambiente virtual do Python, execute os seguintes comandos:

python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
Arquiteto de nuvem, DevOps engenheiro

Inicialize a conta.

Para inicializar a conta de governança central usando AWS CDK, execute o seguinte comando:

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

Faça login no Console de gerenciamento da AWS, abra o console central da conta de governança e obtenha o Amazon Resource Name (ARN) da função de AWS CDK execução.

Arquiteto de nuvem, DevOps engenheiro

Construa o arquivo DzDataMeshMemberStackSet.yaml.

Para construir o arquivo DzDataMeshMemberStackSet.yaml, no diretório-raiz do repositório, inicie o seguinte script bash:

./lib/scripts/create_dz_data_mesh_member_stack_set.sh
Arquiteto de nuvem, DevOps engenheiro

Confirme a criação do modelo.

Certifique-se de que o arquivo de CloudFormation modelo seja criado no lib/cfn-templates/DzDataMeshMemberStackSet.yaml local.

Arquiteto de nuvem, DevOps engenheiro
TarefaDescriptionHabilidades necessárias

Modifique o arquivo de configuração.

No arquivo config/Config.ts, modifique os seguintes 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

Mantenha os parâmetros restantes vazios.

Arquiteto de nuvem, DevOps engenheiro

Atualize a configuração do DataZone glossário da Amazon.

Para atualizar a configuração do DataZone glossário da Amazon no lib/utils/glossary_config.json arquivo, use o seguinte exemplo de configuração:

{ "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" } ] }
Arquiteto de nuvem, DevOps engenheiro

Atualize a configuração do formulário de DataZone metadados da Amazon.

Para atualizar a configuração do formulário de DataZone metadados da Amazon nolib/utils/metadata_form_config.json file, use o seguinte exemplo de configuração:

{ "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}" }
Arquiteto de nuvem, DevOps engenheiro

Exporte as AWS credenciais.

Para exportar AWS credenciais para seu ambiente de desenvolvimento para a função do IAM com permissões administrativas, use o seguinte formato:

export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export AWS_SESSION_TOKEN=
Arquiteto de nuvem, DevOps engenheiro

Sintetize o modelo.

Para sintetizar o CloudFormation modelo, execute o seguinte comando:

npx cdk synth
Arquiteto de nuvem, DevOps engenheiro

Implante a solução.

Para implantar a solução, execute o seguinte comando:

npx cdk deploy --all
Arquiteto de nuvem, DevOps engenheiro
TarefaDescriptionHabilidades necessárias

Implante o modelo.

Implante o CloudFormation modelo localizado lib/cfn-templates/DzDataMeshCfnStackSetExecutionRole.yaml na conta do membro com os seguintes parâmetros de entrada:

  • GovernanceAccountID: ID de conta da conta de governança

  • DataZoneKMSKeyID‒ ID da chave AWS Key Management Service (AWS KMS) que criptografa os metadados da Amazon DataZone

  • NotificationQueueName: nome da fila de notificação do Amazon SQS na conta de governança

Arquiteto de nuvem, DevOps engenheiro

Atualize ARNs o.

Para atualizar a lista de funções ARNs de CloudFormation StackSet execução das contas dos membros, use o código a seguir:

DZ_MEMBER_STACK_SET_EXEC_ROLE_LIST - List of Stack set execution role arns for the member accounts.
Arquiteto de nuvem, DevOps engenheiro

Sintetize e implante.

Para sintetizar o CloudFormation modelo e implantar a solução, execute os seguintes comandos:

npx cdk synth npx cdk deploy --all
Arquiteto de nuvem, DevOps engenheiro

Associe a conta de membro.

Para associar a conta de membro à conta de governança central, faça o seguinte:

  1. Faça login no console da conta de governança central e abra o DataZone console da Amazon em https://console.aws.amazon.com/datazone/.

  2. Escolha o domínio que você criou.

  3. Vá até a guia Contas associadas e escolha Solicitar associação.

  4. Forneça o ID da conta da AWS e escolha AWSRAMPermissionDataZonePortalReadWritecomo política de RAM.

  5. Escolha Solicitar associação.

  6. Espere até receber uma notificação por e-mail de que sua conta foi inicializada com sucesso.

Arquiteto de nuvem, DevOps engenheiro

Atualize os parâmetros.

Para atualizar os parâmetros específicos da conta de membro no arquivo de configuração em config/Config.ts, use o seguinte formato:

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

Sintetize e implante o modelo.

Para sintetizar o CloudFormation modelo e implantar a solução, execute os seguintes comandos:

npx cdk synth npx cdk deploy --all
Arquiteto de nuvem, DevOps engenheiro

Adicione contas de membro.

Para criar e configurar contas de membros adicionais na solução de dados, repita as etapas anteriores para cada conta de membro.

Essa solução não diferencia entre produtores e consumidores de dados.

Arquiteto de nuvem, DevOps engenheiro
TarefaDescriptionHabilidades necessárias

Desassocie as contas de membro.

Para desassociar as contas, faça o seguinte:

  1. Faça login no console e abra o DataZone console da Amazon.

  2. Escolha Visualizar domínios.

  3. Selecione o domínio que você criou.

  4. Escolha a guia Associações de contas.

  5. Selecione a conta de membro que você deseja desassociar.

  6. Escolha Desassociar e insira disassociate para confirmar.

  7. Repita as etapas 3 a 6 para todas as contas de membro.

Arquiteto de nuvem, DevOps engenheiro

Exclua as instâncias de pilha.

Para excluir as instâncias da CloudFormation pilha, faça o seguinte:

  1. Abra o CloudFormation console em https://console.aws.amazon.com/cloudformation/.

  2. No painel de navegação, escolha StackSets.

  3. Escolha o conjunto de pilhas chamado StackSet- DataZone - DataMesh -Member e escolha a guia Stack instances.

  4. Copie o Conta da AWS ID da conta de membro que você deseja remover da associação. 

  5. Escolha Ações, escolha Excluir pilhas StackSet de e mantenha as opções padrão.

  6. No campo Números de conta, insira o ID da conta. 

  7. Na lista suspensa Especificar regiões, escolha a Região da AWS. 

  8. Escolha Próximo e, em seguida, Enviar

  9. Na guia Operações, confirme se a operação foi bem-sucedida. A exclusão da pilha pode levar algum tempo.

  10. Repita as etapas 2 a 9 para todas as contas de membro.

Arquiteto de nuvem, DevOps engenheiro

Destrua todos os recursos.

Para destruir recursos, implemente as seguintes etapas em seu ambiente de desenvolvimento local (Linux ou macOS):

  1. Navegue até o diretório-raiz do seu repositório. 

  2. Exporte AWS as credenciais da função do IAM que você usou para criar a AWS CDK pilha. 

  3. Para destruir os recursos na nuvem, execute o seguinte comando:

    npx cdk destroy --all
Arquiteto de nuvem, DevOps engenheiro

Recursos relacionados

Mais informações

Objetivos

A implementação deste padrão resulta no seguinte:

  • Propriedade descentralizada dos dados: transfira a propriedade dos dados de uma equipe central para equipes que representam os sistemas de origem, as unidades de negócios ou os casos de uso da sua organização.

  • Pensamento voltado ao produto: adote uma mentalidade baseada em produtos que inclua clientes, o mercado e outros fatores ao considerar os ativos de dados em sua organização.

  • Governança federada: melhore as barreiras de proteção de segurança, os controles e a conformidade em todos os produtos de dados da sua organização.

  • Suporte para várias contas e vários projetos: ofereça suporte para o compartilhamento e a colaboração de dados de maneira eficiente e segura entre as unidades de negócios ou projetos de sua organização.

  • Monitoramento e notificações centralizados ‒ Monitore os recursos de nuvem de sua malha de dados usando a Amazon CloudWatch e notifique os usuários quando uma nova conta de membro for associada.

  • Escalabilidade e extensibilidade: adicione novos casos de uso à data mesh à medida que sua organização evolui.

Escopo da solução

Ao usar esta solução, você pode começar aos poucos e escalar à medida que avança em sua jornada de data mesh. Geralmente, quando uma conta de membro adota a solução de dados, ela contém configurações de conta específicas para a organização, projeto ou unidade de negócios. Essa solução acomoda essas diversas Conta da AWS configurações ao oferecer suporte aos seguintes recursos:

  • AWS Glue Data Catalog como fonte de dados para a Amazon DataZone

  • Gerenciamento do domínio de DataZone dados da Amazon e do portal de dados relacionado

  • O gerenciamento da adição de contas de membros na solução de dados baseada em data mesh

  • Gestão de DataZone projetos e ambientes da Amazon

  • Gerenciamento de DataZone glossários e formulários de metadados da Amazon

  • O gerenciamento de perfis do IAM que correspondem aos usuários da solução de dados baseada em data mesh

  • A notificação de usuários da solução de dados baseada em data mesh

  • O monitoramento da infraestrutura de nuvem provisionada

    Essa solução usa AWS CDK e implementa CloudFormation a infraestrutura em nuvem. Ele costuma CloudFormation fazer o seguinte:

    • Definir e implementar recursos de nuvem em um nível mais baixo de abstração.

    • Implemente recursos de nuvem a partir do Console de gerenciamento da AWS. Ao usar esta abordagem, você pode implantar a infraestrutura sem um ambiente de desenvolvimento.

    A solução de malha de dados é usada AWS CDK para definir recursos em um nível de abstração mais alto. Como resultado, a solução fornece uma abordagem desacoplada, modular e escalável ao escolher a ferramenta relevante para implantar os recursos em nuvem.

Próximas etapas

Você pode entrar em contato com AWSespecialistas para obter orientação sobre como criar uma malha de dados com a Amazon DataZone.

A natureza modular desta solução oferece suporte à criação de soluções de gerenciamento de dados com diferentes arquiteturas, como data fabric e data lakes. Além disso, com base nos requisitos da sua organização, você pode estender a solução para outras fontes de DataZone dados da Amazon.