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