Atributos do Amazon Managed Streaming for Apache Kafka

Por que Amazon MSK?

O Amazon Managed Streaming for Apache Kafka (Amazon MSK) oferece as soluções Apache Kafka, Kafka Connect e Replicador do Amazon MSK totalmente gerenciadas. Apache Kafka é um armazenamento de dados distribuído otimizado para ingestão e processamento de dados de streaming em tempo real. O Amazon MSK provisiona a infraestrutura de cluster, configura os clusters do Apache Kafka, substitui servidores quando eles falham, orquestra patches e upgrades de servidores, projeta clusters para alta disponibilidade, garante que os dados sejam armazenados e protegidos de forma durável, configura o monitoramento e os alarmes e executa a escalabilidade para oferecer suporte às mudanças de carga. Com o Amazon MSK, é possível passar mais tempo desenvolvendo e executando aplicações de eventos de streaming do que gerenciando os clusters do Apache Kafka.

Vista aérea da estrada

Integração escalável

O Amazon MSK é a estrutura principal de integração para aplicações modernas de mensagens e orientadas por eventos no centro dos serviços de ingestão e processamento de dados, assim como das arquiteturas de aplicações de microsserviços. Há várias maneiras de se integrar a outros sistemas, inclusive com uma variedade de outros serviços da AWS para tornar o desenvolvimento de aplicações mais simples e rápido. É possível trazer o próprio conector e implantá-lo em uma infraestrutura totalmente gerenciada por meio do Amazon MSK Connect. Como alternativa, é possível escolher entre uma lista cada vez maior de integrações nativas com outros serviços da AWS, como o Amazon S3, o Amazon Redshift, o Amazon Managed Service for Apache Flink e o AWS Lambda. O Amazon MSK também se integra ao AWS Identity and Access Management (IAM), ao AWS Certificate Manager (ACM) e ao AWS Key Management Service (AWS KMS) para fornecer acesso seguro, autenticado e autorizado de clientes aos seus dados. Também existe a opção de aplicar a governança do esquema por meio do AWS Glue Schema Registry.

Paisagem urbana

Compatível com o Apache Kafka

O Amazon MSK é compatível com todos os atributos do Apache Kafka e disponibiliza suas versões mais recentes em poucas semanas após serem disponibilizadas ao público.

O Amazon MSK mantém total compatibilidade com o protocolo do cliente de código aberto do Apache Kafka e, portanto, aplicações e ferramentas criadas para o Apache Kafka funcionam com o Amazon MSK imediatamente, sem alterações no código da aplicação.

É possível atualizar as versões do Apache Kafka nos clusters provisionados do Amazon MSK com apenas algumas etapas para que você possa aproveitar o momento certo de uso dos atributos e das correções de erros presentes nas novas versões do Apache Kafka. O Amazon MSK automatiza a implantação de atualizações de versões em clusters em execução para manter a disponibilidade de E/S.

Escolha seu próprio tipo de cluster

O Amazon MSK Provisioned fornece controle refinado sobre o cluster Apache Kafka. É possível escolher o tipo de agente, pré-provisionar instâncias do servidor, selecionar o tipo de armazenamento desejado e escolher a versão do Apache Kafka de sua preferência. Também é possível escolher quando e por quanto escalar os clusters em resposta à variação da workload.

O Amazon MSK Serverless gerencia totalmente o cluster Apache Kafka de forma que não seja preciso estimar a capacidade necessária para a workload ou decidir quando o escalonamento deverá ser feito em resposta às mudanças no tráfego.

Não há servidores para gerenciar

Independentemente do tipo de cluster escolhido, com algumas etapas no Console de Gerenciamento da AWS é possível criar um cluster totalmente gerenciado altamente disponível, seguro e respaldado pelos sistemas avançados de monitoramento e detecção do Amazon MSK que mantêm de modo automático a integridade operacional de seu cluster.

O Apache Kafka usa o Apache Kafka Raft (KRaft) ou o Apache ZooKeeper para fazer o gerenciamento de metadados. O Amazon MSK permite criar clusters em qualquer um dos modos nas versões compatíveis do Apache Kafka. O Amazon MSK também gerencia esses nós de metadados adicionais para você, sem nenhum custo adicional.

Vários tipos de agentes

