Pular para o conteúdo principal

AWS MSK para iniciantes: Um guia abrangente para você começar

Descubra como começar a usar o AWS MSK, um serviço Kafka gerenciado, neste guia para iniciantes repleto de dicas práticas e uma comparação das principais alternativas.
Actualizado 22 de jan. de 2025  · 20 min de leitura

Muitas empresas estão optando por mudar para o AWS MSK para evitar as dores de cabeça operacionais associadas ao gerenciamento de clusters do Apache Kafka.

Neste tutorial, exploraremos os recursos, os benefícios e as práticas recomendadas do AWS MSK. Também analisaremos as etapas básicas para configurar o AWS MSK e veremos como ele se compara a outros serviços populares, como o Kinesis e o Confluent.

O que é o AWS MSK?

Primeiro, vamos entender o Apache Kafka e por que ele é tão útil para o streaming de dados. 

O Apache Kafka é uma plataforma de streaming distribuído de código aberto que lida com fluxos de dados em tempo real e pode criar aplicativos orientados por eventos. Ele pode ingerir e processar dados de streaming à medida que eles acontecem.

De acordo com o site da Kafka, mais de 80% das empresas da Fortune 100 confiam e usam a Kafka.

O mais importante é que o Kafka é dimensionável e muito rápido. Isso significa que ele pode processar muito mais dados do que caberia em apenas uma máquina e com latência super baixa.

Se você quiser saber como criar, gerenciar e solucionar problemas do Kafka para streaming de dados, considere fazer o curso Introduction to Kafka

Quando é o melhor momento para usar o Apache Kafka? 

  1. Quando você precisa lidar com grandes quantidades de dados em tempo real, como lidar com fluxos de dados de dispositivos IoT.
  2. Quando você precisa de processamento e análise imediatos de dados, como no rastreamento de atividades de usuários ao vivo ou em sistemas de detecção de fraudes.
  3. Em cenários de fornecimento de eventos em que você precisa de trilhas de auditoria com requisitos e normas de conformidade.

No entanto, o gerenciamento de instâncias do Kafka pode trazer muitas dores de cabeça. É aqui que entra o AWS MSK.

O AWS MSK combina o Apache Kafka e o AWS.

Imagem do autor

O AWS MSK (Managed Streaming for Kafka) é um serviço totalmente gerenciado que lida com o provisionamento, a configuração, o dimensionamento e a manutenção de clusters do Kafka. Você pode usá-lo para criar aplicativos que reajam a fluxos de dados instantaneamente.

O Kafka é frequentemente usado como parte de uma configuração maior de processamento de dados, e o AWS MSK facilita ainda mais a criação de pipelines de dados em tempo real que movem dados entre diferentes sistemas.

Como o AWS MSK funciona no ecossistema do AWS.

Como funciona a Amazon MSK. Fonte da imageme: AWS

Se você é novo na AWS, considere fazer nosso curso de Introdução à AWS para se familiarizar com os conceitos básicos. Quando estiver pronto, você poderá passar para o nosso curso AWS Cloud Technology and Services para explorar o conjunto completo de serviços dos quais as empresas dependem.

Recursos do AWS MSK

O AWS MSK se destaca da concorrência por ser um serviço totalmente gerenciado. Você não precisa se preocupar em configurar servidores ou lidar com atualizações. 

No entanto, há mais do que isso. Esses cinco recursos principais do AWS MSK fazem dele um investimento que vale a pena:

  1. O MSK é altamente disponível, e o AWS garante que SLAs rigorosos sejam cumpridos. Ele substitui automaticamente os componentes com falha sem tempo de inatividade para seus aplicativos.
  2. O MSK tem uma opção de dimensionamento automático para armazenamento, de modo que ele cresce automaticamente de acordo com suas necessidades. Você também pode aumentar ou diminuir rapidamente o armazenamento ou adicionar mais brokers conforme necessário.
  3. Em termos de segurança, o MSK é uma solução abrangente que fornece criptografia em repouso e em trânsito. Ele também se integra ao AWS IAM para controle de acesso.
  4. Se você já estiver usando o Kafka, poderá migrar para o MSK sem alterar seu código, pois o MSK é compatível com todas as APIs e ferramentas regulares do Kafka.
  5. O MSKé uma opção econômica que não exige a contratação de uma equipe inteira de engenharia para monitorar e gerenciar clusters. A AWS até se gaba de que pode ser até 40% mais barato do que o Kafka autogerenciado.

