Conéctate a una instancia de Cloud SQL para PostgreSQL con IP privada

En esta página se muestra cómo crear y conectarse a una instancia de PostgreSQL mediante una IP privada. Los recursos creados en esta guía de inicio rápido suelen costar menos de un dólar, bajo la suposición de que completas los pasos, incluida la limpieza, de manera correcta.


Para seguir la guía paso a paso sobre esta tarea directamente en la Google Cloud consola, haz clic en Guiarme:

Guiarme


Antes de comenzar

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Verifica que tengas los permisos necesarios para completar esta guía de inicio rápido.
  7. Habilita las Google Cloud APIs necesarias.

    Console

    En la Google Cloud consola, ve a la página APIs.

    Ir a las API

    Habilita la API de Cloud SQL Admin Cuando habilitas esta API, puedes ejecutar el proxy de Cloud SQL Auth.

    gcloud

    Haz clic en el siguiente botón para abrir Cloud Shell, que proporciona acceso de línea de comandos a tus Google Cloud recursos directamente desde el navegador. Cloud Shell se puede usar para ejecutar los comandos de gcloud que se presentan en esta guía de inicio rápido.

    Abra Cloud Shell

    Ejecuta el comando gcloud services enable de la siguiente manera con Cloud Shell a fin de habilitar las API necesarias para esta guía de inicio rápido:

    gcloud services enable sqladmin.googleapis.com

    Este comando habilita las siguientes APIs:

    • API de Cloud SQL Admin Cuando habilitas esta API, puedes ejecutar el proxy de Cloud SQL Auth.

Roles obligatorios

Para obtener los permisos que necesitas para configurar Cloud SQL con una dirección IP privada, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto que deseas configurar y al que te quieres conectar:

  • Crea o borra una instancia, una base de datos y un usuario: Rol de administrador de Cloud SQL (roles/cloudsql.admin).
  • Crea o borra una cuenta de servicio de IAM: Rol de administrador de cuentas de servicio de IAM (roles/iam.serviceAccountAdmin).
  • Crea o borra una instancia de procesamiento:
  • Crea una conexión:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Descripción general

Hay muchas formas de conectarte a una instancia de Cloud SQL con una dirección IP privada según la ubicación de la fuente. El factor clave es que la máquina de origen debe estar en la misma red de VPC que la instancia de Cloud SQL. Si la fuente no está en Google Cloud o no está en el mismo Google Cloud proyecto, debes configurar la conectividad de manera diferente a la que se muestra aquí.

En esta guía de inicio rápido, configuraremos la conectividad a través de la ruta más directa. La fuente y el destino están en el mismo Google Cloud proyecto y en la misma red de VPC. Creamos una instancia de Cloud SQL con una dirección IP privada (el destino) y una VM de Compute Engine (el origen). Usamos la VM para instalar las herramientas necesarias para conectarnos desde la VM hasta la instancia de Cloud SQL.

Realiza las siguientes acciones:

  1. Crear una base de datos de Cloud SQL con una dirección IP privada.

    Busca y guarda el connection name de la instancia para un uso posterior.

  2. Crea una VM de Compute Engine.
  3. Abre dos conexiones SSH a la VM de Compute Engine

    Usarás la primera ventana para instalar psql además de instalar y, luego, iniciar el proxy de Cloud SQL Auth. Luego, usarás la segunda ventana para conectarte a la instancia de Cloud SQL mediante la conexión al proxy de Cloud SQL Auth.

  4. En la ventana de SSH 1, haz lo siguiente:
    1. Instala el cliente psql.
    2. Instala el proxy de Cloud SQL Auth.

      El proxy de Cloud SQL Auth actúa como un conector entre el cliente psql y la instancia de Cloud SQL.

    3. Inicia el proxy de Cloud SQL Auth.

      Si se ejecuta de forma correcta, el proxy de Cloud SQL Auth escucha las solicitudes de conexión.

  5. En la ventana SSH n.° 2, conéctate a la instancia de Cloud SQL mediante la conexión del cliente psql al proxy de Cloud SQL Auth.

    Si se ejecuta de forma correcta, verás el mensaje de psql en esta ventana y un mensaje de conexión correcta en la ventana de SSH n.° 1, en la que se ejecuta el proxy de Cloud SQL Auth.

  6. Realiza una limpieza.

Crea una instancia de Cloud SQL con una dirección IP privada

