Geral

P: O que é o Amazon MSK?
O 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. Saiba mais sobre o Apache Spark.
 
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 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 MSK e o Amazon Kinesis Data Streams, facilitam a coleta, o processamento e a entrega contínuas 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 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 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 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 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, 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?
Para obter as versões com suporte do 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.

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: O Apache Kafka é compatível com atualizações de versão? 
As atualizações de versão de clusters não são compatíveis no momento, mas planejamos que sejam em breve. 
 
P: Como o processo de atualização funcionará em detalhes?
Quando você implanta uma nova versão do Apache Kafka, o Amazon MSK usa um processo contínuo de atualização 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 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: O Amazon MSK oferece definição de preço de 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 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. As configurações padrão estão documentadas aqui
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 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 zonas de disponibilidade com um agente por cluster de zona de disponibilidade, o Amazon MSK criará um cluster de três agentes (um agente em três zonas de disponibilidade 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 novos clusters. As configurações personalizadas podem ser criadas com a CLI ou o console da AWS. A compatibilidade de configurações personalizadas com clusters existentes estará disponível em junho de 2019.

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:

Fator de replicação

Padrão do cluster

Min.Insync.Replicas

2

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 comando a seguir é um exemplo de criação de um tópico usando as APIs do Apache Kafka:
 
bin/kafka-topics.sh --create —bootstrap-server ConnectionString:9092 --replication-factor 3 --partitions 1 --topic NomeDoTópico  

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.

Como conectar à VPC

P: Como conecto ao meu cluster do AWS MSK fora da VPC?

Há vários métodos para conectar aos seus clusters do AWS MSK fora de sua VPC.

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 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. Você pode 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 AWS. A configuração adicional é necessária para que os clientes se comuniquem com clusters usando a criptografia de TLS. Você pode alterar a configuração de criptografia padrão selecionando as configurações de TLS/texto simples ou de texto simples. Saiba mais em: Criptografia do MSK

P: Os dados são criptografados em trânsito enquanto são transmitidos entre nós do Apache ZooKeeper e os agentes em um cluster do Amazon MSK?
Não, a versão padrão do Apache Zookeeper incluída no Apache Kafka não é compatível com criptografia. Contudo, é importante observar que as comunicações entre os agentes do Apache Zookeeper e do Apache Kafka são limitadas a agente, tópico e informações sobre o estado de partições.

Autenticação e autorização

P: Como posso restringir o escopo de conectividade para um cluster do Amazon MSK entre vários clientes na minha VPC?
O Amazon MSK é compatível com autenticação baseada em TLS e você pode usar esse recurso para autenticar conexões de clientes com um cluster do Amazon MSK. O Amazon MSK permite que você implante autoridades de certificação privadas no serviço AWS Certificate Manager em um cluster do MSK. Quando a autenticação de clientes por TLS está habilitada, somente os clientes que apresentam certificados TLS gerados com as autoridades de certificação carregadas anteriormente podem se autenticar no cluster.

P: Como funciona a autorização no Amazon MSK?
O Apache Kafka usa listas de controle de acesso (ACLs) para autorização e o Amazon MSK é compatível com o uso de ACLs. Para habilitar as ACLs, é necessário habilitar a autenticação de clientes usando o TLS.

P: Como posso autenticar e autorizar um cliente ao mesmo tempo?
Os consumidores do Amazon MSK que usam a autenticação TLS de clientes podem usar o Dname de certificados TLS de clientes como principal da ACL para autenticar e autorizar solicitações de clientes.

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

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: Qual é o custo para ter diferentes níveis de monitoramento?
O custo para monitorar seu cluster usando o Amazon CloudWatch depende do nível de monitoramento e do tamanho do seu cluster do 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 saber mais. Para 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: Como posso monitorar 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 marcar recursos do Amazon MSK?
Sim, você pode marcar clusters do Amazon MSK pela CLI ou pelo console da AWS.
 
P: Como monitoro o retardo do consumidor?
O retardo do consumidor no cluster do Amazon MSK pode ser monitorado usando ferramentas de retardo de consumidor, como o Burrow do LinkedIn: https://github.com/linkedin/Burrow

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 o armazenamento do meu cluster?
Você pode fazer isso usando o Console de Gerenciamento da AWS ou a CLI da AWS. 
 
P: Posso escalar o número de agentes em um cluster existente?
Não. No momento, o Amazon MSK não oferece suporte à escalabilidade de número de agentes em um cluster existente, mas esse recurso está em nosso roteiro de desenvolvimento.
 
P: Posso escalar o tamanho de uma instância de agente em um cluster existente?
Não. No momento, o Amazon MSK não oferece suporte à escalabilidade de tamanho de instância de agente em um cluster existente, mas esse recurso está em nosso roteiro de desenvolvimento.

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

Conformidade

P: O Amazon MSK está qualificado para a HIPAA?

Sim. O Amazon MSK está qualificado para a HIPAA. 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: Qual é a garantia do SLA do Amazon MSK?
O SLA do Amazon MSK garante uma porcentagem de tempo de disponibilidade mensal de pelo menos 99,9% para o Amazon MSK.
 
P: Como saberei 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 alegação, consulte a página de detalhes do SLA do Amazon MSK.

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

Consulte o guia de conceitos básicos
Consulte o guia de conceitos básicos

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

Execute o seu cluster do Apache Kafka
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.