Benefícios de usar o AWS MSK

Como já vimos, o AWS MSK oferece valor imediato devido à sua disponibilidade, escalabilidade, segurança e facilidade de integração. Essas vantagens essenciais fizeram com que ele se tornasse a principal opção para as empresas que executam cargas de trabalho do Kafka na nuvem.

O AWS MSK resolve quatro desafios críticos que todo projeto de streaming de dados enfrenta:

  • O MSK é um serviço totalmente gerenciado, permitindo que você se concentre na criação de aplicativos em vez de gerenciar a infraestrutura.
  • O MSK é altamente disponível e confiável, o que está se tornando cada vez mais crítico hoje em dia, pois os usuários esperam acesso 24 horas por dia, 7 dias por semana, a serviços e aplicativos.
  • A MSK tem recursos críticos e abrangentes de segurança.
  • O MSK tem integração nativa com o AWS, o que facilita muito a criação de soluções completas de dados de streaming no ecossistema do AWS.

Configurando o AWS MSK

Para começar a usar o AWS MSK, primeiro você deve criar sua conta do AWS. Se for a primeira vez que você usa o AWS, saiba como instalar e configurar sua conta do AWS com nosso tutorial abrangente.

Faça login no Console de gerenciamento do AWS e abra o console MSK. Clique em "Create cluster" (Criar cluster) para iniciar o processo de configuração. 

AWS MSK Get Started, Criar cluster.

Como começar a usar o AWS MSK. Imagem source: AWS

Selecione "Quick create" (Criação rápida) para as configurações padrão e, em seguida, insira um nome descritivo para o cluster.

A partir daí, você tem muitas opções adicionais para selecionar, que dependem dos seus próprios requisitos para o cluster. Aqui está uma rápida visão geral das opções:

  • Tipo de cluster: "Provisionado" ou "Sem servidor"
  • Versão do Apache Kafka
  • Tipo de corretor: "Padrão" ou "Expresso"
  • Tamanho da corretora
  • Volume de armazenamento EBS

Opções de configuração do AWS MSK Create Cluster.

Opções de configuração do AWS MSK

O cluster é sempre criado em um Amazon VPC. Você pode optar por usar a VPC padrão ou configurar e especificar uma VPC personalizada.

Agora, você só precisa aguardar a ativação do cluster, o que pode levar de 15 a 30 minutos. Você pode monitorar o status do seu cluster na página de resumo do cluster, onde verá a mudança de status de "Creating" (Criando) para "Active" (Ativo).

Ingestão e processamento de dados com o AWS MSK

Depois que o cluster MSK estiver configurado, você precisará criar uma máquina cliente para produzir e consumir dados em um ou mais tópicos. Como o Apache Kafka se integra tão bem a muitos produtores de dados (como sites, dispositivos de IoT, instâncias do Amazon EC2 etc.), o MSK também compartilha esse benefício.

O Apache Kafka organiza os dados em estruturas chamadas tópicos. Cada tópico consiste em uma ou várias partições. As partições são o grau de paralelismo no Apache Kafka. Os dados são distribuídos entre os corretores usando o particionamento de dados.

Termos importantes que você deve conhecer ao lidar com clusters do Apache Kafka:

  • Tópicos são a forma fundamental de organizar dados no Kafka.
  • Produtores são aplicativos que publicam dados em tópicos - eles geram e gravam dados no Kafka. Eles escrevem dados sobre tópicos e partições específicos.
  • Consumidores são aplicativos que leem e processam dados de tópicos. Eles extraem dados de tópicos nos quais estão inscritos.

