top of page

Coffee and Tips Newsletter

Inscreva-se na nossa newsletter semanal

Nos vemos em breve!

Amazon EMR vs EMR Serverless: Qual o melhor para o seu projeto de dados?

  • Foto do escritor: JP
    JP
  • 5 de jun.
  • 4 min de leitura

Descubra o que muda entre os dois modelos e evite dores de cabeça com infraestrutura


Se você trabalha com dados e já ouviu falar em Amazon EMR, prepare-se: agora existe também o tal do EMR Serverless. Parece mágica? É quase isso. Mas antes de sair migrando tudo para o "automágico", é importante entender onde cada um brilha (e onde dá ruim).


O que é o Amazon EMR tradicional (Baseado em Clusters) ?


O Amazon EMR é um serviço gerenciado da AWS para processar grandes volumes de dados usando Spark, Hive, Presto, Hudi e companhia. A versão tradicional funciona com clusters provisionados manualmente. Ou seja: você monta o palco, conecta os cabos e depois roda o show.


Componentes principais:



EMR Serverless
Overview da arquitetura do EMR provisionado


  • Job: o código que você quer rodar. Pode ser um script em PySpark, uma query Hive ou qualquer workload suportado.


  • Amazon EMR: a "banda" que gerencia tudo por trás das cortinas: provisiona, executa, monitora e encerra o cluster.


  • Cluster:


    • Master Node: o maestro da orquestra. Ele é responsável por agendar jobs, monitorar progresso, distribuir tarefas e manter o estado da execução. Também é onde rodam os principais serviços como o ResourceManager (YARN) ou Spark Driver.


    • Core Nodes: os trabalhadores da linha de frente. Eles executam as tarefas distribuídas e armazenam os dados no HDFS (Hadoop Distributed File System).


    • Task Nodes (opcional): usados exclusivamente para execução de tarefas, sem armazenamento local. Ótimos para workloads temporários e escalonamento rápido.


    • HDFS: sistema de arquivos distribuído que roda sobre os core nodes, responsável por armazenar os dados utilizados e gerados pelo cluster.




E o que muda no EMR Serverless?


Imagine que agora você só quer cantar: chega, né? Nada de montar estrutura. O EMR Serverless entra em cena para simplificar: você envia o job e a AWS cuida de tudo.


Componentes principais:



EMR Serverless
Overview da arquitetura do EMR Serverless

  • Job: o código que você quer executar, assim como no modelo tradicional.


  • EMR Serverless: é o gerenciador invisível. Ele provisiona automaticamente os recursos computacionais, executa o job e desaloca tudo após a conclusão.


  • Compute Resources: recursos efêmeros compostos que representam vCPUs e memória RAM. São alocados sob demanda, de forma granular e escalável.


  • Amazon S3: fonte oficial de verdade. Todos os dados de entrada e saída são armazenados em buckets S3, já que o EMR Serverless é stateless (não armazena nada localmente).


  • Application Configuration: você pode criar aplicações EMR Serverless com configurações pré-definidas (versão do Spark, pacotes extras, etc.) e reutilizá-las em múltiplos jobs.



Quando usar cada um?


Escolher entre EMR tradicional e EMR Serverless pode parecer um duelo de titãs, mas tudo depende do tipo de workload, do seu apetite por controle e da sua pressa em ver os dados voando por aí. Vamos aos cenários mais comuns:


EMR Serverless
Diferenças no uso

Use EMR Tradicional quando:


  • Seus pipelines rodam todos os dias ou 24x7 e você quer manter o cluster ativo por longos períodos.


  • Você precisa de configurações altamente customizadas, como tipos específicos de instância EC2, GPUs, discos locais otimizados ou configurações de rede personalizadas.


  • Deseja controle total sobre a infraestrutura, desde o sistema operacional até configurações de YARN, Spark, HDFS e integração com outros serviços.


  • Seu time é experiente em operação de clusters e prefere manter ambientes sempre prontos para execução.


Use EMR Serverless quando:


  • Os jobs são esporádicos, intermitentes ou imprevisíveis, como análises pontuais, jobs agendados por evento ou exploração ad hoc.


  • Você quer simplicidade, evitando ter que se preocupar com provisionamento, escalabilidade e desligamento de clusters.


  • Seu foco é reduzir custos com workloads que não precisam estar rodando o tempo todo, aproveitando a cobrança sob demanda.


  • Você quer prototipar e experimentar com rapidez, usando recursos elásticos, sem configurar infraestrutura.


EMR Serverless


Vantagens e Desvantagens


Amazon EMR Tradicional


Vantagens:


  • Flexibilidade Total: Permite configurações personalizadas de hardware e software para atender a requisitos específicos.


  • Controle Completo: Oferece controle total sobre o ambiente de execução, incluindo redes, segurança e armazenamento.


Desvantagens:


  • Gerenciamento Complexo: Requer monitoramento e ajustes constantes para otimizar o desempenho e os custos.


  • Risco de Subutilização: Clusters ociosos podem gerar custos desnecessários se não forem encerrados adequadamente.


Amazon EMR Serverless


Vantagens:


  • Simplicidade Operacional: Elimina a necessidade de gerenciar infraestrutura, reduzindo a complexidade operacional.


  • Eficiência de Custos: Paga-se apenas pelos recursos utilizados durante a execução dos jobs, evitando custos com recursos ociosos.


  • Escalabilidade Transparente: Ajusta automaticamente a capacidade para atender às demandas dos workloads.


Desvantagens:


  • Menor Personalização: Menor controle sobre a configuração da infraestrutura e do ambiente de execução.


  • Latência de Inicialização: Pode haver uma latência inicial na execução de jobs devido ao tempo necessário para alocar recursos.



Como funciona a Precificação


Amazon EMR Tradicional


  • Baseado em Instâncias EC2: Os custos são determinados pelo tipo e número de instâncias EC2 utilizadas, além de outros recursos associados, como armazenamento e transferência de dados.


  • Modelos de Preço: Suporta instâncias sob demanda, reservadas e spot, permitindo otimizar os custos conforme o perfil de uso.


Amazon EMR Serverless


  • Baseado em Recursos Utilizados: Os custos são calculados com base na quantidade de vCPU e memória utilizadas durante a execução dos jobs, cobrados por segundo com um mínimo de 60 segundos.


  • Sem Custos de Infraestrutura Ociosa: Não há cobrança por recursos quando não há jobs em execução, resultando em economia para workloads intermitentes.



Conclusão


O EMR tradicional é para quem precisa de uma orquestra com controle de cada instrumento. Já o EMR Serverless é para quem quer apenas apertar o play e deixar a AWS cuidar do resto.

Se você tem pipelines recorrentes e configurados no detalhe, continue com o modelo tradicional. Agora, se a ideia é agilidade, uso sob demanda e economia, o serverless é uma bela pedida.

E lembre-se: o melhor sistema é aquele que funciona pra você, não o que está na moda.


Quer Aprender Mais? Inscreva-se na nossa Newsletter semanal!


Não perca nossas dicas exclusivas de Tech e Data!



Receba semanalmente:

  • Tutoriais práticos e diretos sobre Engenharia de Software e Dados

  • Insights de tecnologia e notícias da semana

 
 
 

Comments


bottom of page