Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Implante e gerencie um data lake de tecnologia sem servidor na Nuvem AWS usando a infraestrutura como código - 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á.

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á.

Implante e gerencie um data lake de tecnologia sem servidor na Nuvem AWS usando a infraestrutura como código

Criado por Kirankumar Chandrashekar (AWS) e Abdel Jaidi (AWS)

Resumo

Aviso: CodeCommit A AWS não está mais disponível para novos clientes. Os clientes atuais da AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais

Este padrão descreve como usar a computação de tecnologia sem servidor e a infraestrutura como código (IaC) para implementar e administrar um data lake na Nuvem da Amazon Web Services (AWS). Esse padrão é baseado no workshop da serverless data lake framework (SDLF) (Estrutura de data lake de tecnologia sem servidor) desenvolvido pela AWS.

A SDLF é uma coleção de recursos reutilizáveis que aceleram a entrega de data lakes corporativos na Nuvem AWS e ajudam a acelerar a implantação na produção. Ela é usada para implementar a estrutura básica de um data lake seguindo as práticas recomendadas.

O SDLF implementa um processo de integração contínua/implantação contínua (CI/CD) em toda a implantação do código e da infraestrutura usando serviços da AWS, como AWS, AWS e CodePipeline AWS. CodeBuild CodeCommit

Esse padrão usa vários serviços de tecnologia sem servidor da AWS para simplificar o gerenciamento de data lake. Isso inclui o Amazon Simple Storage Service (Amazon S3) e o Amazon DynamoDB para armazenamento, o AWS Lambda e o AWS Glue para computação e o Amazon Events, o Amazon Simple Queue Service (Amazon SQS) CloudWatch e o AWS Step Functions para orquestração.

A AWS CloudFormation e os serviços de código da AWS atuam como a camada de IaC para fornecer implantações rápidas e reproduzíveis com operações e administração fáceis.

Pré-requisitos e limitações

Pré-requisitos

Arquitetura

O diagrama de arquitetura ilustra um processo orientado por eventos com as etapas a seguir. 

Implementação e administração de um data lake na nuvem da AWS.
  1. Depois que um arquivo é adicionado ao bucket do S3 de dados brutos, uma notificação de evento do Amazon S3 é colocada em uma fila do SQS. Cada notificação é entregue como um arquivo JSON, que contém metadados como o nome do bucket do S3, a chave do objeto ou o timestamp.

  2. Essa notificação é consumida por uma função do Lambda que roteia o evento para o processo correto de extração, transformação e carregamento (ETL) com base nos metadados. A função do Lambda também pode usar configurações contextuais armazenadas em uma tabela do Amazon DynamoDB. Essa etapa permite o desacoplamento e o escalonamento para vários aplicativos no data lake.

  3. O evento é roteado para a primeira função do Lambda no processo de ETL, que transforma e move dados da área de dados brutos para a área de preparação do data lake. A primeira etapa é atualizar o catálogo abrangente. Essa é uma tabela do DynamoDB que contém todos os metadados do arquivo do data lake. Cada linha nessa tabela contém metadados operacionais sobre um único objeto armazenado no Amazon S3. Uma chamada síncrona é feita para uma função do Lambda que executa uma transformação leve, que é uma operação computacionalmente barata (como converter um arquivo de um formato para outro), no objeto S3. Como um novo objeto foi adicionado ao bucket temporário do S3, o catálogo abrangente é atualizado e uma mensagem é enviada para a fila do SQS aguardando a próxima fase no ETL.

  4. Uma regra de CloudWatch eventos aciona uma função Lambda a cada 5 minutos. Essa função verifica se as mensagens foram entregues à fila SQS da fase ETL anterior. Se uma mensagem foi entregue, a função do Lambda inicia a segunda função do AWS Step Functions no processo de ETL.

  5. Uma transformação intensa é então aplicada em um lote de arquivos. Essa transformação pesada é uma operação computacionalmente cara, como uma chamada síncrona para uma tarefa do AWS Glue, uma tarefa do AWS Fargate, uma etapa do Amazon EMR ou um notebook da Amazon. SageMaker Os metadados da tabela são extraídos dos arquivos de saída usando um crawler do AWS Glue, que atualiza o catálogo do AWS Glue. Os metadados do arquivo também são adicionados à tabela abrangente do catálogo no DynamoDB. Por fim, uma etapa de qualidade de dados aproveitando o Deequ também é executada.

Pilha de tecnologia

  • CloudWatch Eventos da Amazon

  • AWS CloudFormation

  • AWS CodePipeline

  • AWS CodeBuild

  • AWS CodeCommit

  • Amazon DynamoDB

  • AWS Glue

  • AWS Lambda

  • Amazon S3

  • Amazon SQS

  • AWS Step Functions