Ao criar uma arquitetura orientada por eventos com o AWS MSK, você precisa configurar várias camadas, das quais o MSK é o principal componente de ingestão de dados. Aqui está uma visão geral das camadas que podem ser necessárias:

  1. Configuração da ingestão de dados
  2. Camada de processamento
  3. Camada de armazenamento
  4. Camada de análise

Exemplo de uma arquitetura orientada por eventos com o Amazon MSK e o Amazon EventBridge. Fonte da imagem: AWS

Se você estiver interessado em aproveitar o Python em seus fluxos de trabalho de pipeline de dados , confira nosso curso Introdução ao AWS Boto em Python.

Práticas recomendadas para usar o AWS MSK

O AWS MSK é relativamente simples de configurar e começar a usar imediatamente. No entanto, algumas práticas recomendadas essenciais melhorarão o desempenho dos clusters e economizarão tempo para você no futuro.

Dimensione corretamente seu cluster

Você precisará escolher o número correto de partições por broker e o número correto de brokers por cluster. 

Vários fatores podem influenciar suas decisões aqui; no entanto, a AWS forneceu algumas recomendações e recursos úteis para orientar você nesse processo.

Além disso, a AWS fornece uma planilha de preços e dimensionamento fácil de usar para ajudar você a estimar o tamanho certo do seu cluster e os custos associados ao uso do AWS MSK em comparação com um cluster EC2 Kafka autogerenciado semelhante.

Criar clusters altamente disponíveis

A AWS recomenda que você configure seus clusters para que sejam altamente disponíveis. Isso é especialmente importante ao realizar uma atualização (como a atualização da versão do Apache Kafka) ou quando o AWS estiver substituindo um corretor. 

Para garantir que seus clusters estejam altamente disponíveis, há três coisas que você deve fazer:

  1. Configure seus clusters em três zonas de disponibilidade (também chamado de cluster de três ZAs).
  2. Defina o fator de replicação como 3 ou mais.
  3. Defina o número mínimo de réplicas em sincronia como RF-1.

O melhor do AWS é que eles se comprometem com SLAs rigorosos para implantações em várias AZs; caso contrário, você receberá seus créditos de volta.

Monitorar o uso do disco e da CPU

Duas métricas importantes a serem monitoradas pelo AWS CloudWatch são o uso do disco e da CPU. Isso não só garantirá que seu sistema funcione sem problemas, mas também ajudará a manter os custos baixos. 

A melhor maneira de gerenciar o uso do disco e os custos de armazenamento associados é configurar um alarme do CloudWatch que alerte você quando o uso do disco exceder um determinado valor, como 85%, e ajustar suas políticas de retenção. Definir um tempo de retenção para as mensagens no log pode ajudar muito a liberar espaço em disco automaticamente.

Além disso, para manter o desempenho do seu cluster e evitar gargalos, o AWS recomenda que você mantenha o uso total da CPU dos seus brokers abaixo de 60%. Você pode monitorar isso usando o AWS CloudWatch e, em seguida, tomar medidas corretivas atualizando o tamanho do corretor, por exemplo.

Proteja seus dados usando criptografia em trânsito

Por padrão, o AWS criptografa os dados em trânsito entre os brokers do seu cluster MSK. Você pode desativar essa opção se o seu sistema estiver apresentando alto uso da CPU ou latência. No entanto, é altamente recomendável que você mantenha a criptografia em trânsito sempre ativada e encontre outras maneiras de melhorar o desempenho se isso for um problema para você.

Confira nosso curso de segurança e gerenciamento de custos da AWS para saber mais sobre como proteger e otimizar seu ambiente de nuvem da AWS e gerenciar custos e recursos na AWS.

Comparação do AWS MSK com outras ferramentas de streaming

Ao decidir qual ferramenta é a melhor para um projeto, geralmente precisamos avaliar várias opções. Aqui estão as alternativas mais comuns ao AWS MSK e como elas se comparam. 

AWS MSK vs. Apache Kafka no EC2

A principal troca entre o MSK e uma opção auto-hospedada usando o EC2 é entre conveniência e controle: O MSK oferece a você menos gerenciamento, mas menos flexibilidade, enquanto o EC2 oferece controle total, mas exige mais trabalho.

