Crear instancias

En esta página se describe cómo crear una instancia de Cloud SQL para SQL Server.

Para obtener información detallada sobre todos los ajustes de instancias, consulta Ajustes de instancias.

Una instancia recién creada tiene una base de datos sqlserver.

Después de crear una instancia de Cloud SQL para SQL Server, puedes añadirle bases de datos creándolas o importándolas.

El número máximo de instancias que puedes tener en un solo proyecto depende de la arquitectura de red de esas instancias:

  • Nueva arquitectura de red SQL: puedes tener hasta 1000 instancias por proyecto.
  • Arquitectura de red SQL antigua: puedes tener hasta 100 instancias por proyecto.
  • Usar ambas arquitecturas: tu límite estará entre 100 y 1000, en función de la distribución de tus instancias en las dos arquitecturas.

Envía un caso de asistencia para solicitar un aumento. Las réplicas de lectura se contabilizan como instancias.

Elegir entre la edición Enterprise Plus y la edición Enterprise de Cloud SQL

Cuando creas una instancia de Cloud SQL para SQL Server, puedes elegir la configuración de la máquina entre varias familias de máquinas diferentes, en función de la edición de Cloud SQL.

Con la edición Cloud SQL Enterprise Plus, puedes elegir entre dos familias de máquinas:

  • Optimizado para el rendimiento: ofrece una relación precio-rendimiento equilibrada para varias cargas de trabajo de SQL Server con una relación entre memoria y computación de 1 vCPU por cada 8 GB de RAM.
  • Optimizado para memoria: ofrece proporciones elevadas de memoria por recursos de computación para cargas de trabajo que requieren mucha memoria, con 1 vCPU por cada 32 GB de RAM. Las máquinas optimizadas para memoria son adecuadas para cargas de trabajo de SQL Server que requieren consultas complejas, analíticas e informes de inteligencia empresarial que se benefician de almacenar conjuntos de datos más grandes en la memoria durante el procesamiento de datos.

Con la edición Enterprise de Cloud SQL, puedes elegir entre varias configuraciones de máquina en función de tus requisitos de vCPU y memoria. En las secciones siguientes se muestra la configuración de vCPU y memoria de cada versión de la base de datos y tipo de máquina:

SQL Server 2017 Express, SQL Server 2019 Express y SQL Server 2022 Express

Tipo de máquina vCPU/Memoria
No aplicable
  • 1 vCPU y 3, 75 GB
  • 2 vCPUs, 8 GB
  • 4 vCPUs, 16 GB
  • 8 vCPUs, 32 GB
Personalizado De 1 a 8 vCPUs, de 3,75 GB a 52 GB

SQL Server 2017 Web, SQL Server 2019 Web y SQL Server 2022 Web

.
Tipo de máquina vCPU/Memoria
No aplicable
  • 1 vCPU y 3, 75 GB
  • 2 vCPUs, 8 GB
  • 4 vCPUs, 16 GB
  • 8 vCPUs, 32 GB
Personalizado De 1 a 32 vCPUs, de 3,75 a 208 GB

SQL Server 2017 Standard, SQL Server 2019 Standard y SQL Server 2022 Standard

Tipo de máquina vCPU/Memoria
No aplicable
  • 1 vCPU y 3, 75 GB
  • 2 vCPUs, 8 GB
  • 4 vCPUs, 16 GB
  • 8 vCPUs, 32 GB
Personalizado De 1 a 48 vCPUs, de 3,75 GB a 312 GB

SQL Server 2017 Enterprise, SQL Server 2019 Enterprise y SQL Server 2022 Enterprise

Tipo de máquina vCPU/Memoria
No aplicable
  • 1 vCPU y 3, 75 GB
  • 2 vCPUs, 8 GB
  • 4 vCPUs, 16 GB
  • 8 vCPUs, 32 GB
Personalizado De 2 a 96 vCPUs, de 3,75 GB a 624 GB
Optimización del rendimiento
(solo en Cloud SQL Enterprise Plus)
  • 2 vCPUs, 16 GB
  • 4 vCPUs, 32 GB
  • 8 vCPUs, 64 GB
  • 16 vCPUs, 128 GB
  • 32 vCPUs, 256 GB
  • 48 vCPUs, 384 GB
  • 64 vCPUs, 512 GB
  • 80 vCPUs, 640 GB
  • 96 vCPUs, 768 GB
  • 128 vCPUs, 864 GB
Optimizado para memoria
(solo en Cloud SQL Enterprise Plus)
  • 4 vCPUs, 128 GB
  • 8 vCPUs, 256 GB
  • 16 vCPUs, 512 GB

Multihilo simultáneo

El multihilo simultáneo (SMT) en Cloud SQL para SQL Server te permite ejecutar dos CPUs virtuales (vCPUs) como hilos independientes en un núcleo físico. La función SMT está habilitada de forma predeterminada, pero puedes inhabilitarla, lo que podría reducir los costes de licencia.

