Geral

P: O que é o Amazon MSK?
O Amazon Managed Streaming for Kafka (Amazon MSK) é um novo serviço de dados de streaming da AWS que gerencia a infraestrutura e as operações do Apache Kafka, facilitando para os desenvolvedores e os administradores de DevOps executarem aplicativos do Apache Kafka na AWS sem precisarem se tornar especialistas na operação de clusters do Apache Kafka. O Amazon MSK é um local ideal para executar aplicativos existentes ou novos do Apache Kafka na AWS. O Amazon MSK opera e mantém clusters do Apache Kafka, fornece recursos de segurança de nível empresarial prontos para uso e tem integrações com a AWS incorporadas que aceleram o desenvolvimento de aplicativos de dados de streaming. Para começar, você pode migrar as cargas de trabalho existentes do Apache Kafka para o Amazon MSK ou, com alguns cliques, você pode criar novas em minutos. Não há taxas de transferência de dados para o tráfego no cluster e não são necessários compromissos ou pagamentos iniciais. 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 alto desempenho para criação em tempo real de pipelines e aplicativos 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.
 
P: O que são dados de streaming?
Os dados de streaming são um fluxo contínuo de pequenos registros (um registro tem normalmente alguns kilobytes) gerado por milhares de máquinas, dispositivos, sites e aplicativos. Os dados de streaming incluem uma ampla variedade de dados, como arquivos de log gerados por clientes usando seus aplicativos móveis ou da web, compras de e-commerce, atividade de jogador durante o jogo, informações de redes sociais, pregões financeiros, serviços geoespaciais, e telemetria de serviços conectados ou instrumentação em datacenters. Os serviços de dados de streaming, como o Amazon Managed Streaming for Kafka e o Amazon Kinesis Data Streams, facilitam a coleta, o processamento e a entrega contínuas de 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 maneira tolerante a falhas como uma série contínua de registros e preserva a ordem na qual os registros foram produzidos.
  • O Apache Kafka age como um buffer entre produtores de dados e consumidores de dados. O Apache Kafka permite que muitos produtores de dados (por exemplo, sites, dispositivos IoT, instâncias do Amazon EC2) publiquem continuamente dados de streaming e categorizem esses dados usando os tópicos do Apache Kafka. Diversos consumidores de dados (por exemplo, aplicativos de machine learning, funções do Lambda) leem esses tópicos a uma taxa própria, semelhante a uma fila de mensagens ou um sistema de mensagens corporativo.
  • 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.
 
P: Quais são os principais conceitos do Apache Kafka?
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. O Apache Kafka particiona e replica os tópicos 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 depende do 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 aplicativos em tempo real que transformam, entregam e reagem a dados de streaming e para criar pipelines de dados de streaming em tempo real que obtêm dados de maneira confiável entre vários sistemas ou aplicativos.
 