O AWS MSK lida com todas as tarefas operacionais complexas, com provisionamento e configuração automáticos. A vantagem disso é que não há custos iniciais de infraestrutura. Há também uma integração perfeita com outros serviços da AWS e recursos de segurança robustos.

O uso do Kafka no EC2, por outro lado, envolve mais instalação e configuração manuais, e você também precisa cuidar de toda a manutenção e atualizações. Isso oferece muito mais flexibilidade, mas pode acarretar mais complexidade e custos operacionais, além de exigir equipes mais altamente qualificadas.

AWS MSK vs. Kinesis

Use o Kinesis para obter simplicidade e profunda integração com o AWS e o MSK para obter compatibilidade com o Kafka ou mais controle sobre sua configuração de streaming.

O Kinesis é uma arquitetura totalmente sem servidor que usa shards para streaming de dados. O AWS gerencia tudo para você. No entanto, você deve estar ciente dos limites de retenção de dados. O Kinesis é uma ótima solução para requisitos simples de streaming de dados.

O AWS MSK se baseia no modelo de tópico e partição do Kafka, com retenção de dados praticamente ilimitada, dependendo do seu armazenamento. É uma solução mais flexível e personalizável que você pode migrar para fora da AWS, se necessário.

Se você não estiver familiarizado com o Kinesis, temos um curso que o orienta no trabalho com dados de streaming usando o AWS Kinesis e o Lambda.

AWS MSK vs. Confluente

Escolha o Confluent se precisar de recursos e suporte abrangentes e escolha o MSK se você tiver investido muito no AWS e tiver experiência em Kafka internamente.

O Confluent tem um rico conjunto de recursos com muitos conectores incorporados. Em geral, é uma opção mais cara, mas oferece um nível gratuito com recursos limitados. O Confluent funciona bem para cargas de trabalho dinâmicas e tem um processo de implementação mais fácil.

Em comparação, o AWS é mais simplificado e se concentra na funcionalidade principal do Kafka. Para ter acesso a um conjunto de recursos mais amplo, o AWS MSK deve ser integrado a outros serviços do AWS. Felizmente, essa integração é perfeita. O AWS MSK tem um custo básico mais baixo e pode ser uma boa opção para cargas de trabalho consistentes.

A tabela a seguir oferece uma comparação do AWS MSK e suas alternativas:

Recurso

AWS MSK

Apache Kafka no EC2

Kinesis

Confluente

Implantação

Totalmente gerenciado

Autogerenciado no EC2

Totalmente gerenciado

Totalmente gerenciado ou autogerenciado

Facilidade de uso

Fácil de configurar e gerenciar

Requer configuração e dimensionamento manuais

Configuração simples; nativo do AWS

Interface de usuário amigável e ferramentas avançadas

Escalabilidade

Escala automática com ajustes manuais

Dimensionamento manual

Dimensionamento contínuo

Escalonamento automático com flexibilidade

Latência

Baixa latência

Baixa latência

Menor latência para pequenas cargas úteis

Comparável à MSK

Suporte a protocolos

Compatível com a API do Kafka

Compatível com a API do Kafka

Protocolo proprietário do Kinesis

API do Kafka e protocolos adicionais

Retenção de dados

Configurável (padrão de até 7 dias)

Configurável

Configurável (máximo de 365 dias)

Altamente configurável

Monitoramento e métricas

Integrado com o CloudWatch

Requer configuração personalizada

Integrado com o CloudWatch

Ferramentas avançadas de monitoramento

Custo

Pagamento conforme o uso

Com base no preço da instância do EC2

Pagamento conforme o uso

Baseado em assinatura

Segurança

Recursos de segurança do AWS incorporados

Você deve configurar a segurança manualmente

Integrado com o AWS IAM

Recursos de segurança abrangentes

Adequação do caso de uso

Melhor para usuários do Kafka no ecossistema da AWS

Flexível, mas de alta manutenção

Melhor para aplicativos nativos da AWS

Usuários avançados do Kafka e empresas

Considerações finais

