Apenas no caso de ser útil para qualquer outra pessoa. Foi assim que acabei fazendo isso ...
1) Lançou um pequeno EC2 na minha sub-rede privada.
2) Configurou uma instância mínima de nginx.
A versão do pacote não tem o módulo de streaming incluído, então eu criei um assim ...
./configure --with-stream --without-http_rewrite_module
Esta instância só será usada para este propósito específico, então eu não precisei de nenhum outro módulo nginx.
3) Eu configurei meu nginx.conf assim ...
events {
worker_connections 1024;
}
stream {
upstream rds_db_1 {
server [aurora_endpoint_1]:3306;
}
upstream rds_db_1 {
server [aurora_endpoint_2]:3306;
}
...
server {
listen 33061;
proxy_pass rds_db_1;
}
server {
listen 33062;
proxy_pass rds_db_2;
}
...
}
No meu caso, eu tinha várias conexões com proxy, então usei números de porta alta personalizados para distinguir cada conexão (33061, 33062, ...). Essas portas são totalmente arbitrárias.
Se você está apenas fazendo uma conexão, então você pode apenas ter o nginx escutando no número normal da porta do mysql.
4) Configure um balanceador de carga de rede NLB em uma sub-rede pública, para encaminhar solicitações para a instância.
Eu também poderia ter colocado a instância do proxy na sub-rede pública e pulado o balanceador de carga, mas isso parecia ser uma maneira mais segura de fazê-lo.
Em seguida, configurei o grupo de segurança para a instância para permitir solicitações do VPC CIDR (para a verificação de integridade da instância NLB- >) e dos IPs externos do fornecedor.
Os balanceadores de carga de rede não podem ser configurados diretamente com grupos de segurança, portanto, as regras de segurança precisam ser configuradas diretamente na instância de destino.
5) Eu criei usuários customizados do mysql especificamente para o fornecedor.
6) Finalmente eu configurei um registro DNS amigável para apontar para o meu NLB.