Desbloqueie fluxos de trabalho de dados eficientes e insights mais rápidos com uma solução escalável de extração, transformação e carregamento (ETL) de nível corporativo
Esta orientação ajuda a eliminar a lacuna entre os requisitos de consumo de dados e as atividades de processamento de dados de baixo nível realizadas por práticas comuns de ETL. Para organizações que operam em sistemas de gerenciamento de dados baseados em SQL, a adaptação às práticas modernas de engenharia de dados pode retardar a obtenção de insights poderosos de seus dados. Esta orientação fornece um design com reconhecimento de qualidade para aumentar a produtividade do processo de dados por meio da estrutura de dados de código aberto Arc para uma abordagem de ETL centrada no usuário. A orientação acelera a interação com as práticas de ETL, promovendo simplicidade e elevando o nível de abstração para unificar as atividades de ETL tanto em lote quanto em streaming.
Também oferecemos opções para um design ideal usando instâncias de computação eficientes (como os processadores AWS Graviton) que permitem otimizar a performance e o custo da execução de trabalhos de ETL em grande escala no Amazon EKS.
Observação: [Aviso legal]
Diagrama de arquitetura
[Descrição do diagrama de arquitetura]
Etapa 1
Interaja com ferramentas de desenvolvimento e orquestração de ETL por meio de endpoints do Amazon CloudFront com origens no Application Load Balancer, o qual fornece conexões seguras entre clientes e endpoints de ferramentas de ETL.
Etapa 2
Desenvolva, teste e agende tarefas de ETL que processam dados de lotes e streams. O tráfego de dados entre processos de ETL e armazenamentos de dados flui pelos endpoints da Amazon Virtual Private Cloud (Amazon VPC) com tecnologia AWS PrivateLink sem sair da rede da AWS.
Etapa 3
O Ambiente de Desenvolvimento Integrado (IDE) do JupyterHub, os Argo Workflows e o Apache Spark Operator são executados como contêineres em um cluster do Amazon Elastic Kubernetes Service (Amazon EKS). O IDE do JupyterHub pode se integrar a um repositório de código-fonte (como o GitHub) para rastrear as alterações de ativos ETL feitas pelos usuários. Os ativos incluem arquivos de caderno Jupyter e scripts SQL a serem executados com a Arc ETL Framework.
Etapa 4
Atualize os ativos de ETL no repositório do código-fonte e faça o upload para um bucket do Amazon Simple Storage Service (Amazon S3). O processo de sincronização pode ser implementado por um pipeline automatizado de integração contínua e implantação contínua (CI/CD) iniciado por atualizações no repositório de código-fonte ou executado manualmente.
Etapa 5
Opcionalmente, é possível alterar o código-fonte de compilação do Docker carregado de um repositório de código para o bucket de ativos ETL do S3. Ele ativa um pipeline de CI/CD do AWS CodeBuild e do AWS CodePipeline para reconstruir e enviar automaticamente a imagem de contêiner da Arc ETL Framework para um registro privado do Amazon Elastic Container Registry (Amazon ECR).
Etapa 6
Agende trabalhos de ETL por meio do Argo Workflows para serem executados em um cluster do Amazon EKS. Esses trabalhos extraem automaticamente a imagem do contêiner do Arc do Amazon ECR, baixam ativos ETL do bucket do S3 do artefato e enviam registros de aplicações para o Amazon CloudWatch. Os endpoints da VPC protegem o acesso a todos os serviços da AWS.
Etapa 7
Como usuário autenticado, você pode desenvolver e testar interativamente cadernos como trabalhos de ETL no JupyterHub IDE, que recupera automaticamente as credenciais de login do AWS Secrets Manager para validar as solicitações de login do usuário.
Etapa 8
Acesse os dados de saída de ETL armazenados no bucket do S3 que oferece suporte ao formato de data lake transacional. Você pode consultar as tabelas do Delta Lake por meio do Amazon Athena integrado ao Catálogo de Dados do AWS Glue.
Pilares do Well-Architected
O AWS Well-Architected Framework ajuda a entender as vantagens e as desvantagens das decisões tomadas durante a criação de sistemas na nuvem. Os seis pilares do Framework permitem que você aprenda as melhores práticas de arquitetura, a fim de projetar e operar sistemas confiáveis, seguros, eficientes, econômicos e sustentáveis. Com a Ferramenta AWS Well-Architected, disponível gratuitamente no Console de Gerenciamento da AWS, você pode avaliar suas workloads em relação às práticas recomendadas ao responder a uma série de questões para cada pilar.
O diagrama de arquitetura acima exemplifica a criação de uma solução pautada nas melhores práticas do Well-Architected. Para ser totalmente Well-Architected, é preciso respeitar a maior quantidade possível das melhores práticas desse framework.
-
Excelência operacional
Nos clusters do Amazon EKS, as instâncias do Amazon Elastic Compute Cloud (Amazon EC2) (CPU X86_64, Graviton ARM64) atuam como nós de computação, executando workloads de orientação. Os trabalhos do Spark são executados em instâncias spot do Amazon EC2 provisionadas elasticamente com base nas demandas de workload.
O CodeBuild e o CodePipeline automatizam o processo do GitOps, criando imagens de contêiner a partir de atualizações de código do Git e enviando-as para o registro privado do Amazon ECR. O Argo Workflows programa trabalhos de ETL no Amazon EKS, extraindo automaticamente a imagem do Docker do Arc do Amazon ECR, baixando ativos de ETL do bucket do S3 do artefato e enviando registros de aplicações para o CloudWatch.
Essa implantação e execução automatizadas de trabalhos de ETL de dados minimizam a sobrecarga operacional e melhoram a produtividade. Além disso, o pipeline de CI/CD usando o CodeBuild e o CodePipeline ajuda a garantir a melhoria e o desenvolvimento contínuos, ao mesmo tempo que armazena com segurança a imagem do Docker do Arc da orientação no Amazon ECR.
-
Segurança
Os recursos de cluster do Amazon EKS são implantados em uma Amazon VPC, fornecendo isolamento lógico entre a rede e a Internet pública. A Amazon VPC oferece suporte a recursos de segurança como endpoint da VPC (mantendo o tráfego dentro da rede da AWS), grupos de segurança, listas de controle de acesso (ACLs) à rede e funções e políticas do AWS Identity and Access Management (IAM) para controlar o tráfego de entrada e saída e a autorização. O registro de imagens do Amazon ECR oferece recursos de segurança em nível de contêiner, como verificação de vulnerabilidades. O Amazon ECR e o Amazon EKS seguem os padrões de registro da Open Container Initiative (OCI) e da API do Kubernetes, incorporando protocolos de segurança rígidos.
O IAM fornece controle de acesso para dados da aplicação Amazon S3, enquanto o AWS Key Management Service (AWS KMS) criptografa dados em repouso no Amazon S3. Os perfis do IAM para contas de serviço (IRSA) no Amazon EKS permitem um controle de acesso refinado para pods, aplicando o controle de acesso baseado em perfis e limitando o acesso não autorizado aos dados do Amazon S3. O Secrets Manager armazena e gerencia as credenciais com segurança. O CloudFront fornece pontos de entrada seguros codificados em SSL para as ferramentas Web Jupyter e Argo Workflows.
-
Confiabilidade
O Amazon EKS habilita topologias altamente disponíveis ao implantar os planos de controle e computação do Kubernetes em várias zonas de disponibilidade (AZs). Isso ajuda a garantir a disponibilidade contínua das aplicações de dados, mesmo que uma AZ sofra uma interrupção, resultando em uma implantação confiável de instâncias do EC2 Multi-AZ no Amazon EKS.
Para armazenamento de dados, o Amazon S3 oferece alta durabilidade e disponibilidade, replicando automaticamente objetos de dados em várias AZs dentro de uma região. Além disso, o Amazon ECR hospeda imagens do Docker em uma arquitetura altamente disponível e escalável, suportando de forma confiável a implantação de aplicações baseadas em contêineres e incrementos.
O Amazon S3, o Amazon EKS e o Amazon ECR são serviços totalmente gerenciados projetados para acordos de alto nível de serviço (SLAs) com custos operacionais reduzidos. Eles permitem a implantação de aplicações essenciais aos negócios para atender aos requisitos de alta disponibilidade.
-
Eficiência de performance
Os nós de computação do Amazon EC2 do cluster do Amazon EKS podem ter a escala aumentada ou reduzida verticalmente de forma dinâmica com base na workload da aplicação. As instâncias do EC2 baseadas em Graviton oferecem performance mais eficiente por meio de processadores personalizados baseados em ARM, hardware otimizado e aprimoramentos arquitetônicos.
Um padrão de armazenamento computacional desacoplado (com dados de entrada e saída armazenados no Amazon S3 melhora a eficiência da escalabilidade computacional dinâmica. O Catálogo de Dados simplifica o gerenciamento de metadados, integrando-se perfeitamente ao Athena para permitir o gerenciamento simplificado de metadados e uma maior performance de consultas. O Catálogo de Dados automatiza o crawling e a manutenção de metadados técnicos para processamento e consulta eficientes de dados. O Athena oferece consultas rápidas aos dados do Amazon S3 sem movê-los, aprimorando ainda mais a eficiência do fluxo de trabalho de análise.
-
Otimização de custos
O Amazon ECR é um serviço gerenciado para proteger e oferecer suporte a aplicações de contêiner com uma tarifa mensal fixa para armazenar e servir imagens de contêineres. Os nós de computação em cluster do Amazon EKS podem aumentar ou diminuir a escala verticalmente com base nas workloads do Spark, oferecendo tipos econômicos de instâncias Graviton e Spot. O Catálogo de Dados fornece um repositório de metadados sem servidor e totalmente gerenciado, eliminando a necessidade de configurar e manter um banco de dados de metadados de longa duração e reduzindo a sobrecarga operacional e os custos. O CodeBuild e o CodePipeline automatizam a criação e a implantação da imagem do Docker do Arc ETL Framework em um ambiente sem servidor, eliminando a necessidade de provisionar e gerenciar servidores de compilação, além de reduzir os custos de manutenção da infraestrutura.
-
Sustentabilidade
Esta orientação executa um cluster do Amazon EKS com tipos de computação eficientes baseados em processadores Graviton. O Amazon ECR elimina a necessidade de gerenciamento personalizado de hardware ou servidores físicos. O Catálogo de Dados e o Athena são serviços sem servidor que ajudam a reduzir ainda mais o impacto ambiental e energético.
A otimização da camada de computação do Amazon EKS para workloads do Apache Spark em grande escala minimiza o impacto ambiental das workloads de análise. Você tem a flexibilidade de escolher processadores baseados em Arm com base nas necessidades de performance e nas suas prioridades de sustentabilidade.
Recursos de implementação
O código de amostra é um ponto de partida. Ele é validado para o setor, é prescritivo, mas não definitivo, e mostra o que há por trás de tudo para ajudar você a começar.
Conteúdo relacionado
[Título]
Aviso de isenção de responsabilidade
O código de exemplo, as bibliotecas de software, as ferramentas de linha de comando, as provas de conceito, os modelos ou outra tecnologia relacionada (incluindo qualquer uma das anteriores fornecidas por nossa equipe) são fornecidos a você como Conteúdo da AWS nos termos do Contrato de Cliente da AWS ou o contrato por escrito pertinente entre você e a AWS (o que for aplicável). Você não deve usar esse Conteúdo da AWS em suas contas de produção, na produção ou em outros dados essenciais. Você é responsável por testar, proteger e otimizar o Conteúdo da AWS, como código de exemplo, conforme apropriado para uso em nível de produção com base em suas práticas e padrões específicos de controle de qualidade. A implantação de Conteúdo da AWS pode gerar cobranças da AWS para criar ou usar recursos cobráveis, como executar instâncias do Amazon EC2 ou usar armazenamento do Amazon S3.
As referências a serviços ou organizações terceirizadas nesta orientação não implicam em endosso, patrocínio ou afiliação entre a Amazon ou a AWS e terceiros. A orientação da AWS é um ponto de partida técnico, e você pode personalizar sua integração com serviços de terceiros ao implantar a arquitetura.