Os agentes Express são um tipo de agente oferecido pelo MSK Provisioned. Os agentes Express simplificam o gerenciamento do Apache Kafka, além de torná-lo mais econômico em execuções em escala e mais elástico, com a baixa latência que você espera. Os agentes Express incluem uma capacidade de armazenamento praticamente ilimitada e elástica que não exige sobrecarga de gerenciamento, fornecem até 3 vezes mais throughput por agente e podem aumentar a escala verticalmente até 20 vezes mais rápido. Também é possível recuperar até 90% mais rápido, em comparação aos agentes padrão do Apache Kafka nos serviços Amazon Managed Streaming para Apache Kafka (MSK).

Os agentes Standard do MSK Provisioned oferecem mais flexibilidade para configurar a performance do cluster. É possível escolher entre uma ampla variedade de configurações no cluster para ajustar as dimensões, inclusive disponibilidade, durabilidade, throughput e latência. Nos agentes Standard, também é possível controlar as configurações de armazenamento no cluster e assumir o gerenciamento de provisionamento e utilização do armazenamento.

Opções de armazenamento

Os agentes Express incluem uma capacidade de armazenamento praticamente ilimitada e elástica que não exige dimensionamento, provisionamento ou gerenciamento contínuo. A capacidade de armazenamento ajusta a escala de modo automático para acomodar suas necessidades de retenção de dados e você paga somente pelo armazenamento usado.

Com o armazenamento em camadas, é possível armazenar dados praticamente ilimitados no Amazon MSK sem a necessidade de fornecer e gerenciar a capacidade de armazenamento. É possível habilitar o armazenamento hierárquico em algumas etapas para clusters existentes e pagar apenas pelo que usar. Você pode começar a armazenar os dados em uma camada de armazenamento principal com performance otimizada e permitir que o Amazon MSK classifique automaticamente os dados para a camada de baixo custo, proporcionando retenções mais longas. O atributo é compatível com todas as regiões da AWS nas quais o Amazon MSK está disponível. Para saber como começar a armazenar em camadas, visite nosso guia do desenvolvedor do Amazon MSK.

Altamente resiliente

Todos os clusters são distribuídos em várias zonas de disponibilidade (três é o padrão), e o Amazon MSK oferece a replicação de dados nessas zonas de disponibilidade sem custo adicional. A disponibilidade do cluster também é garantida pelo acordo de nível de serviço do Amazon MSK que assegura três noves de disponibilidade.

O Amazon MSK tem sistemas automatizados que detectam e respondem rapidamente aos problemas. Se um componente falhar, o Amazon MSK o substituirá automaticamente, sem tempo de inatividade para suas aplicações. Também implantamos de modo automático patches de software conforme necessário para manter as atualizações do cluster em dia e o perfeito funcionamento.

Os agentes Amazon MSK Serverless e Express no MSK Provisioned promovem as configurações de melhores práticas, como a replicação de três vias, e reservam largura de banda para operações em segundo plano, como replicação e recuperação, para que seja possível obter com mais facilidade a disponibilidade previsível dos recursos do seu cluster.

Com o uso do Replicador do Amazon MSK, é possível configurar a replicação contínua de dados a um cluster de backup secundário em outra região para permitir a criação de aplicações multirregionais altamente disponíveis e tolerantes a falhas, a fim de aumentar a resiliência. Também é possível usar o MSK Replicator para fornecer acesso a dados com menor latência em diferentes regiões geográficas ou para distribuir dados para parceiros.

Altamente seguro

O cluster do Apache Kafka é executado em uma Amazon Virtual Private Cloud (Amazon VPC) gerenciada pelo Amazon MSK. Os clientes Kafka, em sua própria Amazon VPC, podem acessar o cluster de forma privada por meio de uma interface de rede elástica entre contas que o Amazon MSK implanta na VPC. Se seus clientes Kafka estiverem espalhados por uma ou mais VPCs ou contas da AWS, ainda será possível se conectar de forma privada ao seu cluster com o uso do atributo de conectividade privada de várias VPCs. Esse atributo remove a sobrecarga operacional de autogerenciamento de uma solução AWS PrivateLink e ajusta escala conjuntamente com o cluster do Amazon MSK para permitir a manutenção da conectividade privada com o cluster sem fazer alterações adicionais na configuração. A conectividade privada com várias VPCs também remove os desafios de gerenciar IPs não sobrepostos, tabelas complexas de emparelhamento e roteamento associadas a outras soluções de conectividade de VPC.  O atributo de conectividade privada de várias VPCs permite a sobreposição de IPs nas VPCs conectadas.

O IAM Access Control é uma opção de segurança sem custo que simplifica a autenticação de clusters e a autorização da API do Apache Kafka com o uso de políticas de usuário ou perfis do IAM para controlar o acesso. Com o IAM Access Control, não é mais necessário criar nem executar sistemas únicos de gerenciamento de acesso para controlar a autenticação e a autorização de clientes para o Apache Kafka. Os clusters são protegidos por permissões com privilégio mínimo por padrão. No caso de clusters provisionados, você também pode usar o Simple Authentication and Security Layer (SASL)/Salted Challenge Response Authentication Mechanism (SCRAM) ou a autenticação mútua do Transport Layer Security (TLS) com listas de controle de acesso (ACLs) do Apache Kafka para controlar o acesso de clientes.

O Amazon MSK criptografa os dados em repouso sem configurações especiais nem ferramentas de terceiros. No caso de clusters provisionados, todos os dados em repouso podem ser criptografados com o uso, por padrão, da chave do AWS KMS ou de sua própria chave. Também é possível criptografar dados em trânsito entre agentes e entre clientes e agentes de um cluster pelo TLS. No caso de clusters sem servidor, todos os dados em repouso são criptografados por padrão com o uso das chaves gerenciadas por um serviço, e todos os dados em trânsito são criptografados pelo TLS por padrão.

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 VPC privada podem transmitir dados criptografados para dentro e para fora de clusters específicos do Amazon MSK.

Escalável

É possível escalar os clusters provisionados pela MSK ao adicionar mais agentes ou ao fazer a migração para uma instância de agente maior, em minutos, sem tempo de inatividade. Da mesma forma, é possível reduzir a escala verticalmente do cluster ao remover os agentes ou ao migrar para uma instância de agente de menor porte.

Os clusters do Amazon MSK Serverless ajustam de modo automático os recursos de computação e armazenamento disponíveis para suas workloads em resposta às necessidades de throughput de sua aplicação.

O Amazon MSK pode ser integrado ao Cruise Control, uma ferramenta popular de código aberto para o Apache Kafka que gerencia de modo automático a atribuição de partições em seu nome. No caso de clusters sem servidor, o Amazon MSK gerencia automaticamente a atribuição de partições para você.

É possível aumentar a escala da quantidade de armazenamento provisionado por agente de forma integral para acompanhar as alterações nos requisitos de armazenamento usando o Console de Gerenciamento da AWS ou a AWS Command Line Interface (AWS CLI). Também é possível criar uma política de autoescalabilidade para expandir automaticamente o armazenamento a fim de atender aos crescentes requisitos de transmissão.

Configurável

Com o Amazon MSK, é possível escolher o grau de configuração desejado para os clusters. Os agentes Express vêm pré-configurados com os padrões de melhores práticas recomendados pelo Amazon MSK. Isso fornece disponibilidade, durabilidade e performance de throughput ideais, prontos para uso. É possível personalizar configurações selecionadas para atender às necessidades específicas de sua workload. Por outro lado, os agentes padrão oferecem a flexibilidade de modificar mais de 30 configurações de cluster diferentes. Isso permite adaptar a disponibilidade, o preço, o desempenho e o comportamento geral do cluster para suas necessidades exatas. Também é possível acessar o conjunto completo de configurações dinâmicas e de tópico do Kafka para ajudar a refinar ainda mais a experiência. Para obter mais informações, consulte a documentação configurações personalizadas do MSK.

Observável

É possível visualizar e monitorar métricas importantes com o uso do CloudWatch para entender e manter a performance da aplicação de streaming. Um conjunto padrão de mais de 50 métricas está disponível sem custo adicional. Também é possível ativar um monitoramento mais aprimorado no nível do agente e do tópico para solucionar problemas específicos. As métricas aprimoradas são cobradas de acordo com as taxas padrão do CloudWatch.

O Open Monitoring com Prometheus permite monitorar o Amazon MSK com o uso de soluções como Datadog, Lenses, New Relic, Sumo Logic ou um servidor Prometheus e migrar facilmente os painéis de monitoramento existentes para o Amazon MSK. Para obter mais informações, consulte a documentação Open Monitoring com Prometheus.

Os logs de agente permitem solucionar problemas nas aplicações Apache Kafka e analisar as comunicações com seu cluster MSK. É possível entregar os logs de agente Apache Kafka para um ou mais dos seguintes tipos de destino: Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) e Amazon Data Firehose. Também é possível registrar chamadas de API do Amazon MSK com o AWS CloudTrail.

Altamente integrado

Oferecemos uma grande variedade de integrações da AWS no Amazon MSK. Essas integrações incluem o seguinte: