1. Introducción
Última actualización: 04/05/2020
Consideraciones sobre la conexión
Existen muchos tipos de aplicaciones y frameworks. En este codelab, explicaremos cómo conectarse a Cloud SQL desde cualquier lugar. La capacidad de conectarse se habilita autorizando explícitamente las IPs que pueden conectarse. Esta es, sin duda, 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 hacerlo en producción, pero, si puedes evitarlo, debes optar por una alternativa más segura (p.ej., usar el proxy de Cloud SQL). Esta configuración es ideal para el desarrollo y las pruebas.
Qué compilarás
Este codelab es muy minimalista. La idea es guiarte por los aspectos básicos de la conexión, sin pensar demasiado en la aplicación en sí. En un mundo perfecto, conectarse a Cloud SQL sería igual que conectarse a cualquier otra instancia de una base de datos SQL, por lo que deberías poder tomar lo que crees en este codelab y aplicarlo a cualquier aplicación de producción.
Las instrucciones incluirán una guía para realizar las tareas en la consola de GCP, así como los equivalentes de los comandos de gcloud para usar en la CLI o la automatización.
Estos son los pasos individuales:
- Crea una instancia de Cloud SQL (en este instructivo, se usa Postgres, pero funciona de manera similar para MySQL o SQL Server) y autoriza las IPs específicas que pueden conectarse a ella.
Requisitos
- Una cuenta de GCP en la que tengas permisos para habilitar APIs y crear servicios
- El cliente de Postgres instalado para verificar la conectividad (o el cliente de MySQL si deseas 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 de Postgres, pero las instrucciones son similares para las tres.
En la consola
Ve a la página Cloud SQL y haz clic en el botón
.
Como mencioné, la mayor parte de este codelab es genérica para cualquier variante de SQL, pero para este codelab, elige PostgreSQL.
- Asigna un ID a tu instancia
- Elige una región cercana a tu ubicación.
- Ingresa una contraseña para el usuario predeterminado (el nombre de usuario será el predeterminado para la BD seleccionada, p. ej.,
rootpara MySQL opostgrespara PostgreSQL). - Desplázate hacia abajo y haz clic en
show configuration options. - Expande la sección
Connectivity. - Confirma que
Public IPesté marcada y quePrivate IPno lo esté. - Haz clic en el botón
. - Obtén la dirección IP desde la que te conectas. La forma más fácil es buscar "Cuál es mi IP" en Google, y los resultados de la búsqueda incluirán tu IP pública.
- 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. - Desplázate hacia abajo y haz clic en Crear.
Por lo general, la instancia tarda un par de 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á disponible hasta que la instancia se cree por completo, aunque puedes 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 sencilla de hacerlo es abrir un navegador y buscar "Cuál es mi IP". En los resultados de la búsqueda, aparecerá tu dirección IP pública. Sin embargo, 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 una región para tu instancia de Cloud SQL que esté más cerca de tu ubicación. Para ver la lista de regiones, ejecuta el siguiente comando:
gcloud sql tiers list
Cada nivel solo está disponible en ciertas regiones. Para la parte de gcloud del instructivo, solo crearemos una microinstancia, por lo que puedes encontrar las regiones disponibles para este nivel ejecutando específicamente (siempre y cuando tengas instalado grep):
gcloud sql tiers list | grep db-f1-micro
El comando para crear la instancia en sí se ve de la siguiente manera (no olvides reemplazar <AUTHORIZED_IP > por la IP que obtuviste del navegador o dig, <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á el PRIMARY_ADDRESS de la instancia. Copia ese valor para el siguiente paso.
3. Prueba la conexión y finaliza el proceso
Para verificar que la instancia se haya configurado correctamente, desde la máquina cuya dirección IP ingresaste, puedes ejecutar lo siguiente en la línea de comandos:
psql "host=<IP copied from previous step> 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 mensaje de Postgres y poder ejecutar comandos en tu base de datos.
¿Qué sigue?
Consulta algunos codelabs sobre los siguientes temas: