Geral

P: O que é o Amazon MSK?
O Amazon Managed Streaming for Apache Kafka (Amazon MSK) é um serviço de streaming de dados da AWS que gerencia a infraestrutura e as operações do Apache Kafka, facilitando que desenvolvedores e gerentes de DevOps executem aplicações Apache Kafka e conectores Apache Kafka Connect na AWS, sem a necessidade de se tornarem especialistas na operação do Apache Kafka. O Amazon MSK opera, mantém e escalona clusters do Apache Kafka, fornece recursos de segurança de nível empresarial prontos para uso e possui integrações incorporadas com a AWS que aceleram o desenvolvimento de aplicativos de dados de streaming. Para começar, você pode migrar as workloads existentes do Apache Kafka e os conectores do Apache Kafka Connect para o Amazon MSK ou, com alguns cliques, criar novos do zero. Não há cobrança de transferência de dados para o tráfego no cluster e não são necessárias confirmações ou pagamentos adiantados. Você paga somente pelos recursos utilizados.
 
P: O que é o Apache Kafka?
O Apache Kafka é uma plataforma escalável, de código aberto, tolerante a falhas e de alta performance para criação em tempo real de pipelines e aplicações de dados de streaming. O Apache Kafka é uma loja de dados de streaming que separa aplicativos que produzem dados de streaming (produtores) em seu armazenamento de dados de aplicativos dos que consomem dados de streaming (consumidores) de seu armazenamento de dados. Organizações usam o Apache Kafka como uma fonte de dados para aplicativos que analisa continuamente e reage aos dados de streaming. Saiba mais sobre o Apache Kafka.
 
P: O que é o Apache Kafka Connect?
O Apache Kafka Connect, um componente de código aberto do Apache Kafka, é uma framework para conectar o Apache Kafka a sistemas externos, como bancos de dados, armazenamentos de valores-chave, índices de pesquisa e sistemas de arquivos.
 
P: O que são dados de streaming?
Os dados de streaming são um fluxo contínuo de pequenos registros ou eventos (um registro ou evento tem normalmente alguns kilobytes) gerado por milhares de máquinas, dispositivos, sites e aplicações. Os dados de streaming incluem uma ampla variedade de dados, como arquivos de log gerados por clientes usando suas aplicações móveis ou Web, compras de comércio eletrônico, atividade de jogador durante o jogo, informações de redes sociais, pregões financeiros, serviços geoespaciais, logs de segurança, métricas e telemetria de dispositivos conectados ou instrumentação em datacenters. Os serviços de dados de streaming, como o Amazon MSK e o Amazon Kinesis Data Streams, facilitam a coleta, o processamento e a entrega contínuos de dados de streaming. Saiba mais sobre os dados de streaming.
 
P: Quais são os principais recursos do Apache Kafka?
O Apache Kafka tem três recursos principais:
  • O Apache Kafka armazena dados de streaming de modo tolerante a falhas, fornecendo um buffer entre produtores e consumidores. Ele armazena eventos como uma série contínua de registros e preserva a ordem em que os registros foram produzidos.
  • O Apache Kafka permite que muitos produtores de dados, como sites, dispositivos de Internet das Coisas (IoT) e instâncias do Amazon Elastic Compute Cloud (Amazon EC2) publiquem continuamente dados de streaming e os categorizem usando os tópicos do Apache Kafka. Diversos consumidores de dados (por exemplo, aplicações de machine learning, funções do AWS Lambda ou microsserviços) leem esses tópicos a uma taxa própria, semelhante a uma fila de mensagens ou um sistema de mensagens empresarial.
  • Os consumidores de dados processam os dados dos tópicos do Apache Kafka com base na ordem de chegada, preservando a ordem em que os dados foram produzidos.

 

O Apache Kafka armazena registros em tópicos. Os produtores de dados gravam registros em tópicos e os consumidores leem registros de tópicos. Cada registro no Apache Kafka consiste em uma chave, um valor e um carimbo de data/hora e, às vezes, metadados de cabeçalho. O Apache Kafka particiona tópicos e replica essas partições em vários nós chamados agentes. O Apache Kafka é executado como um cluster em um ou mais agentes, e os agentes podem estar localizados em várias zonas de disponibilidade da AWS para criar um cluster altamente disponível. O Apache Kafka conta com o Apache ZooKeeper para coordenar as tarefas do cluster e pode manter o estado dos recursos que interagem com um cluster do Apache Kafka.
 
P: Quando devo usar o Apache Kafka?
O Apache Kafka é usado para oferecer suporte a aplicações em tempo real que transformam, entregam e reagem a dados de streaming e pode ser usado para construir data pipelines de streaming em tempo real que enviam dados de maneira confiável entre vários sistemas ou aplicações.
 
P: O que o Amazon MSK faz?
O Amazon MSK facilita o início e a execução de versões de código aberto do Apache Kafka na AWS com alta disponibilidade e segurança. O Amazon MSK também oferece integrações com serviços da AWS sem a sobrecarga operacional de executar um cluster Apache Kafka. O Amazon MSK permite usar e configurar versões de código aberto do Apache Kafka enquanto o serviço gerencia a configuração, o provisionamento, as integrações da AWS e a manutenção contínua dos clusters do Apache Kafka.

Com alguns cliques no console, é possível criar um cluster do Amazon MSK. A partir daí, o Amazon MSK substitui os agentes que não estão íntegros, replica automaticamente os dados para alta disponibilidade, gerencia os nós do Apache ZooKeeper, implanta automaticamente os patches de hardware conforme necessário, gerencia as integrações com os serviços da AWS, torna as métricas importantes visíveis no console e oferece suporte às atualizações de versão do Apache Kafka, para que você possa aproveitar os aprimoramentos da versão de código aberto do Apache Kafka.
 
P: Quais versões do Apache Kafka são compatíveis com o Amazon MSK?
Para ver as versões compatíveis do Apache Kafka, consulte a documentação do Amazon MSK.
 