O Apache Kafka é a escolha ideal para situações em que você precisa de uma solução confiável e de grande escala que não pode permitir a perda de dados e exige a conexão de várias fontes de dados ou a criação de pipelines de dados complexos. O AWS MSK evita muitas das dores de cabeça da instalação e configuração de clusters do Kafka, permitindo que os desenvolvedores se concentrem mais na criação e no aprimoramento de aplicativos do que na infraestrutura.

Obter uma certificação da AWS é uma excelente maneira de começar sua carreira na AWS. Você pode desenvolver suas habilidades em AWS conferindo nosso catálogo de cursos e obtendo experiência prática por meio de projetos!

Perguntas frequentes

O AWS MSK pode ser integrado a outros serviços do AWS, como Lambda e S3?

Sim, o AWS MSK se integra a muitos serviços do AWS. Você pode usar o MSK Connect para executar conectores Kafka Connect totalmente gerenciados. Você pode usar conectores predefinidos ou criar conectores personalizados para mover dados entre o MSK e serviços como S3, OpenSearch e RDS. O AWS MSK também pode servir como uma fonte de eventos para funções Lambda. Você pode configurar o Lambda para pesquisar os tópicos do MSK e chamar automaticamente as funções com base em novas mensagens, com suporte para processamento em lote e tratamento de erros.

Posso migrar meu cluster Kafka existente para o AWS MSK?

Sim, a migração para a MSK é possível de algumas maneiras diferentes. Você pode usar o MirrorMaker 2.0 para replicação de cluster, realizar uma migração direta de tópicos ou usar ferramentas de terceiros. O AWS fornece documentação detalhada sobre migração e práticas recomendadas para que você tenha o mínimo de tempo de inatividade.

Que monitoramento e métricas estão disponíveis para os clusters do AWS MSK?

O MSK se integra ao CloudWatch para monitoramento, fornecendo métricas para a integridade do broker, o desempenho do cluster e o atraso do consumidor. As principais métricas incluem a utilização da CPU, o espaço em disco, a taxa de transferência da rede e a contagem de partições.


Joleen Bothma's photo
Author
Joleen Bothma
LinkedIn
Temas

Saiba mais sobre a AWS com estes cursos!

curso

AWS Concepts

2 hr
19K
Discover the world of Amazon Web Services (AWS) and understand why it's at the forefront of cloud computing.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O guia de certificação Kafka para profissionais de dados

Saiba como avançar em sua carreira com as certificações Confluent Certified Developer (CCDAK) e Administrator (CCAAK), obtendo a experiência e o reconhecimento necessários para se destacar em streaming e gerenciamento de dados.
Adejumo Ridwan Suleiman's photo

Adejumo Ridwan Suleiman

13 min

blog

AWS Certified Cloud Practitioner: um guia completo

Saiba mais sobre a certificação e o exame AWS Certified Cloud Practitioner com nosso guia completo. Descubra dicas, recursos e estratégias para garantir que você tenha sucesso.
Srujana Maddula's photo

Srujana Maddula

27 min

tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

28 min

tutorial

O guia completo para machine learning na AWS com o Amazon SageMaker

Este tutorial abrangente ensina você a usar o AWS SageMaker para criar, treinar e implantar modelos de machine learning. Nós guiamos você por todo o fluxo de trabalho, desde a configuração do seu ambiente AWS e a criação de uma instância de notebook do SageMaker até a preparação de dados, modelos de treinamento e sua implementação como endpoints.
Bex Tuychiev's photo

Bex Tuychiev

25 min

tutorial

Tutorial de armazenamento do AWS: Uma introdução prática ao S3 e ao EFS

O guia completo para armazenamento de arquivos no AWS com S3 e EFS.
Zoumana Keita 's photo

Zoumana Keita

16 min

tutorial

Tutorial do MySQL: Um guia abrangente para iniciantes

Descubra o que é o MySQL e como começar a usar um dos sistemas de gerenciamento de banco de dados mais populares.
Javier Canales Luna's photo

Javier Canales Luna

15 min

Ver maisVer mais