Home / AWS / Data Streaming com Kafka (AWS MSK)

Data Streaming com Kafka (AWS MSK)

Neste post, nós consumiremos dados streaming  utilizando Kafka através do serviço da AWS chamado MSK – Managed Streaming for Kafka

Para isto utilizaremos:

 

https://aws.amazon.com

Amazon Web Services , também conhecido como AWS, é uma plataforma de serviços de computação em nuvem, que formam uma plataforma de computação na nuvem oferecida pela Amazon.com

 


https://kafka.apache.org/

O Apache Kafka é uma plataforma de streaming distribuída. O que exatamente isso significa?
Uma plataforma de streaming tem três recursos principais:

  • Publicar e inscrever-se em fluxos de registros, semelhantes a uma fila de mensagens ou sistema de mensagens corporativo (mensageria)
  • Armazenar fluxos de registros de uma maneira durável e tolerante a falhas.
  • Processar fluxos de registros conforme eles ocorrem.

Neste post utilizaremos o serviço da AWS para a criação de um cluster Kafka, utilizando o serviço chamado Amazon Managed Streaming for Apache Kafka (AWS MSK).

Vamos lá!

1 – Criando uma máquina virtual no AWS

Acesse https://aws.amazon.com e crie um usuário. A Amazon possui o benefício do free tier por um ano aonde vários serviços são disponibilizados de forma gratuita, obviamente com certas limitações. Você pode se informar melhor em https://aws.amazon.com/en/free/

Após a criação da conta e login, será apresentada o Management Console. Em find services, procure por EC2 para a criação de um novo servidor virtual.

Já dentro do EC2, clique em Launch Istance e em seguida selecione a primeira opção de máquina virtual

Em seguida clique em Configure Instance Details.

Em Network, clique em Create VPC. Uma nova página será aberta para o serviço de VPC. Clique no botao Create VPC e preencha conforme  abaixo:

Volte para a tela de criação da VM (EC2) e clique no icone refresh. A nova VPN estará disponível agora. Selecione-a e em seguida clique em create subnet.

Na tela de subnet clique no botão create subnet e preencha conforme abaixo:

VPC será a VPC nova criada.

Repita esta operação mais 2 vezes, modificando a tag, a Availability Zone e IPv4 CIDR block conforme abaixo:

 

Volte para a tela do EC2, de um novo refresh na VPC. Agora listará a subnet.

Em auto-assign public ip, coloque enabled.

Selecione e clique em review and launch e por fim em launch

Uma tela se abrirá para a criação de uma chave para acessar posteriormente sua VM. Selecione create a new key, de um nome e clique em Download Key Pair. 

Obs: salve em um lugar seguro a chave, pois não há outra maneira de reaver o arquivo.

Na próxima tela clique em view instance para ver todas as instâncias de sua conta. Quando sua instância estiver com o status 2/2 checked passed, ela estará pronta para acesso.

 

Vamos agora acessar nossa VM utilizando um cliente SSH chamado Putty (https://www.putty.org/)

Faça o download e instale-o normalmente.

Um detalhe do putty, é que ele não aceita chaves no formato *.pem que o AWS gera, então antes será necessário a conversão desta chave para o formato aceito pelo putty, o *.ppk

Abra o Putty Key Generator. Em seguida clique em Load e selecione a chave que você criou no AWS (na tela de seleção, em tipo de arquivo selecione para listar todos os tipos)

Em seguida clique em save private key e confirme a tela de warning.

Volte ao AWS. Clique em cima da sua instância e vá em Connect.

Copie os dados marcados na imagem abaixo:

Abra agora o Putty. Em Host name, cole o endereço copiado.
No menu à esquerda, vá em Connection>SSH>Auth e carrega sua chave convertida (*.ppk)

Em seguida clique em Open e em Yes para o Security Alert

Se tudo der certo, você verá algo parecido com a tela abaixo:

Caso tenha algum problema de conexão na criação de VPNs, recomendo a documentação da aws para possíveis problemas relacionados a conexão:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html

Fontes:

https://pt.wikipedia.org/wiki/Amazon_Web_Services
https://www.confluent.io/blog/avro-kafka-data/

 

Parte 2

Check Also

Pandas get_dummies x Sklearn DictVectorizer

Em machine learning, uma das partes mais importantes é a feature engineering. Este post tratará …

Leave a Reply

Your email address will not be published. Required fields are marked *