P: As APIs do Apache Kafka são compatíveis com o Amazon MSK?
Sim, todas as APIs de plano de dados e administração têm suporte nativo no Amazon MSK.
 
P: O Apache Kafka AdminClient é compatível com o Amazon MSK?
Sim.
 
Q: O Amazon MSK oferece suporte a registro de esquema?
Sim, os clientes do Apache Kafka podem usar o AWS Glue Schema Registry, recurso sem servidor do AWS Glue, sem custo adicional. Consulte a documentação do usuário do Schema Registry para saber mais e começar a usar.
 
P: Como faço para começar a usar clusters M7g?
O Amazon MSK agora oferece suporte a instâncias M7g baseadas em Graviton 3 de tamanhos “large” a “16xlarge” para executar todas as workloads do Apache Kafka. As instâncias do Graviton vêm com os mesmos benefícios de disponibilidade e durabilidade do MSK, com custos até 24% mais baixos em comparação com as instâncias M5 correspondentes. As instâncias do Graviton oferecem uma throughput por instância até 29% maior em comparação com as instâncias M5 do MSK, o que permite que os clientes executem clusters do MSK com menos agentes ou instâncias menores.

MSK com tecnologia sem servidor

P: O que é o MSK Serverless?
MSK Serverless é um tipo de cluster do Amazon MSK que torna mais fácil a execução dos clusters do Apache Kafka sem a necessidade de gerenciar a capacidade de computacional e de armazenamento. Com o MSK Serverless, é possível executar aplicações sem a necessidade de provisionar, configurar e otimizar clusters, e você paga pelo volume de dados que transmite e retém.

P: O MSK Serverless equilibra automaticamente as partições dentro de um cluster?
Sim. O MSK Serverless gerencia totalmente as partições, incluindo o monitoramento e a movimentação, para que sejam balanceadas até mesmo através de um cluster.

P: Qual a capacidade de taxa de transferência de dados que o MSK Serverless suporta?
O MSK Serverless fornece até 200 MBps de capacidade de gravação e 400 MBps de capacidade de leitura por cluster. Além disso, para garantir disponibilidade de taxa de transferência suficiente para todas as partições em um cluster, o MSK Serverless aloca até 5 MBps de capacidade de gravação instantânea e 10 MBps de capacidade de leitura instantânea por partição.

P: Quais recursos de segurança o MSK Serverless oferece?
O MSK Serverless criptografa todo o tráfego em trânsito e todos os dados em repouso utilizando chaves gerenciadas por serviço emitidas através do AWS Key Management Service (KMS). Os clientes se conectam ao MSK Serverless através de uma conexão privada usando AWS PrivateLink sem expor seu tráfego à internet pública. Além disso, o MSK Serverless oferece o IAM Access Control, sendo possível gerenciar a autenticação do cliente e a autorização do cliente para recursos Apache Kafka, tais como tópicos.

P: Como os produtores e consumidores podem acessar meus clusters do MSK Serverless?
Quando você cria um cluster no MSK Serverless, você fornece sub-redes de uma ou mais Amazon Virtual Private Clouds (VPCs) que hospedam os clientes do cluster. Os clientes hospedados em qualquer um destes VPCs poderão se conectar ao cluster do MSK Serverless usando sua cadeia de agentes bootstrap.

P: Quais regiões o MSK Serverless está disponível?
Consulte a página de preços do MSK para obter informações atualizadas sobre disponibilidade regional.

P: Quais tipos de autenticação são compatíveis com o MSK Serverless?
O MSK Serverless é compatível com o AWS IAM para autenticação e autorização de clientes. Os clientes podem assumir uma função do AWS IAM para autenticação e você pode reforçar o controle de acesso usando uma política do IAM associada.

P: Como processo dados no meu cluster do MSK Serverless?
Você pode usar quaisquer ferramentas compatíveis com o Apache Kafka para processar dados em seus tópicos de clusters do MSK Serverless. O MSK Serverless se integra com o Amazon Managed Service for Apache Flink para processamento de transmissões com estado e o AWS Lambda para processamento de eventos. Você também pode usar os conectores de coletor Apache Kafka Connect para enviar dados para qualquer destino desejado.

P: Como o MSK Serverless garante alta disponibilidade?
Quando você cria uma partição, o MSK Serverless cria 2 réplicas da partição e as coloca em diferentes zonas de disponibilidade. Além disso, o MSK Serverless detecta e recupera automaticamente recursos backend que falharam para manter a alta disponibilidade.

Produção e consumo de dados

P: Posso usar as APIs do Apache Kafka para inserir e retirar dados do Apache Kafka?
Sim, o Amazon MSK oferece suporte às APIs nativas de produtor e consumidor do Apache Kafka. Seu código de aplicativo não precisa ser alterado quando os clientes começam a trabalhar com clusters no Amazon MSK.

P: Posso usar o Apache Kafka Connect, o Apache Kafka Streams ou qualquer outro componente de ecossistema do Apache Kafka com o Amazon MSK?
Sim, você pode usar qualquer componente que aproveite as APIs de produtor e consumidor do Apache Kafka e o Apache Kafka AdminClient. As ferramentas que fazem upload de arquivos .jar para os clusters do Apache Kafka não são compatíveis no momento com o Amazon MSK, incluindo Confluent Control Center, Confluent Auto Data Balancer e o Uber uReplicator.

Migração para o Amazon MSK

P: Posso migrar dados do meu cluster existente do Apache Kafka para o Amazon MSK?
Sim, você pode usar ferramentas de terceiros ou ferramentas de código aberto, como o MirrorMaker, compatível com o Apache Kafka, para replicar dados de clusters em um cluster do Amazon MSK. Aqui está um laboratório de migração do Amazon MSK que pode ajudar você a concluir uma migração.

Upgrades de versão

