Uma instância ECS na mesma VPC e região que uma instância RDS não consegue se conectar a ela pela rede interna devido a alterações na tabela de rotas causadas por serviços como o Docker.
Descrição
As instâncias ECS e RDS estão na mesma VPC e região, mas a instância ECS não consegue se conectar à instância RDS pela rede interna. A conexão funciona pelo endereço de Internet, mas tanto o ping quanto o telnet para o endereço interno falham.
Causas
A instalação de serviços como o Docker modificou as entradas da tabela de rotas na instância ECS e roteou incorretamente o tráfego da rede interna.
Solução
A Alibaba Cloud lembra que:
Antes de executar operações de risco, como modificar configurações ou dados de instâncias, verifique os recursos de recuperação de desastres e tolerância a falhas das instâncias para garantir a segurança dos dados.
Você pode modifique as configurações e os dados de instâncias, incluindo, entre outras, instâncias do Elastic Compute Service (ECS) e do Relational Database Service (RDS). Antes da modificação, crie snapshots ou ative o backup de logs do RDS.
Caso tenha autorizado ou enviado informações de segurança, como conta de logon e senha, no Alibaba Cloud Management Console, modifique essas informações imediatamente.
-
Faça logon na instância ECS e execute o comando a seguir para enviar um ping ao endpoint interno da instância RDS.
ping rm-XXX-mysql.rds.aliyuncs.comA saída mostra que o endereço IP interno da instância RDS é resolvido, mas a solicitação de ping expira.

-
Execute o comando a seguir para verifique a tabela de rotas da instância ECS:
route -nSe a saída contiver uma entrada de rota adicionada pelo Docker ou por outro serviço, essa entrada pode estar direcionando o tráfego para fora do gateway correto. Compare a saída com a tabela de rotas de uma instância ECS funcional para confirme.

-
Execute o comando a seguir para adicionar a entrada de rota correta.
route add -net [$Network] gw [$Gateway] dev [$Network_Card]NotaVerifique se a adição dessa entrada de rota não afeta suas cargas de trabalho em execução antes de prosseguir.
[$Network] é o bloco CIDR onde a instância RDS está localizada.
[$Gateway] é o endereço do gateway da instância ECS. Use o gateway interno da instância ECS.
[$Network_Card] é o nome da interface de rede na instância ECS, geralmente eth0.
-
Execute o comando a seguir para verifique se o ping agora é bem-sucedido:
ping rm-XXX-mysql.rds.aliyuncs.com
Aplicabilidade
ECS
RDS