Ferramentas

  • Amazon CloudWatch Events — CloudWatch Events fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos recursos da AWS.

  • AWS CloudFormation — CloudFormation ajuda a criar e provisionar implantações de infraestrutura da AWS de forma previsível e repetida.

  • AWS CodeBuild — CodeBuild é um serviço de construção totalmente gerenciado que compila seu código-fonte, executa testes unitários e produz artefatos prontos para implantação.

  • AWS CodeCommit — CodeCommit é um serviço de controle de versão hospedado pela AWS que você pode usar para armazenar e gerenciar ativos de forma privada (como código-fonte e arquivos binários).

  • AWS CodePipeline — CodePipeline é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para liberar suas alterações de software continuamente.

  • Amazon DynamoDB: o DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que fornece uma performance rápida e previsível com escalabilidade. 

  • AWS Glue: o AWS Glue é um serviço de ETL totalmente gerenciado que facilita a preparação e o carregamento de dados para análise.

  • AWS Lambda: o Lambda é compatível com a execução de código sem provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. 

  • Amazon S3: o Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos altamente escalável. O Amazon S3 pode ser usado para uma ampla variedade de soluções de armazenamento, incluindo sites, aplicativos móveis, backups e data lakes.

  • AWS Step Functions: o AWS Step Functions é um orquestrador de funções de tecnologia sem servidor que facilita o sequenciamento de funções do Lambda na AWS e a multiplicação dos serviços da AWS em aplicativos essenciais para os negócios.

  • Amazon SQS: o Amazon Simple Queue Service (Amazon SQS) é um serviço de enfileiramento de mensagens totalmente gerenciado que ajuda você a desacoplar e escalar microsserviços, sistemas distribuídos e aplicativos de tecnologia sem servidor.

  • Deequ: o Deequ é uma ferramenta que ajuda você a calcular métricas de qualidade de dados para grandes conjuntos de dados, definir e verificar restrições de qualidade de dados e se manter informado sobre mudanças na distribuição de dados.

Repositório de código

O código-fonte e os recursos do SDLF estão disponíveis no GitHub repositório do AWS Labs.

Épicos

TarefaDescriçãoHabilidades necessárias

Configure o pipeline de CI/CD para gerenciar o IaC para o data lake.

Faça login no Console de Gerenciamento da AWS e siga as etapas da seção Configuração inicial do workshop da SDLF. Isso cria os recursos iniciais de CI/CD, como CodeCommit repositórios, CodeBuild ambientes e CodePipeline pipelines que provisionam e gerenciam a IaC para o data lake.

DevOps engenheiro

Configure o pipeline de CI/CD para provisionar IaC

TarefaDescriçãoHabilidades necessárias

Configure o pipeline de CI/CD para gerenciar o IaC para o data lake.

Faça login no Console de Gerenciamento da AWS e siga as etapas da seção Configuração inicial do workshop da SDLF. Isso cria os recursos iniciais de CI/CD, como CodeCommit repositórios, CodeBuild ambientes e CodePipeline pipelines que provisionam e gerenciam a IaC para o data lake.

DevOps engenheiro
TarefaDescriçãoHabilidades necessárias

Clone o CodeCommit repositório em sua máquina local.

Siga as etapas da seção Deploying the foundations (Implantação dos fundamentos do workshop da SDLF. Isso ajuda você a clonar o repositório Git que hospeda o IaC em seu ambiente local. 

Para obter mais informações, consulte Conexão com CodeCommit repositórios na CodeCommit documentação.

DevOps engenheiro

Modifique os CloudFormation modelos.

Use sua estação de trabalho local e um editor de código para modificar os CloudFormation modelos de acordo com seus casos de uso ou requisitos. Confirme-os no repositório Git clonado localmente. 

Para obter mais informações, consulte Como trabalhar com CloudFormation modelos da AWS na CloudFormation documentação da AWS.

DevOps engenheiro

Envie as alterações para o CodeCommit repositório.

Seu código de infraestrutura agora está sob controle de versão e as modificações em sua base de código são rastreadas. Quando você envia uma alteração para o CodeCommit repositório, a aplica CodePipeline automaticamente à sua infraestrutura e a entrega para CodeBuild. 

Importante

Se você usa a CLI do AWS SAM em CodeBuild, execute os comandos sam package e. sam deploy Se você usa a AWS CLI, execute os comandos aws cloudformation package e aws cloudformation deploy.

DevOps engenheiro

Controle de versão do IaC

TarefaDescriçãoHabilidades necessárias

Clone o CodeCommit repositório em sua máquina local.

Siga as etapas da seção Deploying the foundations (Implantação dos fundamentos do workshop da SDLF. Isso ajuda você a clonar o repositório Git que hospeda o IaC em seu ambiente local. 

Para obter mais informações, consulte Conexão com CodeCommit repositórios na CodeCommit documentação.

DevOps engenheiro

Modifique os CloudFormation modelos.

Use sua estação de trabalho local e um editor de código para modificar os CloudFormation modelos de acordo com seus casos de uso ou requisitos. Confirme-os no repositório Git clonado localmente. 

Para obter mais informações, consulte Como trabalhar com CloudFormation modelos da AWS na CloudFormation documentação da AWS.

DevOps engenheiro

Envie as alterações para o CodeCommit repositório.

Seu código de infraestrutura agora está sob controle de versão e as modificações em sua base de código são rastreadas. Quando você envia uma alteração para o CodeCommit repositório, a aplica CodePipeline automaticamente à sua infraestrutura e a entrega para CodeBuild. 

Importante

Se você usa a CLI do AWS SAM em CodeBuild, execute os comandos sam package e. sam deploy Se você usa a AWS CLI, execute os comandos aws cloudformation package e aws cloudformation deploy.

DevOps engenheiro

Recursos relacionados

Configure o pipeline de CI/CD para provisionar IaC

Controle de versão do IaC 

Outros recursos

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.