Para crear una instancia que use conexiones de IP privadas, haz lo siguiente:

  1. En la Google Cloud consola de, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Selecciona la pestaña PostgreSQL y haz clic en Crear instancia de zona de pruebas en el Zona de pruebas box. Como alternativa, puedes hacer clic enCrear instancia y hacer lo siguiente:
    1. Haz clic en Elegir PostgreSQL.
    2. Selecciona la edición Enterprise.
    3. Elige el ajuste predeterminado de Zona de pruebas.
  3. Si se te solicita que habilites la API de Compute, haz clic en el botón Habilitar API.
  4. En la sección Información de la instancia, ingresa un nombre para el ID de instancia.
  5. Ingresa una contraseña para el usuario de postgres. Toma nota de la contraseña que crees, ya que la necesitarás más tarde.
  6. En la sección Elige la región y la disponibilidad zonal, selecciona la opción Zona única.
  7. Expande Mostrar opciones de configuración.
  8. Expande Conexiones.
  9. Borra la IP pública.
  10. Seleccione IP privada.
  11. Selecciona Acceso privado a servicios (PSA).
  12. En el menú desplegable Red de VPC, selecciona predeterminada.
  13. Si usas un proyecto nuevo, verás el mensaje: No se configuró la conexión de red y un cuadro titulado Se requiere confirmación de configuración de red te dirigirá a la documentación de VPC para configurar PSA.
    1. En la Google Cloud consola de, ve a la página Redes de VPC:

      Ir a las redes de VPC

    2. Selecciona la red de VPC predeterminada.
    3. Establece una regla de firewall que permita el acceso al puerto TCP 22:
      1. Selecciona la pestaña Firewall.
      2. En Reglas de firewall de VPC, selecciona Crear regla de firewall de VPC.
      3. Asigna un nombre a la regla de firewall.
      4. En Destinos, selecciona Todas las instancias de la red.
      5. En Rangos de IPv4 de origen, ingresa 0.0.0.0/0.
      6. En Protocolos y puertos, marca TCP y, luego, en el cuadro Puertos que se encuentra directamente debajo, ingresa 22.
      7. Selecciona Crear.
    4. Asigna un rango de direcciones IP:
      1. Selecciona la pestaña Acceso privado a servicios.
      2. En la pestaña Acceso privado a servicios, selecciona la pestaña Rangos de IP asignados para servicios.
      3. Haz clic en Asigna rangos de IP.
      4. Ingresa un Nombre y, de manera opcional, una Descripción para el rango asignado.
      5. Para permitir que Google seleccione un rango disponible, selecciona Automático.
      6. Ingresa una longitud de prefijo entre 16 y 124 (la cantidad de direcciones asignadas es igual a 2 a la (32 - longitud del prefijo).
      7. Haz clic en Asignar para crear un rango asignado.
    5. Crea una conexión privada:
      1. En la pestaña Acceso privado a servicios, cambia a la pestaña Conexiones privadas a los servicios.
      2. Haz clic en el botón Crear conexión.
      3. En el menú desplegable Asignación asignada del cuadro Crear una conexión privada, selecciona el nombre del rango de direcciones IP que acabas de crear .
      4. Haz clic en Conectar.
    6. Cuando se haya creado la conexión, regresa al lugar donde estabas creando tu instancia de Cloud SQL y haz clic en Confirmar conexión.
  14. Cuando se cree correctamente la conexión de PSA, haz clic en Crear instancia.

Se te redireccionará a la página Resumen de la instancia mientras se crea la instancia nueva.

Una vez que se complete la creación de la instancia, desplázate hasta la sección Conéctate a esta instancia y guarda el Nombre de la conexión de la instancia. El connection name tiene el formato projectID:region:instanceID. Usarás este connection name más adelante cuando inicies el proxy de Cloud SQL Auth.

Crea una base de datos

Para crear una base de datos, selecciona Bases de datos en el panel de navegación de la izquierda y, luego, haz lo siguiente:

  1. Selecciona Crear base de datos.
  2. Ingresa un DB_NAME en el campo Nombre de la base de datos.
  3. Haz clic en Crear.

Usarás este db_name más adelante cuando te conectes mediante el proxy de Cloud SQL Auth.

Crea una VM de Compute Engine

Sigue estos pasos para crear una VM:

  1. En la Google Cloud consola de, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haga clic en Crear instancia.
  3. Ingresa un Nombre para la instancia.
  4. Selecciona Protección de datos en el panel de navegación y, luego, Sin copias de seguridad.
  5. Selecciona Seguridad en el panel de navegación y, en Permisos de acceso, selecciona Permitir el acceso total a todas las APIs de Cloud.
  6. Haz clic en Crear y espera a que se termine de crear la VM.

Abre dos conexiones SSH a la VM de Compute Engine

Usamos dos ventanas en la VM. La primera ventana se usa para instalar el cliente psql y el proxy de Cloud SQL Auth, obtener el nombre de la conexión de la instancia y usar el nombre para iniciar el proxy. La segunda ventana se usa para conectarse a la instancia de Cloud SQL a través del proxy.

  1. Expande el menú SSH en la columna Conectar para la instancia de VM de Compute Engine.
  2. Selecciona Abrir en otra ventana del navegador para abrir la ventana SSH 1.

    Es posible que el mensaje tarde unos segundos en estar disponible en la ventana.

  3. Cuando aparezca el mensaje, ingresa pwd para verificar que estés en el directorio /home/$USER.

    Instalarás el cliente psql y el proxy de Cloud SQL Auth y, luego, iniciarás el proxy de Cloud SQL Auth, en esta ventana.

  4. Vuelve a seleccionar Abrir en otra ventana del navegador para abrir la ventana SSH 2.

    Usarás esta ventana para conectarte a tu instancia de Cloud SQL.

Instalar el cliente psql

Usa la ventana SSH n.° 1 para este paso.

Instala el cliente psql desde el administrador de paquetes:

sudo apt-get update
sudo apt-get install postgresql-client
  

Instala el proxy de Cloud SQL Auth

Usa la ventana SSH n.° 1 para este paso.

  1. Instala wget:
    sudo apt-get install wget
        
  2. Descarga el proxy de Cloud SQL Auth:
    wget https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.8.2/cloud-sql-proxy.linux.amd64 \
    -O cloud-sql-proxy
      
  3. Haz que el proxy de Cloud SQL Auth sea ejecutable:
    chmod +x cloud-sql-proxy
      

Inicia el proxy de Cloud SQL Auth

Usa la ventana SSH n.° 1 para este paso.

Inicia el proxy de Cloud SQL Auth para que puedas supervisar el resultado. Reemplaza INSTANCE_CONNECTION_NAME por el connection name que copiaste cuando creaste la instancia de Cloud SQL.

./cloud-sql-proxy --private-ip INSTANCE_CONNECTION_NAME

Cuando el proxy de Cloud SQL Auth se inicia de forma correcta, aparece un mensaje similar al siguiente en la ventana de SSH:

Listening on 127.0.0.1:5432 for myInstance
Ready for new connections

Conéctate a tu instancia de Cloud SQL

Usa la ventana SSH 2 para este paso.

Ejecuta el siguiente comando después de reemplazar DB_NAME por el nombre de la base de datos de Cloud SQL:

psql "host=127.0.0.1 port=5432 sslmode=disable dbname=DB_NAME user=postgres"

En el cuadro de contraseña Intro: ingresa la contraseña de tu cuenta de PostgreSQL.

Verifica que aparezca el cuadro de PostgreSQL. Te conectaste a tu base de datos con el cliente psql.

Regresa a la ventana de terminal en la que iniciaste el proxy de Cloud SQL Auth. Deberías ver un mensaje similar al siguiente:

New connection for myInstance

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página.

  1. En la Google Cloud consola de, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Selecciona la instancia myinstance para abrir la página de detalles de la instancia.
  3. En la barra de íconos en la parte superior de la página, haz clic en Borrar.
  4. En la ventana Borrar instancia, escribe el nombre de tu instancia y, luego, haz clic en Borrar.

Pasos opcionales de limpieza

Si no usas las API que se habilitaron como parte de esta guía de inicio rápido, puedes inhabilitarlas.

  • API que se habilitaron en esta guía de inicio rápido:
    • API de Cloud SQL Admin
  1. En la Google Cloud consola, ve a la página APIs.

    Ir a las API

  2. Selecciona la API de Cloud SQL Admin y, luego, haz clic en el botón Inhabilitar API.

  3. En la Google Cloud consola de, ve a la página Instancias de VM.

    Ir a Instancias de VM

  4. Selecciona el nombre de tu instancia.

  5. Selecciona Borrar en el menú Más acciones.

¿Qué sigue?

En función de tus necesidades, puedes obtener más información para crear instancias de Cloud SQL.

También puedes obtener información sobre cómo crear usuarios de PostgreSQL y bases de datos para tu instancia de Cloud SQL.

Además, puedes obtener información sobre la conexión a una instancia de Cloud SQL desde otras Google Cloud aplicaciones: