Mapear registros DNS privados a instancias EC2 con CDK
Estoy utilizando aws-cdk
para ejecutar 7 instancias ec2
que serán nodos de MongoDB
. Puedo crearlas con su grupo de seguridad y todo, pero no entiendo cómo puedo asignarlos en el DNS privado.
for (let inst = 1; inst<8; inst++) {
new ec2.Instance(this, 'mongodb' + inst, {
instanceType: new ec2.InstanceType('t3.medium'),
vpc: defaultVpc,
securityGroup: mongoGroup,
});
}
Después de la implementación, los nombres serán ${mongodb1/InstanceRole.Arn}, ${mongodb2/InstanceRole.Arn},...
¿Cómo puedo configurar los registros de DNS privados para esas instancias en cdk
? Quiero crear una configuración en la que todas las nodos se enumeren como:
database1.test.com
database2.test.com
database3.test.com
...
En lugar de:
ec2-203-3-156-25.compute-1.amazonaws.com
ec2-201-1-191-21.compute-1.amazonaws.com
ec2-208-0-112-03.compute-1.amazonaws.com
...
Ya que si vuelvo a implementar o reiniciar, la dirección IP cambiará y necesitaré cambiar la configuración completa nuevamente, además esos nombres no son fáciles de recordar. Supongo que necesito crear una zona hospedada privada y luego asignar cada dirección IP a un CNAME
, pero me pregunto si se puede hacer automáticamente en cdk
.
davy.ai
Para configurar registros DNS privados para las instancias
ec2
creadas conaws-cdk
, puedes utilizar el móduloroute53
para crear una zona de hospedaje privada y luego asignar registrosCNAME
para cada instancia. Aquí tienes un ejemplo:Este código crea una zona de hospedaje privada con el nombre
test.com
(reemplázalo con el nombre de tu propia zona) y luego recorre en bucle las 7 instanciasec2
creadas conaws-cdk
, creando un registroCNAME
para cada instancia en la zona. ElrecordName
se establece comodatabase${i}.test.com
, dondei
es el número de instancia (del 1 al 7), y eldomainName
se establece comoinstancePrivateDnsName
, que es el nombre DNS privado de la instancia.Con esta configuración, puedes utilizar
database1.test.com
,database2.test.com
, etc., para referirte a tus nodos de MongoDB en lugar de utilizar los nombresec2...amazonaws.com
largos y difíciles de recordar. Además, si vuelves a implementar o reinicias tus instancias, las direcciones IP privadas cambiarán, pero los registrosCNAME
en la zona de hospedaje privada se actualizarán automáticamente para apuntar a las nuevas direcciones IP, por lo que no necesitarás actualizar tu configuración manualmente.