P: O Apache Kafka oferece suporte às atualizações de versão? 
Sim, o Amazon MSK suporta atualizações de versões Apache Kafka totalmente gerenciadas no local para clusters provisionados. Para saber mais sobre a atualização de versão do Apache Kafka e as práticas recomendadas de alta disponibilidade, consulte a documentação de atualizações de versão.

Clusters

P: Como faço para criar meu primeiro cluster do Amazon MSK?
É possível criar seu primeiro cluster com alguns cliques no console de gerenciamento da AWS ou usando os AWS SDKs. Primeiro, no console do Amazon MSK, selecione uma região da AWS na qual o cluster do Amazon MSK será criado. Escolha um nome para seu cluster, a Virtual Private Cloud (VPC) com o qual você deseja executar o cluster, e as sub-redes para cada zona de disponibilidade. Se você estiver criando um cluster provisionado, será possível escolher também um tipo de instância de agente, quantidade de agentes por zona de disponibilidade, e armazenamento por agente.
 
P: Quais recursos estão dentro de um cluster?
Cada cluster contém instâncias do agente, armazenamento provisionado e nós abstraídos do Apache ZooKeeper. Os clusters sem servidores são um recurso em si mesmos, que abstraem todos os recursos subjacentes.
 
P: Quais tipos de instâncias de agente posso provisionar em um cluster do Amazon MSK?
Para clusters provisionados, você pode escolher a EC2 T3.small ou instâncias dentro das famílias de instâncias M7g e M5 do EC2. Para clusters com tecnologia sem servidor, os agentes são abstraídos de forma completa.
 
P: O Amazon MSK oferece definição de preço para instância reservada?
Não neste momento.
 
P: Preciso provisionar e pagar por volumes de inicialização do agente?
Não, cada agente que você provisiona inclui o volume de armazenamento de inicialização gerenciado pelo serviço Amazon MSK.
 
P: Quando eu crio um cluster do Apache Kafka, os recursos subjacentes (por exemplo, instâncias do Amazon EC2) aparecem no meu console do EC2?
Alguns recursos, como interfaces de rede elástica (ENIs), serão exibidos na sua conta do Amazon EC2. Outros recursos do Amazon MSK não serão exibidos na sua conta do EC2, pois são gerenciados pelo serviço Amazon MSK.
 
P: O que é preciso para provisionar em um cluster do Amazon MSK?
Para clusters provisionados, é necessário provisionar as instâncias do agente e o armazenamento do agente em cada cluster criado. Como opção, você pode provisionar taxa de transferência de armazenamento para volumes de armazenamento, que pode ser usada para escalar E/S ininterruptamente sem ter que provisionar agentes adicionais. Não é necessário provisionar os nós do Apache ZooKeeper, pois esses recursos são incluídos sem custo adicional em cada cluster criado. Para clusters sem servidor, o cluster é criado apenas como um recurso.
 
P: Qual é a configuração padrão do agente para um cluster?
A menos que especificado de outra forma, o Amazon MSK usa os mesmos padrões especificados pela versão de código aberto do Apache Kafka. As configurações padrão para ambos os tipos de cluster estão documentadas aqui.
P: É possível provisionar agentes de forma que eles fiquem desbalanceados nas zonas de disponibilidade (por exemplo, 3 em Leste dos EUA-1a, 2 em Leste dos EUA-1b, 1 em Leste dos EUA-1c)?
Não, o Amazon MSK impõe a melhor prática de balanceamento de quantidades de agentes em AZs dentro de um cluster.

P: Como funciona a replicação de dados no Amazon MSK?
O Amazon MSK usa a replicação líder-seguidor do Apache Kafka para replicar dados entre os agentes. O Amazon MSK facilita a implantação de clusters com replicação de várias zonas de disponibilidade e oferece a opção de usar uma estratégia de replicação personalizada por tópico. Por padrão, com cada uma das opções de replicação, os agentes líder e seguidor serão implantados e isolados usando a estratégia de replicação especificada. Por exemplo, se você selecionar uma estratégia de replicação de agente de três AZs com um agente por cluster da AZ, o Amazon MSK criará um cluster de três agentes (um agente em três AZs de uma região) e, por padrão (a menos que você escolha substituir o fator de replicação de tópico), o fator de replicação de tópico também será três.

P: Posso alterar as configurações padrão do agente ou carregar uma configuração de cluster no Amazon MSK?
Sim, o Amazon MSK permite criar configurações personalizadas e aplicá-las a clusters novos e existentes. Para obter mais informações sobre configurações personalizadas, consulte a documentação da configuração.

P: Quais propriedades de configuração posso personalizar?
As propriedades de configurações que você pode personalizar estão documentadas aqui.

P: Qual é a configuração padrão de um novo tópico?
O Amazon MSK usa a configuração padrão do Apache Kafka, a menos que seja especificado de outra forma aqui.

Tópicos

P: Como faço para criar tópicos?
Depois que seu cluster do Apache Kafka for criado, você poderá criar tópicos usando as APIs do Apache Kafka. Todas as ações e configurações de nível de partição e tópico são executadas usando as APIs do Apache Kafka. O seguinte comando é um exemplo de criação de um tópico usando APIs do Apache Kafka e os detalhes de configuração disponíveis para seu cluster:

bin/kafka-topics.sh --create —bootstrap-server <BootstrapBrokerString> --replication factor 3 --partitions 1 --topic TopicName

Redes

P: O Amazon MSK é executado em uma Amazon VPC?
Sim, o Amazon MSK sempre é executado em uma Amazon VPC gerenciado pelo serviço Amazon MSK. Os recursos do Amazon MSK estarão disponíveis para a sua própria Amazon VPC, sub-rede e grupo de segurança que você selecionar quando o cluster for configurado. Os endereços IP da sua VPC são anexados aos recursos do Amazon MSK por meio de interfaces de rede elásticas (ENIs), e todo o tráfego de rede permanece dentro da rede da AWS e não está acessível à Internet por padrão.

P: Como os agentes no meu cluster do Amazon MSK serão acessíveis para os clientes na minha VPC?
Os agentes em seu cluster serão disponibilizados para clientes em seu VPC por meio de ENIs que aparecem em sua conta. Os Grupos de segurança nas ENIs ditarão a origem e o tipo de tráfego de entrada e saída permitido em seus agentes.

P: É possível conectar-se ao meu cluster pela Internet pública?
Sim, o Amazon MSK oferece uma opção para se conectar com segurança aos agentes de clusters do Amazon MSK que executam o Apache Kafka 2.6.0 ou versões posteriores pela Internet. Ao habilitar o acesso público, clientes autorizados e externos a uma Amazon Virtual Private Cloud (VPC) privada podem transmitir dados criptografados para dentro e para fora de clusters específicos do Amazon MSK. Você pode habilitar o acesso público para clusters MSK após a criação de um cluster sem custo adicional, mas os custos padrão de transferência de dados da AWS para entrada e saída do cluster são aplicáveis. Para saber mais sobre como ativar o acesso público, consulte a documentação de acesso público.

P: A conexão entre meus clientes e um cluster do Amazon MSK é privada?
Por padrão, a única maneira pela qual os dados podem ser produzidos e consumidos a partir de um cluster do Amazon MSK é por meio de uma conexão privada entre seus clientes na sua VPC e o cluster do Amazon MSK. No entanto, se você ativar o acesso público ao cluster do Amazon MSK e se conectar ao cluster MSK usando a string pública de corretores de bootstrap, a conexão, embora autenticada, autorizada e criptografada, não será mais considerada privada. Recomendamos que você configure os grupos de segurança do cluster para ter regras TCP de entrada que permitam o acesso público a partir do seu endereço IP confiável e torne essas regras o mais restritivas possível se você ativar o acesso público.

Como conectar à VPC

Pergunta: Como faço para me conectar ao meu cluster do Amazon MSK pela Internet?
A maneira mais fácil é ativar a conectividade pública pela Internet para os agentes de clusters do MSK que executam o Apache Kafka 2.6.0 ou versões posteriores. Por motivos de segurança, você não pode ativar o acesso público ao criar um cluster do MSK. No entanto, pode atualizar um cluster existente para torná-lo acessível publicamente. Você também pode criar um novo cluster e atualizá-lo para torná-lo acessível publicamente. Para saber mais sobre como ativar o acesso público, consulte a documentação de acesso público.

Pergunta: Como faço para me conectar ao meu cluster do Amazon MSK de dentro da rede da AWS, mas fora da Amazon VPC do cluster?
Você pode se conectar ao seu cluster do MSK a partir de qualquer conta VPC ou AWS diferente da do seu cluster do MSK ao ativar a conectividade privada de várias VPCs para clusters do MSK que executam as versões 2.7.1. ou versões posteriores do Apache Kafka. Você só pode ativar a conectividade privada após a criação do cluster para qualquer um dos esquemas de autenticação compatíveis (autenticação IAM, SASL SCRAM e autenticação mTLS). Você deve configurar seus clientes para se conectarem de forma privada ao cluster usando conexões VPC gerenciadas pelo Amazon MSK que usam a tecnologia AWS PrivateLink para permitir a conectividade privada. Para saber mais sobre como configurar a conectividade privada, consulte Acesso a partir da documentação da AWS.

Criptografia

P: É possível criptografar dados no meu cluster do Amazon MSK?
Sim, o Amazon MSK utiliza a criptografia do lado do servidor do Amazon Elastic Block Store (Amazon EBS) e as chaves do AWS Key Management Service (AWS KMS) para criptografar volumes de armazenamento.

P: Os dados são criptografados em trânsito entre agentes em um cluster do Amazon MSK?
Sim. Por padrão, os novos clusters têm a criptografia em trânsito habilitada por meio de TLS para comunicação entre agentes. Para clusters provisionados, é possível desabilitar o uso da criptografia em trânsito quando um cluster é criado.

P: Os dados são criptografados em trânsito entre meus clientes do Apache Kafka e o serviço Amazon MSK?
Sim, por padrão, a criptografia em trânsito é definida como somente TLS para clusters criados pela CLI ou pelo Console de Gerenciamento da AWS. A configuração adicional é necessária para que os clientes se comuniquem com clusters usando a criptografia de TLS. Para clusters provisionados, é possível alterar a configuração de criptografia padrão selecionando as configurações de TLS/texto simples ou de texto simples. Leia mais: sobre criptografia do MSK.

P: Os dados são criptografados em trânsito à medida que se movem entre corretores e nós do Apache ZooKeeper em um cluster do Amazon MSK?
Sim, os clusters do Amazon MSK que executam o Apache Kafka versão 2.5.1 ou superior oferecem suporte à criptografia TLS em trânsito entre os corretores Apache Kafka e os nós do ZooKeeper.

Gerenciamento de acesso

P: Como posso controlar a autenticação do cluster e a autorização da API do Apache Kafka?
Para clusters sem servidor, é possível usar o IAM Access Control para autenticação e autorização. Para clusters provisionados, existem três opções: 1) AWS Identity and Access Management (IAM) Access Control para AuthN/Z (recomendado), 2) autenticação de certificado TLS (CA) para AuthN e listas de controle de acesso para AuthZ, e 3) SASL/SCRAM para AuthN e listas de controle de acesso para AuthZ. O Amazon MSK recomenda o uso do IAM Access Control. É o mais fácil de usar e, como o padrão é o acesso com privilégio mínimo, a opção mais segura.

P: Como funciona a autorização no Amazon MSK?
Se você estiver usando o IAM Access Control, o Amazon MSK usa as políticas que você escrever e seu próprio autorizador para autorizar ações. Se você estiver usando autenticação de certificado TLS ou o SASL/SCRAM, o Apache Kafka usará listas de controle de acesso (ACLs) para autorização. Para habilitar as ACLs, é necessário habilitar a autenticação de clientes usando certificados TLS ou SASL/SCRAM.

