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

En esta página, se muestra cómo crear una instancia de MySQL y conectarse a ella 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 autenticación de Cloud SQL. Luego, usarás la segunda ventana para conectarte a la instancia de Cloud SQL mediante la conexión al proxy de autenticación de Cloud SQL.

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

      El proxy de autenticación de Cloud SQL actúa como un conector entre el cliente mysql y la instancia de Cloud SQL.

    3. Inicia el proxy de Cloud SQL Auth

      Si se ejecuta de forma correcta, el proxy de autenticación de Cloud SQL 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 mysql al proxy de autenticación de Cloud SQL.

    Si se ejecuta de forma correcta, verás el mensaje de mysql 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 autenticación de Cloud SQL.

  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 MySQL 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 MySQL.
    2. Selecciona la edición Enterprise.
    3. Elige el ajuste preestablecido 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. Ingrese una contraseña para el usuario raíz. Toma nota de la contraseña que crees, ya que la necesitarás más adelante.
  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 de 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 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 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 mysql y el proxy de autenticación de Cloud SQL, 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 mysql y el proxy de autenticación de Cloud SQL y, luego, iniciarás el proxy de autenticación de Cloud SQL, 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.

Instala el cliente MySQL

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

Instala el cliente MySQL desde el administrador de paquetes y detén el servidor mysqld:

sudo apt-get update
sudo apt-get install default-mysql-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:3306 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:

mysql -u root -p --host 127.0.0.1 --port 3306

Cuando se te solicite Enter password:, ingresa la contraseña de tu cuenta de usuario raíz de MySQL.

Verifica que aparezca el mensaje de MySQL. Te conectaste a tu base de datos con el cliente MySQL.

Regresa a la ventana de terminal en la que iniciaste el proxy de autenticación de Cloud SQL. 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 MySQL 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: