Antes de explicar como efetuar a conexão entre contas com o AWS MSK, importante explicar em resumo o que é. O Amazon Managed Streaming for Apache Kafka (Amazon MSK) é um serviço gerenciado da AWS que facilita a implantação, operação e escala de clusters do Apache Kafka. O Apache Kafka é uma plataforma de mensageria em tempo real que permite que você envie e receba grandes quantidades de dados em tempo real de forma confiável.
O Amazon MSK gerencia todas as tarefas operacionais relacionadas ao Apache Kafka, como provisionamento de instâncias, configuração de cluster e monitoramento, permitindo que você se concentre em desenvolver e gerenciar aplicativos que usam o Apache Kafka. Além disso, o Amazon MSK oferece integração com outros serviços da AWS, como o Amazon S3 e o Amazon CloudWatch, permitindo que você armazene e monitore os dados do Apache Kafka de forma fácil e eficiente.
Para maiores detalhes, acesse o site: https://aws.amazon.com/pt/msk/
Mas como se conectar no serviço MSK que está em uma conta “A” a partir da conta “B”?
Créditos da imagem: https://aws.amazon.com/pt/blogs/big-data/secure-connectivity-patterns-to-access-amazon-msk-across-aws-regions/
Para conectar o Amazon MSK entre contas diferentes, você pode usar o VPC peering. O VPC peering é um recurso do Amazon VPC que permite que você crie uma conexão direta entre dois VPCs da AWS. Assim, você pode ter duas contas da AWS diferentes, cada uma com seu próprio Amazon MSK, e usar o VPC peering para conectá-los diretamente.
Siga esses passos para efetuar a configuração:
- No console da AWS da conta principal (a conta que você deseja acessar o Amazon MSK da outra conta), vá para o painel do Amazon VPC.
- Na seção “Peering Connections”, clique em “Create VPC Peering Connection”.
- Na janela de diálogo “Create VPC Peering Connection”, selecione a conta e o VPC da outra conta que deseja conectar.
- Clique em “Create VPC Peering Connection”.
- Na seção “Peering Connections”, selecione a conexão de peering recém-criada e clique em “Accept Request”.
Uma vez que a conexão de peering estiver estabelecida, você poderá usar a VPC da outra conta para acessar o Amazon MSK da primeira conta.
É importante lembrar que, para usar o VPC peering, as duas contas devem estar na mesma região da AWS. Além disso, é recomendável que você crie regras de segurança específicas para a conexão de peering para garantir que o acesso ao Amazon MSK seja permitido apenas para as VPCs autorizadas.
IMPORTANTE: Quando você realiza o Peering de conexão entre contas, é importante atentar-se ao bloco de IPs utilizados entre ambas as contas, pois na hora de criar as tabelas de roteamento, você pode enfrentar problemas. Mas além deste modo, segue o texto que eu te mostro mais uma alternativa bacana para efetuar a configuração!
Configurando PrivateLink para efetuar a conexão entre contas
Créditos da imagem: https://aws.amazon.com/pt/blogs/big-data/secure-connectivity-patterns-to-access-amazon-msk-across-aws-regions/
O AWS PrivateLink é um recurso da AWS que permite que você crie uma conexão privada direta para serviços da AWS sem expor o tráfego na Internet pública.
A configuração pode ser realizado da seguinte forma:
- No console da AWS da conta principal (a conta que deseja acessar o Amazon MSK da outra conta), vá para o painel do Amazon VPC.
- Na seção “Endpoints”, clique em “Create Endpoint”.
- Na janela de diálogo “Create Endpoint”, selecione “AWS PrivateLink” como o tipo de endpoint.
- Na seção “Service Category”, selecione “Messaging” e, em seguida, selecione “Amazon MSK” na lista de serviços disponíveis.
- Selecione o VPC da conta principal na qual você deseja criar o endpoint.
- Clique em “Create Endpoint”.
Uma vez que o endpoint estiver criado, você poderá usar o Amazon MSK da conta principal na outra conta através do endpoint privado criado.
Como o AWS PrivateLink cria uma conexão privada direta entre as contas, essa é uma opção segura e confiável para acessar o Amazon MSK entre contas diferentes. Além disso, como o tráfego é roteado através da rede da AWS, o tempo de latência é geralmente menor do que o VPC peering.
OK! Mas como eu conecto no PrivateLink a partir de outra conta?
Seguindo estes passos:
- No console da AWS da conta secundária (a conta que deseja acessar o Amazon MSK da conta principal), vá para o painel do Amazon VPC.
- Na seção “Endpoints”, selecione o endpoint privado criado para o Amazon MSK e clique em “Create Private DNS Name”.
- Na janela de diálogo “Create Private DNS Name”, selecione o VPC da conta secundária no qual você deseja criar o DNS privado e clique em “Create Private DNS Name”.
- Anote o DNS privado criado, pois você precisará dele para se conectar ao Amazon MSK.
Para se conectar ao Amazon MSK usando o DNS privado, basta usar o endereço DNS privado como o nome do host no seu código de aplicativo. Por exemplo, se você estiver usando o Apache Kafka para se conectar ao Amazon MSK, basta usar o DNS privado como o nome do host na configuração do Apache Kafka.
É importante lembrar que, para usar o AWS PrivateLink, as duas contas devem estar na mesma região da AWS. Além disso, é recomendável que você crie regras de segurança específicas para o endpoint privado para garantir que o acesso ao Amazon MSK seja permitido apenas para as VPCs autorizadas.
Em resumo, se você precisar acessar o Amazon MSK de uma conta diferente, pode usar o VPC peering ou o AWS PrivateLink para estabelecer uma conexão direta entre as contas. O VPC peering é um recurso do Amazon VPC que permite que você crie uma conexão direta entre dois VPCs da AWS, enquanto o AWS PrivateLink permite que você crie uma conexão privada direta para serviços da AWS sem expor o tráfego na Internet pública. Ambas as opções são seguras e confiáveis, mas o AWS PrivateLink pode oferecer menor tempo de latência devido ao roteamento de tráfego através da rede da AWS.
Referências:
- https://aws.amazon.com/pt/msk/
- https://aws.amazon.com/blogs/big-data/secure-connectivity-patterns-to-access-amazon-msk-across-aws-regions/
- https://aws.amazon.com/pt/vpc/
- https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html
- https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-privatelink.html