P: Como posso autenticar e autorizar um cliente ao mesmo tempo?
Se você estiver usando o controle de acesso IAM, o Amazon MSK autenticará e autorizará para você sem qualquer configuração adicional. Se você usa autenticação TLS, poderá utilizar o Dname de certificados TLS de clientes como principal da ACL para autorizar solicitações de clientes. Se você usa SASL/SCRAM, poderá utilizar o nome de usuário como principal da ACL para autorizar solicitações de clientes.

P: Como posso controlar as ações da API de serviço?
Você pode controlar as ações da API do serviço usando o AWS Identity and Access Management (IAM).

P: É possível habilitar o IAM Access Control para um cluster existente?
Sim, é possível habilitar o IAM Access Control para um cluster existente do Console AWS ou usando a API UpdateSecurity.

P: É possível usar o IAM Access Control fora do Amazon MSK?
Não, o IAM Access Control está disponível apenas para clusters do Amazon MSK.

P: Como faço para fornecer permissões de acesso entre contas a um cliente Apache Kafka em uma conta da AWS diferente da Amazon MSK para se conectar de forma privada ao meu cluster Amazon MSK?
Você pode anexar uma política de cluster ao seu cluster Amazon MSK para fornecer ao seu cliente Apache Kafka permissões entre contas para configurar conectividade privada com seu cluster do Amazon MSK. Ao usar a autenticação do cliente do IAM, você também pode usar a política de cluster para definir granularmente as permissões do plano de dados do Apache Kafka para o cliente conectado. Para saber mais sobre políticas de cluster, consulte a documentação da política de cluster.

Monitoramento, métricas, registro e marcação

P: Como monitoro a performance de clusters ou tópicos?
Você pode monitorar a performance de clusters usando o console do Amazon MSK, o console do Amazon CloudWatch ou por meio das métricas de JMX e host usando o Open Monitoring com Prometheus, uma solução de monitoramento de código aberto.

P: Qual é o custo para ter diferentes níveis de monitoramento do CloudWatch?
O custo para monitorar um cluster usando o Amazon CloudWatch depende do nível de monitoramento e do tamanho do cluster do Apache Kafka. O Amazon CloudWatch cobra por métrica mensal e inclui um nível gratuito. Consulte a definição de preço do Amazon CloudWatch para obter mais informações. Para obter mais detalhes sobre o número de métricas expostas para cada nível de monitoramento, consulte a documentação de monitoramento do Amazon MSK.

P: Quais ferramentas de monitoramento são compatíveis com o Open Monitoring com Prometheus?
As ferramentas projetadas para ler exportadores do Prometheus são compatíveis com o Open Monitoring, como: Datadog, Lenses, New Relic, Sumo Logic ou um servidor do Prometheus. Para obter detalhes sobre o Open Monitoring, consulte a documentação do Open Monitoring do Amazon MSK.

P: Como monitoro a integridade e a performance de clientes?
Você pode usar qualquer monitoramento do lado do cliente compatível com a versão do Apache Kafka que está usando.

P: Posso etiquetar recursos do Amazon MSK?
Sim, você pode etiquetar clusters do Amazon MSK pela AWS Command Line Interface (AWS CLI) ou pelo console AWS.

P: Como monitoro o atraso do consumidor?
As métricas de atraso do consumidor de nível de tópico estão disponíveis como parte do conjunto padrão de métricas que o Amazon MSK publica no Amazon CloudWatch para todos os clusters. Nenhuma configuração adicional é necessária para obter essas métricas. Para clusters provisionados, é possível obter métricas de atraso do consumidor em nível de partição (dimensão da partição). Para fazer isso, habilite um monitoramento melhorado (PER_PARTITION_PER_TOPIC) (POR_PARTIÇÃO_POR_TÓPICO) em seu cluster. Como alternativa, é possível habilitar o Open Monitoring no cluster e usar o servidor Prometheus para capturar métricas em nível de partição dos agentes do cluster. As métricas de atraso do consumidor estão disponíveis na porta 11001, assim como outras métricas do Apache Kafka.

P: Qual o custo para publicar a métrica de atraso do consumidor no Amazon CloudWatch?
As métricas de nível de tópico estão incluídas no conjunto padrão de métricas do Amazon MSK, que é gratuito. As métricas de nível de partição são cobradas de acordo com a definição de preço do Amazon CloudWatch.

P: Como acesso logs de agentes do Apache Kafka?
É possível habilitar a entrega de log de agentes para clusters provisionados. É possível entregar logs de agentes para o Amazon CloudWatch Logs, Amazon Simple Storage Service (S3) e Amazon Kinesis Data Firehose. O Kinesis Data Firehose oferece suporte ao Amazon OpenSearch Service, entre outros destinos. Para saber como habilitar esse recurso, consulte a documentação sobre registro em log do Amazon MSK. Para conhecer a definição de preço, consulte as páginas de definição de preço do CloudWatch Logs e do Kinesis Data Firehose.

P: Qual é o nível de registro em log dos logs de agentes?
O Amazon MSK fornece logs no nível INFO para todos os agentes em um cluster provisionado.

P: Como acesso logs do Apache ZooKeeper?
Você pode solicitar logs do Apache ZooKeeper com um tíquete de suporte.

P: É possível registrar em log o uso de APIs de recursos do Apache Kafka, como criação de tópicos?
Sim, se você usa o Controle de Acesso do IAM, o uso de APIs de recursos do Apache Kafka é registrado no AWS CloudTrail.

Gerenciamento de metadados

P: O que é o Apache ZooKeeper?
Retirado de https://zookeeper.apache.org: “O Apache ZooKeeper é um serviço centralizado para manter informações de configuração, nomear, fornecer sincronização distribuída e fornecer serviços de grupo. Todos esses tipos de serviços são usados de uma forma ou de outra por aplicações distribuídas,” incluindo o Apache Kafka.