P: O que o Amazon Managed Streaming for Kafka faz?
O Amazon Managed Streaming for Kafka (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, e proporciona integração com os serviços da AWS sem a sobrecarga operacional de executar um cluster do 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, você pode provisionar um cluster do Amazon MSK. A partir daí, o Amazon MSK substitui os agentes não saudáveis, 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 quando mais de uma versão for compatível, 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?
No momento, o Amazon MSK oferece suporte às versões 1.1.1 e 2.1.0 do Apache Kafka.
 
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.

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, Uber  uReplicator e LinkedIn  Cruise Control.

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, que acompanham o Apache Kafka de código aberto para replicar dados de clusters em um cluster do Amazon MSK.

Atualizações de versão

P: Como o Amazon MSK me permitirá implantar atualizações de versão – secundárias ou importantes – em clusters do Apache Kafka quando o serviço oferecer suporte a mais de uma versão?
Não há suporte para UpdateClusterSoftware durante o período de demonstração do Amazon MSK.
 
P: Como o processo de atualização funcionará em detalhes?
Quando você implanta uma nova versão, o Amazon MSK usa um processo contínuo que atualiza um agente ou um nó do Apache ZooKeeper por vez antes de passar para o próximo recurso. Durante todo o processo de atualização, seu cluster estará em um estado "Atualizando" e fará a transição para um estado "Ativo" quando terminar. É importante observar que, se você optar por não replicar dados para vários agentes em um cluster que está sendo atualizado, seu cluster passará por algum tempo de inatividade.

Clusters

P: Como faço para criar meu primeiro cluster do Amazon MSK?
Você pode criar seu primeiro cluster com alguns cliques no console de gerenciamento da AWS ou usando os AWS SDKs. Primeiro, no console Amazon MSK, selecione uma região da AWS na qual o cluster do Amazon MSK será criado. Escolha um nome para seu cluster, a VPC com o qual você deseja executar o cluster, uma estratégia de replicação de dados para o cluster (três AZ é o padrão para alta durabilidade) e as sub-redes para cada AZ. Em seguida, escolha um tipo de instância do agente e a quantidade de agentes por AZ e clique em criar.

P: Quais recursos estão dentro de um cluster?
Cada cluster contém instâncias do agente, armazenamento provisionado e nós do Apache ZooKeeper.

P: Que tipos de instâncias do agente posso provisionar em um cluster do Amazon MSK?
Você pode escolher instâncias na família de instâncias M5 do EC2.

P: Preciso provisionar e pagar por volumes de inicialização do agente?
Não, cada agente que você provisiona inclui o armazenamento de volumes 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?
Você precisa provisionar as instâncias do agente e o armazenamento do agente em cada cluster que cria. Não provisione os nós do Apache ZooKeeper, pois esses recursos são incluídos sem custo adicional em cada cluster criado.

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. A seguir estão os padrões usados pelo serviço e essa configuração não pode ser alterada enquanto o serviço estiver na demonstração.

Estratégia de replicação de agente

3-AZ

Min.Insync.Replicas

2

Broker.ID

Definido pelo serviço

Default.Replication.Factor

3 para 3-AZ

security.inter.broker.protocol

Plaintext

Criptografia do lado do servidor

AWS KMS ativado pela chave do serviço da AWS

P: Posso provisionar agentes de forma que eles fiquem desbalanceados em AZs (por exemplo, 3 em us-east-1a, 2 em us-east-1b, 1 em us-east-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 estratégias de replicação populares e oferece a opção de usar uma estratégia de replicação personalizada. 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 3 AZ com 1 agente por cluster AZ, o Amazon MSK criará um cluster de três agentes (1 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. A estratégia de replicação escolhida também determina o número mínimo de nós do Apache ZooKeeper atribuídos ao cluster nos bastidores.

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.
 
 
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:  

Fator de replicação

Padrão do cluster

Min.Insync.Replicas

2

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ástica (ENIs), e todo o tráfego de rede permanece na rede da AWS e não está acessível à Internet.
 
P: A conexão entre meus clientes e um cluster do Amazon MSK é sempre privada?
Sim, a única maneira pela qual os dados podem ser produzidos e consumidos de um cluster do Amazon MSK é por meio de uma conexão privada entre seus clientes na VPC e o cluster do Amazon MSK. O Amazon MSK não oferece suporte a endpoints públicos.

P: Como os agentes no meu cluster do Amazon MSK serão disponibilizados para os clientes na minha VPC?
Os agentes em seu cluster serão disponibilizados aos clientes na sua VPC por meio de interfaces de rede elástica (ENIs) que aparecerão 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: Como posso conceder acesso ao meu cluster a clientes que estão em execução em diferentes contas da AWS?
Você pode usar o emparelhamento de VPC para conceder acesso ao seu cluster a clientes em execução em diferentes contas da AWS.

Criptografia

P: Posso criptografar dados no meu cluster do Amazon MSK?
Sim, o Amazon MSK usa a criptografia do lado do servidor do Amazon EBS e as chaves do AWS KMS para criptografar volumes de armazenamento.

P: Os dados são criptografados pela rede enquanto são transmitidos entre agentes em um cluster do Amazon MSK?
Não neste momento.
 
P: Os dados são criptografados pela rede enquanto são transmitidos entre nós do Apache ZooKeeper e os agentes em um cluster do Amazon MSK?
Não neste momento.
 
P: Posso criptografar dados pela rede entre meus clientes do Apache Kafka e o serviço Amazon MSK?
Não neste momento.

Monitoramento, métricas e registro em log

P: Como posso monitorar a performance de meus clusters ou tópicos?
Você pode monitorar a performance de seus clusters usando métricas padrão e monitorar a performance de seus tópicos usando métricas aprimoradas no console do Amazon CloudWatch.
 
P: Como posso monitorar a integridade e a performance de clientes?
Você pode usar qualquer monitoramento do lado do cliente com suporte pela versão do Apache Kafka que estiver usando.

Apache ZooKeeper

P: O que é o Apache ZooKeeper?
Retirado de https://zookeeper.apache.org/ e traduzido: “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 aplicativos distribuídos,” incluindo o Apache Kafka.

P: O Amazon MSK usa o Apache ZooKeeper?
Sim, o Amazon MSK usa o Apache ZooKeeper e gerencia o Apache ZooKeeper em cada cluster como parte do serviço Amazon MSK. Os nós do Apache ZooKeeper são incluídos em cada cluster, sem custo adicional.
 
P: Como meus clientes interagem com o Apache ZooKeeper?
Seus clientes podem interagir com o Apache ZooKeeper por meio de um endpoint do Apache ZooKeeper fornecido pelo serviço. Esse endpoint é fornecido no console de gerenciamento da AWS ou usando a API DescribeCluster.

Integrações

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

Escalabilidade

P: Como posso ampliar a capacidade do meu cluster?
Não há suporte para a escalabilidade de um cluster existente durante o período de demonstração do Amazon MSK.

Definição de preço e disponibilidade

P: Como são definidos os preços do Amazon MSK?
O preço é baseado é por hora do agente do Apache Kafka e por hora de armazenamento provisionado. As taxas de transferência de dados da AWS aplicam-se à transferência de dados para o/do Amazon MSK. Para obter mais informações, acesse nossa página de 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 oferecem o Amazon MSK?
O Amazon MSK está disponível em três regiões da AWS: Norte da Virgínia (us-east-1), Ohio (us-east-2) e Irlanda (ue-west-1) durante a demonstração pública.

P. Como funciona a definição de preço para a transferência de dados?
Você paga taxas de transferência de dados padrão da AWS para dados transferidos de/para 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.

Comece a usar o Amazon MSK

Product-Page_Standard-Icons_01_Product-Features_SqInk
Calcule seus custos

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

Product-Page_Standard-Icons_01_Product-Features_SqInk
Consulte o guia de conceitos básicos

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

Product-Page_Standard-Icons_03_Start-Building_SqInk
Execute o seu cluster do Apache Kafka

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