Cuando contratamos un servicio en
Google Cloud Platform y creamos una instancia de una máquina virtual decubrimos que nos dan una IP dinámica. Los costos de una IP estática son elevados en este proveedor de hosting (cobro por hora). La solución es utilizar algún proveedor de DNS de IPs dinámicas.
En este ejemplo vamos a utilizar el servicio que nos brinda
NO-IP. Vamos a crear un dominio en esa página y luego vamos a apuntar el dominio real que queramos utilizar a este otro mediante un registro CNAME. Una vez creado el dominio en
NO-IP, ponemos la IP temporal que tengamos en ese momento apuntando a ese dominio.
El paso siguiente consistirá en bajar el software cliente de
NO-IP e instalarlo en nuestra VM de
GCloud. Para ello nos vamos a la sección de descarga del cliente. Les dejo el link directo de la descarga asumiendo que la instancia tiene instalado un sistema operativo Linux:
https://www.noip.com/download?page=linux
Para descargarlo directamente en nuestra instancia y no tener que hacer un posterior
upload al servidor de producción, podemos ejecutar los siguientes comandos:
$ wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
$ tar xvfz noip-duc-linux.tar.gz
Ahora procederemos con la instalación:
$ cd noip-2.1.9-1
$ make
$ sudo make install
* (Paso opcional aquí:
ir)
Finalmente ejecutamos el cliente que actualizará nuestra IP cada vez que esta cambie.
$ sudo /usr/local/bin/noip2
Ahora solo resta apuntar al dominio registrado en
NO-IP el dominio final que queramos utilizar en producción. En este ejemplo, voy a usar uno gratuito registrado en
Freenom, el cual es más estético que las opciones que nos brinda
NO-IP. Primero, nos logueamos en
Freenom y nos vamos a la sección
Services →
My Domains. Hacemos click en
Manage Domain:
Ahora entramos en
Manage Freenom DNS e ingresamos las siguientes entradas:
En este ejemplo
appicar.ddns.net es el dominio registrado en
NO-IP y
appicar.tk, el de
Freenom. Ustedes deberán reemplazar ahí por sus respectivos dominios.
Checkeamos que todo esté en orden:
$ dig www.appicar.tk
Como podemos observar, los dominios apuntan correctamente a sus respectivos blancos.
Aquí termina el tutorial básico. Si siguieron todos los pasos anteriores ya contarán con un servicio que les actualizará automáticamente el registro A del dominio que registraron en
NO-IP.
Script de Logging
Durante el proceso de instalación nos preguntará si queremos ejecutar algún script cuando se realice la actualización de la IP. Yo creé un script que escribirá un log en
/var/log/noip/log. Veamos el contenido del mismo:
# cat /usr/bin/noip-log
#!/bin/bash
echo $(date +"%Y-%m-%d %H:%M:%S") - IP updated: $(myip) >> /var/log/noip/log
Copien el contenido de
noip-log a un archivo con el mismo nombre y denle permisos de ejecución:
# chmod +x /usr/bin/noip-log
Después tenemos que crear el archivo /usr/bin/myip que nos devolverá en la consola nuestra IP pública. Ponemos este código dentro del mismo:
#!/bin/bash
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Le damos permisos de ejecución:
# chmod +x /usr/bin/myip
Ahora lo vamos a ejecutar nosotros mismos para dejar registro de la IP actual:
# /usr/bin/noip-log
# cat /var/log/noip/log
2017-08-11 21:05:57 - IP updated: 35.196.20.137