P: O Amazon MSK usa o Apache ZooKeeper?
Sim, o Amazon MSK usa o Apache ZooKeeper para gerenciar metadados. Além disso, a partir do Apache Kafka versão 3.7, é possível criar clusters no modo ZooKeeper ou no modo KRaft. Um cluster criado com o modo KRaft usa controladores KRaft para gerenciamento de metadados em vez dos nós do ZooKeeper.

P: O que é o KRaft?
O Kraft (Apache Kafka Raft) é o protocolo de consenso que muda o gerenciamento de metadados em clusters do Apache Kafka de nós externos do Apache ZooKeeper para um grupo de controladores dentro do Apache Kafka. Essa alteração permite que os metadados sejam armazenados e replicados como tópicos nos brokers Apache Kafka, resultando em uma propagação mais rápida dos metadados. Consulte nosso guia do desenvolvedor.

P: Há alguma alteração na API necessária para usar o modo KRaft no Amazon MSK versus no modo ZooKeeper?
Não é necessário fazer alterações na API para usar o modo KRaft no Amazon MSK. No entanto, se seus clientes ainda usam a string de conexão --zookeeper, será necessário atualizá-los para usar a string de conexão --bootstrap-server para se conectar ao seu cluster e realizar ações administrativas. O sinalizador --zookeeper foi descontinuado na versão 2.5 do Apache Kafka e foi removido a partir do Apache Kafka 3.0. Portanto, recomendamos usar as versões recentes do cliente Apache Kafka e a string de conexão --bootstrap-server.

P: Eu tenho ferramentas que se conectam ao ZooKeeper; como elas funcionarão para clusters KRaft sem o ZooKeeper?
Você deve verificar se todas as ferramentas usadas são capazes de usar APIs de administração do Apache Kafka sem conexões com o ZooKeeper. Por exemplo, consulte nossa documentação atualizada sobre o uso do Cruise Control para clusters do modo KRaft. O Cruise Control também publicou as etapas a seguir para executar o Apache Kafka sem a conexão com o ZooKeeper.

P: Posso hospedar mais partições por agente em clusters baseados em Kraft do que em clusters baseados em ZooKeeper?
O número de partições por agente é o mesmo nos clusters baseados em KRaft e ZooKeeper. No entanto, o KRaft permite que você hospede mais partições por cluster provisionando mais corretores em um cluster.

Integrações

P: Com quais serviços da AWS o Amazon MSK se integra?
O Amazon MSK se integra a:

 

O Amazon MSK Serverless se integra a:
  • Amazon S3, usando o Kinesis Data Firehose para entregar dados ao Amazon S3 a partir do MSK com facilidade e sem código.
  • Amazon VPC, para isolamento e segurança de rede
  • Amazon CloudWatch para métricas
  • Amazon IAM para autenticação e autorização do Apache Kafka e APIs de serviço.
  • AWS Glue Schema Registry para controlar a evolução dos esquemas usados pelas aplicações do Apache Kafka
  • AWS CloudTrail para logs de APIs da AWS
  • AWS PrivateLink para conectividade privada

Escalabilidade

P: Como posso aumentar a escala na vertical do armazenamento do meu cluster?
É possível aumentar a escala do armazenamento de seu cluster provisionado na vertical usando o Console de gerenciamento da AWS ou a AWS CLI. Também é possível usar armazenamento em camadas para praticamente armazenar dados ilimitados em seu cluster sem precisar adicionar agentes para armazenamento. Para clusters sem servidor, o armazenamento é escalonado de forma integral de acordo com o uso.
 
P: Como funciona o armazenamento em camadas?
O Apache Kafka armazena dados em arquivos chamados segmentos de log. Conforme cada segmento é concluído, com base no tamanho configurado no cluster ou no nível do tópico, ele é copiado para o armazenamento de baixo custo. Os dados são mantidos em armazenamento otimizado para performance por um tempo ou tamanho de retenção especificado e, em seguida, são excluídos. Há uma configuração separada para limite te tempo e tamanho para o armazenamento de baixo custo, que será maior que a do nível de armazenamento primário. Se os clientes solicitarem dados de segmentos armazenados no nível de baixo custo, o agente lerá e servirá os dados como se eles estivessem sendo servidos a partir do armazenamento primário.

P: Como posso expandir automaticamente o armazenamento em meu cluster?
Você pode criar uma política de escalabilidade automática para armazenamento usando o Console de gerenciamento da AWS ou criando uma política da AWS Application Auto Scaling usando a AWS CLI ou APIs.
 
Posso escalar o número de agentes em um cluster existente?
Sim. É possível aumentar ou diminuir horizontalmente a escala do número de agentes para clusters provisionados do Amazon MSK.

P: Posso escalar o tamanho de um agente em um cluster existente?
Sim. Você pode escolher por escalar para um tipo de agente menor ou maior em seus clusters provisionados do Amazon MSK.

P: Como equilibro as partições entre os agentes?
Você pode usar o Cruise Control para reequilibrar automaticamente as partições para gerenciar a movimentação de E/S. Consulte a documentação do Cruise Control para obter mais informações. Como alternativa, você pode usar a API Apache Kafka Admin kafka-reassign-partitions.sh para reatribuir partições entre corretores. Para clusters sem servidor, o Amazon MSK reequilibra automaticamente as partições.

Definição de preço e disponibilidade

P: Como funciona a definição de preço do Amazon MSK?
A definição de preço depende dos recursos criados. Saiba mais acessando a página definição de preço.

P: Eu pago pela transferência de dados resultante da replicação de dados?
Não, todas as transferências de dados no cluster estão incluídas no serviço sem custo adicional.

P. Quais regiões da AWS oferecem o Amazon MSK?
A disponibilidade de regiões do Amazon MSK está documentada aqui.