Inhabilitar SMT puede afectar al rendimiento de tu instancia. Para saber cómo afecta la inhabilitación de SMT al rendimiento de tu instancia, te recomendamos que realices pruebas de carga en ella.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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 (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. Install the gcloud CLI.

  5. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  6. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  7. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  9. Install the gcloud CLI.

  10. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Asegúrate de tener los roles Administrador de Cloud SQL y Lector de Compute en tu cuenta de usuario.

    Ir a la página de gestión de identidades y accesos

    Más información sobre los roles y los permisos

  13. Crear una instancia de SQL Server

    .

    Consola

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

      Ir a Instancias de Cloud SQL

    2. Haz clic en Crear instancia.
    3. En el panel Elige tu motor de base de datos de la página Crear una instancia, haz clic en Elegir SQL Server.
    4. En la sección Choose a Cloud SQL edition (Elegir una edición de Cloud SQL) de la página Create a SQL Server instance (Crear una instancia de SQL Server), selecciona la edición de Cloud SQL que quieras para tu instancia: Enterprise o Enterprise Plus.

      Para obtener más información sobre las ediciones de Cloud SQL, consulta el artículo Introducción a las ediciones de Cloud SQL.

    5. Selecciona el preajuste de edición de tu instancia. Para ver los preajustes disponibles, haz clic en el menú Preajuste de edición.
    6. En la sección Información de la instancia, selecciona la versión de la base de datos de tu instancia. Para ver las versiones disponibles, haz clic en el menú Versión de la base de datos.
    7. En el campo ID de instancia del panel Información de la instancia, introduce un ID para tu instancia.

      No es preciso incluir el ID del proyecto en el nombre de la instancia. Esto se hace de forma automática donde corresponda (por ejemplo, en los archivos de registro).

    8. En el campo Contraseña, introduce una contraseña para el usuario.
    9. Para ver la contraseña en texto sin formato, haz clic en el icono Mostrar contraseña.

      Puedes introducir la contraseña manualmente o hacer clic en Generar para que Cloud SQL cree una automáticamente.

    10. En la sección Choose region and zonal availability (Elegir región y disponibilidad zonal), selecciona la región y la zona de tu instancia. La disponibilidad de las regiones puede variar en función de la edición de Cloud SQL para SQL Server. Para obtener más información, consulta Acerca de la configuración de instancias.

      Ubica tu instancia en la misma región que los recursos que accedan a ella. La región que selecciones no se podrá modificar en el futuro. En la mayoría de los casos, no es necesario que especifiques una zona.

      Si vas a configurar tu instancia para que tenga alta disponibilidad, puedes seleccionar una zona principal y otra secundaria.

      Se aplican las siguientes condiciones cuando se usa la zona secundaria durante la creación de instancias:

      • Las zonas tienen los valores predeterminados Any para la zona principal y Any (different from primary) para la secundaria.
      • Si se especifican las zonas principal y secundaria, deben ser distintas.
    11. En la sección Personalizar tu instancia, actualiza los ajustes de tu instancia. Para empezar, haz clic en MOSTRAR OPCIONES DE CONFIGURACIÓN para ver los grupos de ajustes. A continuación, despliega los grupos que quieras revisar y personaliza los ajustes. A la derecha se muestra un resumen de todas las opciones que selecciones. Personalizar estos ajustes de instancia es opcional. Los valores predeterminados se asignan en todos los casos en los que no se realizan personalizaciones.

      En la siguiente tabla se resumen los ajustes de las instancias. Para obtener más información sobre cada ajuste, consulta la página Configuración de instancias.

      Ajuste Notas
      Tipo de máquina
      Tipo de máquina Selecciona Ligero, Estándar (el más habitual) o Memoria alta. Cada tipo de máquina se clasifica según el número de CPUs (núcleos) y la cantidad de memoria de la instancia.
      Núcleos El número de vCPUs para tu instancia. Más información.
      Memoria La cantidad de memoria de tu instancia, en GB. Más información
      Personalizado En el tipo de máquina de núcleo dedicado, en lugar de seleccionar una configuración predefinida, selecciona el botón Personalizar para crear una instancia con una configuración personalizada. Cuando selecciones esta opción, tendrás que elegir el número de núcleos y la cantidad de memoria de tu instancia. Más información
      Almacenamiento
      Tipo de almacenamiento Determina si la instancia usa almacenamiento SSD o HDD. Más información.
      Capacidad de almacenamiento La cantidad de almacenamiento aprovisionado para la instancia. Más información
      Habilitar aumentos automáticos de almacenamiento Determina si Cloud SQL proporciona automáticamente más espacio de almacenamiento para la instancia cuando queda poco espacio libre. Más información
      Cifrado
      Cifrado gestionado por GoogleEs la opción predeterminada.
      Clave de cifrado gestionada por el cliente (CMEK)Selecciona para usar tu clave con Google Cloud Key Management Service. Más información
      Conexiones
      IP privada Añade una dirección IP privada a tu instancia. Para habilitar la conexión a la instancia, es necesario realizar una configuración adicional.
      Si quieres, puedes especificar un intervalo de IPs asignadas para que tus instancias lo usen en las conexiones.
      1. Despliega la opción Mostrar intervalo de direcciones IP asignado.
      2. Seleccione un intervalo de IP en el menú desplegable.

      Tu instancia puede tener una dirección IP pública y una privada.

      IP pública Añade una dirección IP pública a tu instancia. A continuación, puede añadir redes autorizadas para conectarse a la instancia.

      Tu instancia puede tener una dirección IP pública y una privada.

      Más información sobre el uso de IPs públicas

      Redes autorizadas

      Añade el nombre de la nueva red y la dirección de red. Más información

      Seguridad
      Modo de autoridad de certificación del servidor

      Elige el tipo de autoridad de certificación (CA) que firma el certificado de servidor de esta instancia de Cloud SQL. Más información

      De forma predeterminada, cuando creas una instancia en la consola, esta usa la autoridad de certificación interna gestionada por Google (GOOGLE_MANAGED_INTERNAL_CA), que es la opción de AC por instancia. Google Cloud

      Protección de datos
      Automatizar copias de seguridad El periodo de tiempo en que deseas que comiencen las copias de seguridad.
      Elige dónde se almacenarán las copias de seguridadSelecciona Multirregional en la mayoría de los casos prácticos. Si necesitas almacenar copias de seguridad en una región específica (por ejemplo, por motivos normativos), selecciona Región y, a continuación, elige la región en el menú desplegable Ubicación.
      Elige cuántas copias de seguridad automáticas quieres almacenarEl número de copias de seguridad automatizadas que quieres conservar (de 1 a 365 días). Más información
      Habilitar recuperación a un momento dado Habilita la recuperación a un momento dado y el registro de transacciones. Más información
      Habilitar protección contra la eliminación Determina si se protege una instancia frente a la eliminación accidental. Más información
      Habilitar copias de seguridad conservadas después de eliminar una instancia Determina si las copias de seguridad automatizadas y bajo demanda se conservan después de eliminar una instancia. Más información
      Elegir cuántos días de registros se conservarán Configura la retención de registros de escritura anticipada entre 1 y 7 días. El ajuste predeterminado es de 7 días. Más información
      Mantenimiento
      Ventana preferida Determina un periodo de una hora cuando Cloud SQL puede realizar un mantenimiento disruptivo en la instancia. Si no se configura el periodo, se puede realizar un mantenimiento disruptivo en cualquier momento. Más información
      Orden de las actualizaciones El horario preferido para las actualizaciones de la instancia, en relación con otras instancias en el mismo proyecto. Más información
      Banderas
      AÑADIR MARCADOR Se pueden usar marcadores de bases de datos para controlar la configuración y los parámetros de la instancia. Más información
      Etiquetas
      AÑADIR ETIQUETAAñade una clave y un valor para cada etiqueta que añadas. Las etiquetas te ayudan a organizar tus instancias.
    12. Haz clic en Crear instancia.

      Nota: La creación de la instancia puede tardar unos minutos. Sin embargo, puedes ver información sobre la instancia mientras se crea.

    gcloud

    Para obtener información sobre cómo instalar y empezar a usar la CLI de gcloud, consulta Instalar gcloud CLI. Para obtener información sobre cómo iniciar Cloud Shell, consulta la documentación de Cloud Shell.

    Debes usar la versión 243.0.0 de gcloud o una posterior.

    1. Usa el comando gcloud sql instances create para crear la instancia:
    2. En el caso de las instancias de la edición Cloud SQL Enterprise Plus:

            gcloud sql instances create INSTANCE_NAME \
            --database-version=DATABASE_VERSION \
            --region=REGION \
            --tier=TIER \
            --root-password=ROOT_PASSWORD \
            --edition=ENTERPRISE_PLUS
          

      En el caso de las instancias de la edición Enterprise de Cloud SQL:

            gcloud sql instances create INSTANCE_NAME \
            --database-version=DATABASE_VERSION \
            --region=REGION \
            --cpu=NUMBER_OF_vCPUs \
            --memory=MEMORY_SIZE \
            --root-password=ROOT_PASSWORD \
            --edition=ENTERPRISE
          

      No es preciso incluir el ID del proyecto en el nombre de la instancia. Esto se hace de forma automática donde corresponda (por ejemplo, en los archivos de registro).

      Los valores de las vCPUs y el tamaño de la memoria están limitados en la edición Cloud SQL Enterprise. Para obtener más información, consulta Elegir entre la edición Enterprise Plus y la edición Enterprise de Cloud SQL.

      Por ejemplo, la siguiente cadena crea una instancia con dos vCPUs y 7680 MB de memoria:

          gcloud sql instances create myinstance \
          --database-version=SQLSERVER_2017_STANDARD \
          --region=us-central1 \
          --cpu=2 \
          --memory=7680MB \
          --root-password=EXAMPLE_PASSWORD \
          --edition=ENTERPRISE
          

      Para ver algunos valores de ejemplo, consulta Tipos de máquinas de ejemplo.

      Para obtener información sobre los parámetros de la configuración de instancias, consulta gcloud sql instances create.

      El valor predeterminado de REGION es us-central1.

      No incluyas información sensible ni de identificación personal en el nombre de tu instancia, ya que es visible externamente.
      No es necesario que incluyas el ID del proyecto en el nombre de la instancia. Esto se hace de forma automática donde corresponda (por ejemplo, en los archivos de registro).

      Si vas a crear una instancia de alta disponibilidad, puedes especificar las zonas principal y secundaria con los parámetros --zone y --secondary-zone. Se aplican las siguientes condiciones cuando se usa la zona secundaria durante la creación o edición de una instancia:

      • Las zonas deben ser válidas.
      • Si se especifica la zona secundaria, también se debe especificar la principal.
      • Si se especifican las zonas principal y secundaria, deben ser zonas distintas.
      • Si se especifican las zonas principal y secundaria, deben pertenecer a la misma región.

      Puedes añadir más parámetros para determinar otros ajustes de la instancia:

      Ajuste Parámetro Notas
      Parámetros obligatorios
      Versión de la base de datos --database-version La versión de la base de datos, que se basa en tu edición de Cloud SQL.
      Región --region Consulta los valores válidos.
      Connectivity
      IP privada --network

      --no-assign-ip (opcional)

      --allocated-ip-range-name (opcional)

      --enable-google-private-path (opcional)

      --network: especifica el nombre de la red de VPC que quieres usar en esta instancia. El acceso privado a servicios ya debe estar configurado en la red. Solo disponible para el comando beta (gcloud beta sql instances create).

      --no-assign-ip: la instancia solo tendrá una dirección IP privada.

      --allocated-ip-range-name: si se especifica, define un nombre de intervalo para el que se asigna un intervalo de IPs. Por ejemplo, google-managed-services-default. El nombre del intervalo debe cumplir RFC-1035 y tener entre 1 y 63 caracteres. (gcloud alpha sql instances create).

      IP pública --authorized-networks En el caso de las conexiones de IP pública, solo las conexiones de redes autorizadas pueden conectarse a tu instancia. Más información
      Modo de AC del servidor --server-ca-mode

      La marca --server-ca-mode configura el tipo de autoridad de certificación (AC) del certificado de servidor de una instancia. Puedes seleccionar una de las siguientes opciones:

      • GOOGLE_MANAGED_INTERNAL_CA: es el valor predeterminado. Con esta opción, una AC interna dedicada a cada instancia de Cloud SQL firma el certificado de servidor de esa instancia.
      • GOOGLE_MANAGED_CAS_CA: con esta opción, se usa una jerarquía de AC que consta de una AC raíz y ACs de servidor secundarias gestionadas por Cloud SQL y alojadas en Google Cloud Servicio de Autoridades de Certificación (CA Service). Las CAs de servidor subordinadas de una región firman los certificados de servidor y se comparten entre las instancias de la región.
      • CUSTOMER_MANAGED_CAS_CA: con esta opción, defines la jerarquía de la CA y gestionas la rotación de los certificados de la CA. Crea un grupo de ACs en el servicio de ACs en la misma región que tu instancia. Una de las ACs del grupo se usa para firmar el certificado de servidor. Para obtener más información, consulta Usar una CA gestionada por el cliente.
      Arquitectura de red --enforce-new-network-architecture Fuerza el uso de la nueva arquitectura de red para la instancia al crearla. Si usas esta marca al crear una instancia antes de que el proyecto se haya actualizado por completo a la nueva arquitectura de red, puede que se consuman demasiadas direcciones IP o que no se puedan crear instancias si no quedan suficientes direcciones IP en el intervalo de IP asignado. Para obtener más información, consulta los artículos Actualizar una instancia a la nueva arquitectura de red y Asignar un intervalo de direcciones IP.
      Tipo de máquina y almacenamiento
      Tipo de máquina --tier
      Tipo de almacenamiento --storage-type Determina si la instancia usa almacenamiento SSD o HDD. Más información.
      Capacidad de almacenamiento --storage-size Cantidad de almacenamiento aprovisionado para la instancia, en GB. Más información
      Aumento automático de almacenamiento --storage-auto-increase Determina si Cloud SQL proporciona automáticamente más espacio de almacenamiento para la instancia cuando queda poco espacio libre. Más información.
      Límite de aumento automático de almacenamiento --storage-auto-increase-limit Determina cuánto puede aumentar automáticamente el almacenamiento de Cloud SQL. Solo está disponible para el comando beta (gcloud beta sql instances create). Más información
      Copias de seguridad automáticas y alta disponibilidad
      Alta disponibilidad --availability-type En el caso de una instancia de alta disponibilidad, defina el valor en REGIONAL. Más información
      Zona secundaria --secondary-zone Si vas a crear una instancia de alta disponibilidad, puedes especificar las zonas principal y secundaria con --zone y --secondary-zone parameters. Se aplican las siguientes restricciones cuando se usa la zona secundaria durante la creación o edición de instancias:
      • Las zonas deben ser válidas.
      • Si se especifica la zona secundaria, también se debe especificar la principal.
      • Si se especifican las zonas primaria y secundaria, deben ser zonas distintas.

        Si se especifican las zonas principal y secundaria, deben pertenecer a la misma región.

      Copias de seguridad automáticas --backup-start-time El periodo de tiempo en que deseas que comiencen las copias de seguridad.
      Configuración de conservación de copias de seguridad automáticas --retained-backups-count Número de copias de seguridad automatizadas que se conservarán. Más información
      Configuración de conservación de registros de transacciones --retained-transaction-log-days Número de días que se conservarán los registros de transacciones para la recuperación a un momento dado. Más información
      Recuperación a un momento dado --enable-point-in-time-recovery Habilita la recuperación a un momento dado y los registros de transacciones. Más información
      Añadir marcas de base de datos
      Marcadores de bases de datos --database-flags Se pueden usar marcadores de bases de datos para controlar la configuración y los parámetros de la instancia. Más información sobre los marcadores de bases de datos.
      Calendario de mantenimiento
      Ventana de mantenimiento --maintenance-window-day,
      --maintenance-window-hour
      Determina un periodo de una hora en el que Cloud SQL puede realizar tareas de mantenimiento que interrumpan el servicio en tu instancia. Si no la configuras, el mantenimiento disruptivo se puede llevar a cabo en cualquier momento. Más información
      Horario de mantenimiento --maintenance-release-channel El horario preferido para las actualizaciones de la instancia, en relación con otras instancias en el mismo proyecto. Usa preview para ver las actualizaciones anteriores y production para ver las posteriores. Más información
      SAN personalizado
      Añadir un nombre alternativo de entidad (SAN) personalizado --custom-subject-alternative-names=DNS_NAMES

      Si quieres usar un nombre DNS personalizado para conectarte a una instancia de Cloud SQL en lugar de una dirección IP, configura el nombre alternativo de asunto (SAN) personalizado al crear la instancia. El nombre de DNS personalizado que insertes en el ajuste SAN personalizado se añadirá al campo SAN del certificado de servidor de la instancia. De esta forma, puedes usar el nombre de DNS personalizado con la validación de nombre de host de forma segura.

      Antes de poder usar el nombre de DNS personalizado en tus clientes y aplicaciones, debes configurar la asignación entre el nombre de DNS y la dirección IP. Este proceso se conoce como resolución de DNS. Puedes añadir una lista separada por comas de hasta tres nombres DNS personalizados al ajuste SAN personalizado.

      .
    3. Ten en cuenta la dirección IP asignada automáticamente.

      Si no usas el proxy de autenticación de Cloud SQL, usarás esta dirección como dirección de host que tus aplicaciones o herramientas usarán para conectarse a la instancia.

    4. Define la contraseña del usuario:
            gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \
             --password=[PASSWORD]
            

    Terraform

    Para crear una instancia, usa un recurso de Terraform.

    resource "google_sql_database_instance" "instance" {
      name             = "sqlserver-instance"
      region           = "us-central1"
      database_version = "SQLSERVER_2019_STANDARD"
      root_password    = "INSERT-PASSWORD-HERE"
      settings {
        tier = "db-custom-2-7680"
      }
      # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
      # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
      deletion_protection = false
    }

    Aplica los cambios

    Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud

    Preparar Cloud Shell

    1. Abre Cloud Shell.
    2. Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.

      Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.

      export GOOGLE_CLOUD_PROJECT=PROJECT_ID

      Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

    Preparar el directorio

    Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

    1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
      mkdir DIRECTORY && cd DIRECTORY && touch main.tf
    2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

      Copia el código de ejemplo en el archivo main.tf que acabas de crear.

      También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

    3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
    4. Guarda los cambios.
    5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
      terraform init

      Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

      terraform init -upgrade

    Aplica los cambios

    1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
      terraform plan

      Haga las correcciones necesarias en la configuración.

    2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
      terraform apply

      Espera hasta que Terraform muestre el mensaje "Apply complete!".

    3. Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.

    Eliminar los cambios

    Para eliminar los cambios, sigue estos pasos:

    1. Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor false al argumento deletion_protection.
      deletion_protection =  "false"
    2. Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo yes en la petición:
      terraform apply
    1. Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce yes en la petición:

      terraform destroy

    REST v1

    1. Crear la instancia

    En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.

    Consulta también la página Instances:insert. Para obtener información sobre la configuración de instancias, incluidos los valores válidos de las regiones, consulta Configuración de instancias. Para obtener información sobre los tipos de máquinas, consulta Configuraciones de instancias personalizadas.

    No incluyas información sensible ni de identificación personal en instance-id, ya que el valor es visible externamente.

    No es necesario que incluyas el ID del proyecto en el nombre de la instancia. Esto se hace de forma automática donde corresponda (por ejemplo, en los archivos de registro).

    El campo collation (que no se muestra en la siguiente llamada básica a la API) te permite definir un valor predeterminado para el tipo de ordenación que se usa en las bases de datos de tu instancia. Esta configuración predeterminada de la intercalación es permanente a nivel de instancia, pero no a nivel de base de datos. Puedes cambiar este valor predeterminado con una herramienta de administración de bases de datos, pero solo para una base de datos específica que estés creando o actualizando. No se puede cambiar la intercalación predeterminada de una instancia después de crearla (a menos que se vuelva a crear). Para obtener información sobre las intercalaciones en SQL Server, consulta Compatibilidad con intercalaciones y Unicode. Para ver un prototipo de una solicitud JSON, consulta Configuración. Puede especificar la siguiente cadena de ejemplo para el parámetro collation: SQL_Latin1_General_CP1_CI_AS.

    El campo timeZone (que no se muestra en la siguiente llamada básica a la API) permite definir una zona horaria para una instancia. Una vez que hayas creado una instancia, podrás cambiar su zona horaria. Para obtener más información y una lista de cadenas aceptadas, consulta Configuración. Puedes especificar la siguiente cadena de ejemplo en el campo timeZone: "Pacific Standard Time". Más información

    Para crear una instancia integrada con Microsoft AD gestionado, especifica un dominio, como subdomain.mydomain.com, en el campo domain. Para obtener más información, consulta Crear una instancia con autenticación de Windows. Además, ten en cuenta los procedimientos y las restricciones para integrar un dominio de Microsoft AD gestionado en otro proyecto.

    Para obtener información sobre cómo definir el valor de machine-type en el cuerpo de la solicitud, consulta Configuraciones de instancias personalizadas.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: tu ID de proyecto.
    • INSTANCE_ID: el ID de instancia.
    • REGION: el nombre de la región.
    • DATABASE_VERSION: una cadena enum de la versión de la base de datos. Por ejemplo: SQLSERVER_2017_STANDARD.
    • PASSWORD: la contraseña del usuario root.
    • MACHINE_TYPE: una cadena enum del tipo de máquina (nivel). Por ejemplo:
      db-perf-optimized-N-4.
    • EDITION_TYPE: tu edición de Cloud SQL. El valor predeterminado es ENTERPRISE.
    • DATA_CACHE_ENABLED: (opcional) para habilitar la caché de datos en tu instancia, asigna el valor true a este parámetro.
    • PRIVATE_NETWORK: especifica el nombre de la red de nube privada virtual (VPC) que quieres usar en esta instancia. El acceso privado a servicios ya debe estar configurado en la red.
    • AUTHORIZED_NETWORKS: en el caso de las conexiones de IP pública, especifica las conexiones de las redes autorizadas que pueden conectarse a tu instancia.
    • CA_MODE: especifica una jerarquía de autoridades de certificación para la instancia, ya sea GOOGLE_MANAGED_INTERNAL_CA o GOOGLE_MANAGED_CAS_CA. Si no especifica serverCaMode, la configuración predeterminada es GOOGLE_MANAGED_INTERNAL_CA. Esta función está en versión preliminar.
    • DNS_NAMES: añade una lista separada por comas de hasta tres nombres DNS al certificado de servidor de tu instancia de Cloud SQL. Puedes proteger varios nombres de DNS con un solo certificado. Esta función está disponible en Vista Previa y solo para instancias de CUSTOMER_MANAGED_CAS_CA.

    Puede usar el campo sqlNetworkArchitecture para forzar el uso de la nueva arquitectura de red en la instancia al crearla, aunque el proyecto no se haya actualizado por completo. Para obtener más información sobre la nueva arquitectura de red y sus implicaciones, consulta los artículos Actualizar una instancia a la nueva arquitectura de red y Asignar un intervalo de direcciones IP.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

    Cuerpo JSON de la solicitud:

    {
      "name": "INSTANCE_ID",
      "region": "REGION",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "backupConfiguration": {
          "enabled": true
        },
        "dataCacheConfig": {
          "dataCacheEnabled": DATA_CACHE_ENABLED
        },
        "ipConfiguration": {
          "privateNetwork": "PRIVATE_NETWORK",
          "authorizedNetworks": [AUTHORIZED_NETWORKS],
          "ipv4Enabled": false,
          "serverCaMode": "CA_MODE",
          "customSubjectAlternativeNames": "DNS_NAMES"
        }
      },
      "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
    }
    

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Una vez creada la instancia, puedes configurar la cuenta de usuario predeterminada.

    2. Obtener la dirección IPv4 de la instancia

    También puedes recuperar la dirección IPv4 asignada automáticamente. En la respuesta, esa dirección se encuentra en el campo ipAddress.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: tu ID de proyecto
    • INSTANCE_ID: tu ID de instancia, creado en el paso anterior

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "DATABASE_VERSION",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "MACHINE_TYPE",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "ZONE",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "19:00",
          "kind": "sql#backupConfiguration",
          "enabled": true
        },
        "settingsVersion": "1",
        "dataDiskSizeGb": "10"
      },
      "etag": "--redacted--",
      "ipAddresses": [
        {
          "type": "PRIMARY",
          "ipAddress": "10.0.0.1"
        }
      ],
      "serverCaCert": {
        ...
      },
      "instanceType": "CLOUD_SQL_INSTANCE",
      "project": "PROJECT_ID",
      "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
      "backendType": "BACKEND_TYPE",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "connectionName": "PROJECT_ID:REGION:INSTANCE_ID",
      "name": "INSTANCE_ID",
      "region": "REGION",
      "gceZone": "ZONE"
    }
    

    REST v1beta4

    1. Crear la instancia

    En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.

    Consulta también la página Instances:insert. Para obtener información sobre la configuración de instancias, incluidos los valores válidos de las regiones, consulta Configuración de instancias. Para obtener más información sobre los tipos de máquinas, consulta Configuraciones de instancias personalizadas.

    No incluyas información sensible ni de identificación personal en instance-id, ya que el valor es visible externamente.

    No es necesario que incluyas el ID del proyecto en el nombre de la instancia. Esto se hace de forma automática donde corresponda (por ejemplo, en los archivos de registro).

    El campo collation (que no se muestra en la siguiente llamada básica a la API) te permite definir un valor predeterminado para el tipo de ordenación que se usa en las bases de datos de tu instancia. Esta configuración predeterminada de la intercalación es permanente a nivel de instancia, pero no a nivel de base de datos. Puedes cambiar este valor predeterminado con una herramienta de administración de bases de datos, pero solo para una base de datos específica que estés creando o actualizando. No puedes cambiar la intercalación predeterminada de una instancia después de crearla (a menos que la vuelvas a crear). Para obtener información sobre las intercalaciones en SQL Server, consulta Compatibilidad con intercalaciones y Unicode. Para ver un prototipo de solicitud JSON, consulta Configuración. Puede especificar la siguiente cadena de ejemplo para el parámetro collation: SQL_Latin1_General_CP1_CI_AS.

    El campo timeZone (que no se muestra en la siguiente llamada básica a la API) permite definir una zona horaria para una instancia. Una vez que hayas creado una instancia, podrás cambiar su zona horaria. Para obtener más información y una lista de cadenas aceptadas, consulta Configuración. Puedes especificar la siguiente cadena de ejemplo en el campo timeZone: "Pacific Standard Time". Más información

    Para crear una instancia integrada con Microsoft AD gestionado, especifica un dominio, como subdomain.mydomain.com, en el campo domain. Para obtener más información, consulta el artículo Crear una instancia con autenticación de Windows. Además, ten en cuenta los procedimientos y las restricciones para integrar un dominio de Microsoft AD gestionado en otro proyecto.

    Para obtener información sobre cómo definir el valor de machine-type en el cuerpo de la solicitud, consulta Configuraciones de instancias personalizadas.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: tu ID de proyecto.
    • INSTANCE_ID: el ID de instancia.
    • REGION: el nombre de la región.
    • DATABASE_VERSION: una cadena enum de la versión de la base de datos.
    • MACHINE_TYPE: una cadena enum del tipo de máquina (nivel). Por ejemplo:
      db-perf-optimized-N-4.
    • PASSWORD: la contraseña del usuario root.
    • MACHINE_TYPE: una cadena enum del tipo de máquina (nivel), como: db-custom-[CPUS]-[MEMORY_MBS].
    • EDITION_TYPE: tu edición de Cloud SQL. El valor predeterminado es ENTERPRISE.
    • DATA_CACHE_ENABLED: (opcional) para habilitar la caché de datos en tu instancia, asigna el valor true a este parámetro.
    • PRIVATE_NETWORK: especifica el nombre de la red de nube privada virtual (VPC) que quieres usar en esta instancia. El acceso privado a servicios ya debe estar configurado en la red.
    • AUTHORIZED_NETWORKS: En el caso de las conexiones de IP pública, especifique las conexiones de las redes autorizadas que pueden conectarse a su instancia.
    • CA_MODE: especifica una jerarquía de autoridades de certificación para la instancia, ya sea GOOGLE_MANAGED_INTERNAL_CA o GOOGLE_MANAGED_CAS_CA. Si no especifica serverCaMode, la configuración predeterminada es GOOGLE_MANAGED_INTERNAL_CA. Esta función está en versión preliminar.
    • DNS_NAMES: añade una lista separada por comas de hasta tres nombres DNS al certificado de servidor de tu instancia de Cloud SQL. Puedes proteger varios nombres de DNS con un solo certificado. Esta función está disponible en Vista Previa y solo para instancias de CUSTOMER_MANAGED_CAS_CA.

    Puede usar el campo sqlNetworkArchitecture para forzar el uso de la nueva arquitectura de red en la instancia al crearla, aunque el proyecto no se haya actualizado por completo. Para obtener más información sobre la nueva arquitectura de red y sus implicaciones, consulta los artículos Actualizar una instancia a la nueva arquitectura de red y Asignar un intervalo de direcciones IP.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

    Cuerpo JSON de la solicitud:

    {
      "name": "INSTANCE_ID",
      "region": "REGION",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "backupConfiguration": {
          "enabled": true
        },
        "dataCacheConfig": {
          "dataCacheEnabled": DATA_CACHE_ENABLED
        },
        "ipConfiguration": {
          "privateNetwork": "PRIVATE_NETWORK",
          "authorizedNetworks": [AUTHORIZED_NETWORKS],
          "ipv4Enabled": false,
          "serverCaMode": "CA_MODE",
          "customSubjectAlternativeNames": "DNS_NAMES"
        }
      },
      "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
    }
    

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Una vez creada la instancia, puedes configurar la cuenta de usuario predeterminada.

    2. Obtener la dirección IPv4 de la instancia

    También puedes recuperar la dirección IPv4 asignada automáticamente. En la respuesta, esa dirección se encuentra en el campo ipAddress.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: tu ID de proyecto
    • INSTANCE_ID: tu ID de instancia, creado en el paso anterior

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "DATABASE_VERSION",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "MACHINE_TYPE",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "ZONE",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "19:00",
          "kind": "sql#backupConfiguration",
          "enabled": true
        },
        "settingsVersion": "1",
        "dataDiskSizeGb": "10"
      },
      "etag": "--redacted--",
      "ipAddresses": [
        {
          "type": "PRIMARY",
          "ipAddress": "10.0.0.1"
        }
      ],
      "serverCaCert": {
        ...
      },
      "instanceType": "CLOUD_SQL_INSTANCE",
      "project": "PROJECT_ID",
      "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
      "backendType": "BACKEND_TYPE",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "connectionName": "PROJECT_ID:REGION:INSTANCE_ID",
      "name": "INSTANCE_ID",
      "region": "REGION",
      "gceZone": "ZONE"
    }
    
    Para ver cómo se construye la solicitud de la API REST subyacente para esta tarea, consulta el Explorador de APIs en la página instances:insert.

    Generar el endpoint de escritura

    Un endpoint de escritura es un nombre de servicio de nombres de dominio (DNS) global que se resuelve automáticamente en la dirección IP de la instancia principal actual. Este endpoint redirige las conexiones entrantes a la nueva instancia principal automáticamente en caso de conmutación por error o conmutación de una réplica. Puede usar el endpoint de escritura en una cadena de conexión SQL en lugar de una dirección IP. Si usas un endpoint de escritura, no tendrás que hacer cambios en la conexión de la aplicación cuando se produzca una interrupción en una región.

    Para obtener más información sobre cómo usar un endpoint de escritura para conectarte a una instancia, consulta Conectarse a una instancia mediante un endpoint de escritura.

    Configuraciones de instancias personalizadas

    Las configuraciones de instancias personalizadas te permiten seleccionar la cantidad de memoria y CPUs que necesita tu instancia. Esta flexibilidad te permite elegir la configuración de VM adecuada para tu carga de trabajo. La disponibilidad del tipo de máquina depende de la edición de Cloud SQL para SQL Server.

    En el caso de las cargas de trabajo que requieran un procesamiento en tiempo real, asegúrate de que tu instancia tenga suficiente memoria para contener todo el conjunto de trabajo. Sin embargo, hay otros factores que pueden influir en los requisitos de memoria, como el número de conexiones activas y los procesos internos de sobrecarga. Debes realizar pruebas de carga para evitar problemas de rendimiento en tu entorno de producción.

    Cuando configures tu instancia, selecciona suficiente memoria y vCPUs para gestionar tu carga de trabajo y actualízala a medida que aumente. Una configuración de máquina con vCPUs insuficientes podría perder la cobertura de su SLA. Para obtener más información, consulta las directrices operativas.

    Tipos de máquinas para instancias de la edición Enterprise de Cloud SQL

    En las instancias de Cloud SQL Enterprise edition, también puedes crear configuraciones de instancias personalizadas con el comando gcloud sql instances create.

    Los nombres de los tipos de máquina siguen este formato: db-custom-NUMBER_OF_vCPUs-MEMORY

    Sustituye NUMBER_OF_vCPUs por el número de CPUs de la máquina y MEMORY por la cantidad de memoria de la máquina.

    Por ejemplo, si el nombre de tu máquina es db-custom y tiene 1 CPU y 3840 MB de RAM, el formato de la máquina es db-custom-1-3840.

    Al seleccionar el número de CPUs y la cantidad de memoria, hay algunas restricciones en la configuración que elijas:

    • El número de vCPUs que puedes configurar para tu instancia se basa en tu versión de SQL Server.
    • El número de vCPUs debe ser 1 o un número par entre 2 y 96.
    • El tamaño de la memoria debe ser:
      • De 0,9 a 6,5 GB por vCPU
      • Un múltiplo de 256 MB
      • Al menos 3,75 GB (3840 MB)

    Tipos de máquinas para instancias de la edición Cloud SQL Enterprise Plus

    En las instancias de la edición Enterprise Plus de Cloud SQL, los tipos de máquina están predefinidos, tal como se describe en las secciones siguientes.

    Familia de máquinas optimizadas para el rendimiento

    Esta familia de máquinas ofrece una relación precio-rendimiento equilibrada para una amplia variedad de cargas de trabajo de SQL Server con una proporción de memoria por vCPU de 1:8. La familia de máquinas optimizadas para el rendimiento ofrece los siguientes tipos de máquinas:

    Tipo de máquina Enterprise Plus vCPUs Memoria (GB)
    db-perf-optimized-N-2 2 16
    db-perf-optimized-N-4 4 32
    db-perf-optimized-N-8 8 64
    db-perf-optimized-N-16 16 128
    db-perf-optimized-N-32 32 256
    db-perf-optimized-N-48 48 384
    db-perf-optimized-N-64 64 512
    db-perf-optimized-N-80 80 640
    db-perf-optimized-N-96 96 17.
    db-perf-optimized-N-128 128 864

    Familia de máquinas con memoria optimizada

    Esta familia de máquinas ofrece una proporción elevada de memoria por recursos de computación para cargas de trabajo que requieren mucha memoria, con una vCPU por cada 32 GB de RAM. Las máquinas con memoria optimizada son idóneas para las cargas de trabajo de SQL Server que requieren consultas complejas, analíticas e informes de inteligencia empresarial que se benefician de almacenar conjuntos de datos más grandes en la memoria durante el procesamiento de datos. La familia de máquinas con memoria optimizada ofrece los siguientes tipos de máquinas:

    Tipo de máquina vCPUs Memoria (GB)
    db-memory-optimized-N-4 4 128
    db-memory-optimized-N-8 8 256
    db-memory-optimized-N-16 16 512

    Solucionar problemas

    Problema Solución de problemas
    Mensaje de error: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Intenta crear de nuevo la instancia de Cloud SQL.

    Siguientes pasos

    1. Crea una base de datos de SQL Server en la instancia.
    2. Crea usuarios de SQL Server en la instancia.
    3. Protege y controla el acceso a la instancia.
    4. Conéctate a la instancia con un cliente de SQL Server.
    5. Importar datos a la base de datos.
    6. Consulta información sobre la configuración de instancias.