Conéctate a Cloud SQL: IP pública y redes autorizadas

1. Introducción

Última actualización: 4/5/2020

Piensa en la conexión

Existen muchos tipos de aplicaciones y frameworks. En este codelab, abordaremos la conexión a Cloud SQL desde cualquier lugar. La capacidad de conectarse se habilita mediante la autorización de las IP que se pueden conectar de manera explícita. Podría decirse que esta es la opción menos segura para conectarse a una base de datos de Cloud SQL, pero también es la más fácil de configurar y comenzar a usar.

A veces es necesario hacer esto en producción, pero, si puedes evitarlo, debes optar por una alternativa más segura (p.ej., con el proxy de Cloud SQL). Esta configuración es más adecuada para el desarrollo y las pruebas.

Qué compilarás

Este codelab es muy minimalista. La idea es explicarte los detalles de la pieza de conexión, sin pensar demasiado en la aplicación en sí. En un mundo ideal, conectarse a Cloud SQL es como conectarse a cualquier otra instancia de una base de datos SQL, por lo que deberías poder aplicar lo que creaste en este codelab y aplicarlo a cualquier aplicación de producción.

Las instrucciones incluirán una explicación sobre cómo realizar las tareas en GCP Console y también los equivalentes de comandos de gcloud para usar en la CLI o la automatización.

Los pasos individuales son los siguientes:

  • Crea una instancia de Cloud SQL (en este instructivo, se usa Postgres, pero funciona de manera similar para MySQL o SQL Server) y autoriza IP específicas permitidas para conectarse a ella

Requisitos

  • Una cuenta de GCP en la que tengas permisos para habilitar las APIs y crear servicios
  • El cliente de Postgres instalado para verificar la conectividad (o el cliente de MySQL si quieres usar MySQL en lugar de Postgres)

2. Crea la instancia de Cloud SQL

Cloud SQL es nuestra oferta de bases de datos relacionales administradas. Admite MySQL, PostgreSQL y SQL Server. En este codelab, crearemos una base de datos Postgres, pero las instrucciones son similares para los tres.

En la consola

Ve a la página Cloud SQL y haz clic en el botón 241836b315e11bf5.png.

Como mencioné, la mayor parte de este codelab es genérico para cualquier variante de SQL, pero, para este codelab, elige PostgreSQL.

  1. Asigna un ID a tu instancia
  2. Elige una región cercana a tu ubicación actual
  3. Ingresa una contraseña para el usuario predeterminado (el nombre de usuario será el predeterminado de la base de datos seleccionada, p.ej., root para MySQL o postgres para PostgreSQL)
  4. Desplázate hacia abajo y haz clic en la show configuration options.
  5. Expandir la sección Connectivity
  6. Confirma que la opción Public IP esté marcada y que Private IP no esté marcada
  7. Haz clic en el botón 883b32ec2734de01.png.
  8. Obtén la dirección IP desde la que te conectas. La más fácil es buscar en Google “¿Cuál es mi IP?” y los resultados de la búsqueda incluyen tu IP pública.
  1. Ingresa la especificación de IP en el campo de red, asígnale un nombre si lo deseas y haz clic en Listo, en el cuadro New Network.
  2. Desplázate hacia abajo y haz clic en Crear.

Por lo general, la instancia tarda unos minutos en iniciarse.

Una vez que se termine de crear la instancia, haz clic en ella en la lista y, en la página de descripción general, debajo del encabezado Connect to this instance, copia el public IP address que aparece allí. No estará allí hasta que la instancia se cree por completo, aunque puedas hacer clic en los detalles antes de que se cree por completo.

Usa gcloud

Primero, debes obtener la dirección IP que deseas autorizar para conectarte a la instancia de Cloud SQL. La forma más fácil de hacerlo es abrir un navegador y buscar "¿Cuál es mi IP?" y los resultados de la búsqueda tendrán su dirección IP pública. Si no puedes abrir un navegador desde donde estés haciendo esto, puedes usar una utilidad como dig.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

Deberás especificar la región de la instancia de Cloud SQL más cercana al lugar en el que te encuentras. Para ver la lista de regiones, ejecuta lo siguiente:

gcloud sql tiers list

Cada nivel está disponible solo en ciertas regiones. Para la parte del instructivo sobre gcloud, solo crearemos una microinstancia, de modo que puedas encontrar las regiones disponibles para este nivel si las ejecutas específicamente (siempre y cuando tengas grep instalado):

gcloud sql tiers list | grep db-f1-micro

Entonces, se ve el comando para crear la instancia (no olvides reemplazar <AUTHORIZED_IP> por la IP que obtuviste del navegador o dig y <REGION> por una cercana a ti y una contraseña para el usuario raíz “postgres”):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

Este proceso tarda unos minutos en completarse.

Una vez que se complete, el resultado en la CLI mostrará la PRIMARY_ADDRESS de la instancia. Cópialo para el siguiente paso.

3. Prueba la conexión y finaliza

Para verificar que la instancia se configuró correctamente, puedes ejecutar la línea de comandos desde la dirección IP que ingresaste en la máquina:

psql "host=<IP copiada del paso anterior> port=5432 sslmode=disable user=postgres"

Luego, especifica la contraseña del usuario predeterminado que configuraste cuando creaste la instancia de Cloud SQL.

¡Felicitaciones! Si todo salió bien, deberías tener el prompt de Postgres y puedes ejecutar comandos en tu base de datos.

¿Qué sigue?

Consulta algunos codelabs sobre los siguientes temas:

Documentos de referencia