P. Como funciona a definição de preço para a transferência de dados?
Com os clusters provisionados, você pagará taxas de transferência de dados padrão AWS para dados transferidos dentro e fora de um cluster do Amazon MSK. Você não será cobrado pela transferência de dados dentro do cluster em uma região, incluindo a transferência de dados entre os agentes e a transferência de dados entre os agentes e os nós do Apache ZooKeeper.

Com clusters sem servidor, você pagará taxas padrão de cobrança de transferência de dados AWS por dados transferidos de ou para outra região e por dados transferidos para fora da internet pública.

Conformidade

P: Quais programas de conformidade estão no escopo do Amazon MSK?
O Amazon MSK é compatível ou qualificado com/para os seguintes programas:

  • Qualificado pela HIPAA
  • PCI
  • ISO
  • SOC 1, 2, 3

Para obter uma lista completa dos serviços e programas de conformidade da AWS, consulte Serviços da AWS no escopo pelo programa de conformidade.

Acordo de Nível de Serviço

P: O que o SLA do Amazon MSK garante?
Nosso SLA do Amazon MSK garante uma porcentagem de tempo de atividade mensal de, no mínimo, 99,9% para o Amazon MSK (incluindo o MSK Serverless e o MSK Connect).
 
P: Como é possível saber se me qualifico para um crédito de serviço do SLA?
Você estará qualificado para um crédito do SLA para o Amazon MSK nos termos do SLA do Amazon MSK se as implantações Multi-AZ no Amazon MSK tiverem uma porcentagem de tempo de atividade mensal inferior a 99,9% durante qualquer ciclo de faturamento mensal.
 
Para obter detalhes completos sobre todos os termos e condições do SLA, bem como detalhes sobre como enviar uma declaração, consulte a página de detalhes do SLA do Amazon MSK.

Replicação

P: O que é o Replicador do Amazon MSK?
O Replicador do Amazon MSK é um recurso do Amazon MSK que permite aos clientes replicar dados de forma confiável em clusters do Amazon MSK em diferentes regiões da AWS (replicação entre regiões) ou dentro da mesma região da AWS (replicação na mesma região), sem escrever código ou gerenciar a infraestrutura. Você pode usar a replicação entre regiões (CRR) para criar aplicativos de streaming multirregional altamente disponíveis e tolerantes a falhas para aumentar a resiliência. Você também pode usar a CRR para fornecer acesso de baixa latência a consumidores em diferentes regiões geográficas. Você pode usar o SRR para distribuir dados de um cluster para vários clusters para compartilhar dados com seus parceiros e equipes. Você também pode usar SRR ou CRR para agregar dados de vários clusters em um para analytics.

P: Como faço para usar o MSK Replicator?
Para configurar a replicação entre um par de clusters MSK de origem e destino, você precisa criar um replicador na região de destino da AWS. Para criar um replicador, especifique detalhes que incluem o nome do recurso da Amazon (ARN) dos clusters MSK de origem e destino e uma função do AWS Identity and Access Management (IAM) que o MSK Replicator pode usar para acessar os clusters. Você precisará criar o cluster MSK de destino, caso ele ainda não exista. Você também tem a opção de definir configurações adicionais, incluindo a configuração do nome do tópico e a posição inicial do Replicador.

P: Quais tipos de clusters do Kafka são compatíveis com o MSK Replicator?
O MSK Replicator oferece suporte à replicação somente em clusters MSK. Há suporte para clusters MSK do tipo provisionado e sem servidor. Você também pode usar o MSK Replicator para passar de provisionado para sem servidor ou vice-versa. Outros clusters do Kafka não são suportados.

P: Posso especificar quais tópicos eu quero replicar?
Sim, você pode especificar quais tópicos deseja replicar usando listas de permissão e negação ao criar o Replicador.

P: O MSK Replicator replica configurações de tópicos e compensações de grupos de consumidores?
Sim. O MSK Replicator replica automaticamente os metadados necessários do Kafka, como configuração de tópicos, listas de controle de acesso (ACLs) e compensações de grupos de consumidores, para que os aplicativos consumidores possam retomar o processamento sem problemas após o failover. Você pode optar por desativar uma ou mais dessas configurações se quiser apenas replicar os dados. Você também pode especificar quais grupos de consumidores deseja replicar usando listas de permissão ou negação ao criar o Replicador.

P: Preciso escalar a replicação quando meu throughput de entrada muda?
Não, o MSK Replicator implanta, provisiona e escala automaticamente a infraestrutura de replicação subjacente para suportar mudanças em seu throughput de entrada.

P: Posso replicar dados entre clusters do MSK em diferentes contas da AWS?
Não, o MSK Replicator só oferece suporte à replicação entre clusters MSK na mesma conta da AWS.

P: Como posso monitorar a replicação?
Você pode usar o Amazon CloudWatch na região de destino para visualizar métricas de “ReplicationLatency, MessageLag e ReplicatorThroughput” em um nível de tópico e agregado para cada replicador, sem custo adicional. As métricas seriam visíveis em ReplicatorName no espaço de nome “AWS/Kafka”. Você também pode ver as métricas “ReplicatorFailure, AuthError e ThrottleTime” para verificar se o replicador está enfrentando algum problema.

P: Posso usar o MSK Replicator para replicar dados de um cluster para vários clusters ou replicar dados de vários clusters para um?
Sim. Você só precisa criar um replicador diferente para cada par de clusters de origem e destino.

P: Como o MSK Replicator se conecta aos clusters MSK de origem e de destino?
O MSK Replicator usa o IAM Access Control para se conectar aos clusters de origem e de destino. Você precisa ativar seus clusters MSK de origem e destino para o IAM Access Control para criar um replicador. Você pode continuar usando outros métodos de autenticação, incluindo SASL/SCRAM e mTLS, ao mesmo tempo para seus clientes, já que o Amazon MSK oferece suporte a vários métodos de autenticação simultaneamente.

