curso
AWS MSK para iniciantes: Um guia abrangente para você começar
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?
- Quando você precisa lidar com grandes quantidades de dados em tempo real, como lidar com fluxos de dados de dispositivos IoT.
- 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.
- 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.
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 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:
- 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.
- 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.
- 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.
- 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.
- 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.
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
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:
- Configuração da ingestão de dados
- Camada de processamento
- Camada de armazenamento
- 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:
- Configure seus clusters em três zonas de disponibilidade (também chamado de cluster de três ZAs).
- Defina o fator de replicação como 3 ou mais.
- 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.

Saiba mais sobre a AWS com estes cursos!
curso
AWS Cloud Technology and Services Concepts
programa
AWS Cloud Practitioner (CLF-C02)
blog
O guia de certificação Kafka para profissionais de dados

Adejumo Ridwan Suleiman
13 min
blog
AWS Certified Cloud Practitioner: um guia completo

Srujana Maddula
27 min
tutorial
Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Tim Lu
28 min
tutorial
O guia completo para machine learning na AWS com o Amazon SageMaker
tutorial
Tutorial de armazenamento do AWS: Uma introdução prática ao S3 e ao EFS
tutorial