Questão 1:
Os endereços IP elásticos não devem ser usados para preservar o endereço de um servidor "back-end". Existem 2 motivos:
- Normalmente, você não deseja que os servidores de backend sejam expostos à Internet, e os endereços IP elásticos só funcionam da Internet em sua instância do EC2.
- Se você se conectar de uma instância do EC2 a outra do EC2 pelo endereço IP do Elastic, a conexão sairá do VPC e entrará novamente no VPC. Isso dificulta a segurança e incorrerá em custos de tráfego de dados.
Em vez disso, você deve referenciar seu servidor de back-end por seu endereço IP privado. Parar e reiniciar uma instância do EC2 não alterará o endereço IP privado. Somente quando uma instância do EC2 for finalizada, o endereço IP interno será liberado. E quando você inicia uma instância do EC2, pode optar por escolher seu endereço IP privado.
Você pode criar uma entrada DNS (zonas privadas hospedadas do Route 53) para o seu servidor back-end.
Outra coisa que você pode fazer, mas não é obrigatório, é criar uma interface de rede com seu endereço IP privado. Em seguida, conecte essa interface de rede à instância do EC2. Se você precisar de um novo servidor back-end, basta mover a interface de rede para a nova instância e o endereço IP privado será movido com ela.
Questão 2:
Os endpoints da instância do RDS não mudam com o tempo.
Além disso, as instâncias do RDS não podem ser interrompidas. Eles só podem ser excluídos. Mas, mesmo se você excluir uma instância do RDS e recriá-la, se ela tiver o mesmo ID de instância do RDS, seu endpoint permanecerá consistente.
Por isso, é seguro e prática recomendada referenciar sua instância do RDS por seu nome de host myapp-production.cg4mxcg62ca0.us-west-2.rds.amazonaws.com
.
Considerações finais:
Coloque seu servidor Redis e sua instância do RDS em sub-redes privadas em seu VPC. Não há razão para que o público precise de acesso a eles. Sua instância do aplicativo Rails deve estar em uma sub-rede pública porque o público acessará seu aplicativo por meio dessa instância.