P: Quanta latência de replicação devo esperar com o MSK Replicator?
O MSK Replicator replica os dados de forma assíncrona. A latência de replicação varia com base em muitos fatores, incluindo a distância de rede entre as regiões da AWS de seus clusters MSK, a capacidade de throughput dos clusters de origem e de destino e o número de partições em seus clusters de origem e destino. Se estiver enfrentando alta latência, siga nosso guia de solução de problemas.

P: Posso manter os mesmos nomes de tópicos com o MSK Replicator?
Sim. O Replicador do MSK permite que você selecione uma configuração de nome de tópico entre “Prefixo” e “Idêntico” ao criar um novo replicador. Por padrão, o Replicador do MSK cria novos tópicos no cluster de destino com um prefixo gerado automaticamente adicionado ao nome do tópico. Por exemplo, o MSK Replicator replicará dados em “tópico” do cluster de origem para um novo tópico no cluster de destino chamado “<sourceKafkaClusterAlias>.topic”. Você pode encontrar o prefixo que será adicionado aos nomes dos tópicos no cluster de destino no campo “sourceKafkaClusterAlias” usando a API DescribeReplicator ou a página de detalhes do Replicator no console MSK. Se quiser replicar tópicos para o cluster de destino enquanto preserva os nomes originais, basta definir a configuração do nome do tópico como “Idêntico”.

P: Por que eu deveria usar a configuração de nome de tópico “idêntico”?
Você deve usar a configuração de nome de tópico idêntico para simplificar a criação de arquiteturas de dados de streaming altamente disponíveis e resilientes nas regiões da AWS. Ao replicar tópicos do Kafka para outros clusters do Amazon MSK e preservar os nomes dos tópicos originais, essa configuração reduz a necessidade de reconfigurar aplicativos clientes durante a configuração da replicação ou eventos de failover. Isso facilita o estabelecimento de configurações de cluster ativo-passivo abrangendo várias regiões para aumentar a resiliência e a disponibilidade. Ele também simplifica casos de uso, como agregação de dados em clusters, migrações entre clusters do MSK e distribuição de dados para várias regiões. Você não deve usar essa configuração se seus clientes não puderem processar dados quando houver metadados adicionais adicionados aos cabeçalhos de registros Kafka.

P: Existe o risco de ciclos de replicação infinitos com a configuração de nome de tópico “idêntico”?
Não. O Replicador do MSK impede automaticamente que os registros sejam replicados de volta ao tópico do Kafka de onde se originaram, evitando assim ciclos infinitos de replicação. Para conseguir isso, como parte da replicação, o MSK Replicator adiciona metadados aos cabeçalhos dos seus registros.

P: Posso atualizar meu replicador existente para usar a configuração de nome de tópico idêntico?
Não. A configuração do nome do tópico não pode ser alterada após a criação de um replicador.

P: Como posso usar a replicação para aumentar a resiliência do meu aplicativo de streaming em todas as regiões?
Você pode usar o MSK Replicator para configurar topologias de cluster ativo-ativo ou ativo-passivo para aumentar a resiliência do seu aplicativo Kafka em todas as regiões. Em uma configuração ativa-ativa, os dois clusters MSK estão servindo ativamente leituras e gravações. Comparativamente, em uma configuração ativa-passiva, apenas um cluster MSK por vez está servindo ativamente dados de streaming, enquanto o outro cluster está em espera. Recomendamos que você use a configuração de nome de tópico “Idêntico” para a configuração ativo-passiva e a configuração “Prefixo” para a configuração ativo-ativa. No entanto, usar a configuração de “Prefixo” exigirá que você reconfigure seus consumidores para ler os tópicos replicados. Se quiser evitar a reconfiguração de seus clientes, você também pode usar a configuração “Idêntico” para configuração ativa-ativa. No entanto, você pagará taxas adicionais de processamento e transferência de dados para cada replicador, pois cada replicador precisará processar o dobro da quantidade normal de dados, uma vez para replicação e outra para evitar loops infinitos.

P: Quais versões do Kafka oferecem suporte à configuração de nomes de tópicos idênticos?
Ele é compatível com todos os clusters do MSK executados nas versões 2.8.1 e superiores do Kafka.

P: Posso replicar dados existentes no cluster de origem?
Sim. Por padrão, quando você cria um replicador, ele começa a replicar dados da ponta do fluxo (último deslocamento) no cluster de origem. Como alternativa, se quiser replicar dados existentes, você pode configurar um novo replicador para começar a replicar dados do primeiro deslocamento nas partições de tópicos do cluster de origem.

P: A replicação pode resultar no controle de utilização dos consumidores no cluster de origem?
Como o MSK Replicator atua como consumidor do seu cluster de origem, é possível que a replicação faça com que outros consumidores sejam limitados ao seu cluster de origem. Isso depende da capacidade de leitura que você tem no cluster de origem e do throughput dos dados que você está replicando. Recomendamos que você provisione a capacidade idêntica para seus clusters de origem e de destino e contabilize o throughput de replicação enquanto calcula a capacidade necessária. Você também pode definir cotas do Kafka para o replicador em seus clusters de origem e destino para controlar a capacidade que o replicador pode usar.

P: Posso compactar dados antes de gravar no cluster de destino?
Sim, você pode especificar sua escolha de codec de compressão ao criar o Replicator entre None, GZIP, Snappy, LZ4 e ZSTD.

Comece a usar o Amazon MSK

Calcule seus custos
Calcule seus custos

Visite a página de definição de preço do Amazon MSK

Read the documentation
Consulte o guia de conceitos básicos

Saiba como configurar seu cluster do Apache Kafka no Amazon MSK neste guia passo a passo.

Execute seu cluster do Apache Kafka
Execute seu cluster do Apache Kafka

Comece a executar seu cluster do Apache Kafka no Amazon MSK. Faça login no console do Amazon MSK.