Crea instancias de VM de SQL Server


Microsoft SQL Server es un sistema de base de datos que se ejecuta en Windows Server y algunas distribuciones de Linux. Puedes usar SQL Server en Compute Engine como parte del backend de tus aplicaciones, como un entorno de desarrollo y pruebas flexible o en conjunto con tus sistemas locales de copias de seguridad y recuperación ante desastres.

Compute Engine proporciona imágenes con Microsoft SQL Server preinstalado en Windows Server. Para estas imágenes de SQL Server, Compute Engine administra la licencia de Windows Server y de SQL Server y, además, incluye el costo en tu factura mensual. Crea VM con SQL Server y escala de forma horizontal a opciones de configuración grandes de varios nodos cuando las necesites.

Compute Engine almacena tus datos en discos persistentes duraderos con redundancia automática y encriptación en reposo automática. Usa estos discos persistentes para almacenar tus datos de SQL Server sin tener que preocuparte por la durabilidad o seguridad. Para obtener un mayor rendimiento, crea tus VM con un SSD local como un almacenamiento en caché que proporciona más IOPS y rendimiento para las consultas de SQL Server.

Puedes crear instancias de máquinas virtuales (VM) de Compute Engine que ejecuten SQL Server de las siguientes maneras:

Para obtener una lista completa de las imágenes disponibles que incluyen SQL Server preinstalado, consulta Detalles de los sistemas operativos.

Requisitos de tipo de máquina para imágenes de SQL Server

SQL Server Standard

Puedes ejecutar SQL Server Standard en VM con cualquier tipo de máquina, pero los tipos de máquina de núcleo compartido no tendrán un rendimiento óptimo. Google recomienda que uses VM con al menos una CPU virtual para ejecutar SQL Server Standard.

SQL Server Enterprise

Las VM que ejecutan SQL Server Enterprise deben tener al menos 4 CPU virtuales. Para obtener un rendimiento óptimo, Google recomienda que ejecutes SQL Server Enterprise en VM con mayores capacidades de memoria. En función de la carga de trabajo, debes usar tipos de máquinas con alta capacidad de memoria con 8 CPU virtuales o más. Estos tipos de máquinas maximizan la proporción de memoria para cada CPU virtual que está disponible en Compute Engine, que es óptima con VM de SQL Server Enterprise.

Además, puedes usar SQL Server Enterprise en Compute Engine para crear grupos de disponibilidad de SQL Server.

Componentes predeterminados

Las imágenes de SQL Server incluyen varios componentes predeterminados. Estos componentes predeterminados dependen de la edición de SQL Server que seleccionaste.

Para obtener información sobre los componentes predeterminados incluidos en tu versión de SQL Server, consulta Ediciones y funciones compatibles de SQL Server 2019.

Para obtener información sobre cómo modificar los componentes de SQL Server, consulta Agrega funciones a una VM de SQL Server.

Antes de empezar

  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Para obtener más información, consulta Set up authentication for a local development environment.

      REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Crea una instancia de SQL Server

Para crear una instancia de SQL Server, especifica la familia de imágenes de la versión específica de SQL Server que necesitas. Para obtener una lista de las familias de imágenes de SQL Server, consulta Detalles de los sistemas operativos.

Para un rendimiento óptimo, las plataformas de servidores de bases de datos requieren tipos de máquina con más CPU virtuales y mayores cantidades de memoria. Google recomienda que uses tipos de máquina con un mínimo de 2 CPU virtuales y 4 GB de memoria cuando ejecutes instancias de SQL Server. Puedes usar tipos personalizados de máquinas a fin de configurar instancias de SQL Server para cumplir con los requisitos de rendimiento de la carga de trabajo. Además, puedes usar discos persistentes más grandes y discos persistentes SSD más rápidos para mejorar el rendimiento de tus aplicaciones.

Además, debes configurar reglas de firewall específicas para permitir el tráfico de SQL Server en la subred o red de VPC de la que forma parte tu VM. Si quieres obtener más información, consulta Recomendaciones para las instancias de SQL Server.

Console

Para crear una instancia de SQL Server, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

  2. Especifica los detalles de la VM.

  3. En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:

    1. En la pestaña Imágenes públicas, haz clic en la lista Sistema operativo y, luego, selecciona SQL Server en Windows Server.
    2. En la lista Versión, selecciona una versión.
    3. En la lista Tipo de disco de arranque, selecciona un tipo de disco de arranque.
    4. En el campo Tamaño (GB), configura el tamaño del disco de arranque.
    5. Opcional: Para modificar la configuración avanzada del disco de arranque, haz clic en Mostrar configuración avanzada y, luego, especifica la configuración.
    6. Para guardar la configuración del disco de arranque, haz clic en Seleccionar.
  4. Haz clic en Crear.

Después de crear la VM, crea una regla de firewall para permitir el acceso a SQL Server en tu VM. El puerto predeterminado de SQL Server es 1433.

  1. En la consola de Google Cloud, ve a la página Reglas de firewall.

    Ir a Reglas de firewall

  2. En la parte superior de la página, haz clic en Crear regla de firewall.

  3. Especifica los detalles de esta regla de firewall.

    • En el campo Nombre, especifica el nombre de la regla de firewall.
    • En el campo Red, selecciona la red de VPC en la que se encuentra la instancia de SQL Server.
    • En Dirección de tráfico, selecciona Ingress.
    • En el campo Destinos, elige los destinos de la regla de firewall, que pueden ser todas las instancias, o bien etiquetas de destino o cuentas de servicio especificadas. Por ejemplo, puedes seleccionar la opción Todas las instancias de la red. Si configuraste una etiqueta o una cuenta de servicio para tu instancia de SQL Server, puedes limitar la regla de firewall a la etiqueta o cuenta de servicio específicas.
    • En el campo Filtro de origen, selecciona el rango de IP a las que deseas permitir el acceso en este puerto. Para una regla de entrada, puedes seleccionar rangos de IPv4 de origen, rangos de IPv6 de origen, etiquetas de origen o cuentas de servicio. Usa los campos después de Filtro de fuente para proporcionar información adicional sobre tu elección.
    • En la sección Protocolos y puertos, elige Protocolos y puertos especificados y, luego, ingresa el puerto que usa SQL Server. En este ejemplo, elige TCP y, luego, ingresa 1433, que es el puerto predeterminado.
  4. Haz clic en Crear para crear esta regla de firewall y permitir acceso a tu instancia de SQL Server a través del puerto 1433.

Si necesitas agregar reglas de firewall adicionales a tu VM, consulta la documentación de reglas de firewall.

gcloud

Usa el comando compute images list para ver una lista de imágenes de SQL Server disponibles:

gcloud compute images list --project windows-sql-cloud --no-standard-images

Usa el comando compute instances create para crear una VM nueva y especifica la familia de imágenes de una de las imágenes públicas de Windows Server o de SQL Server,

gcloud compute instances create VM_NAME \
    --image-project windows-sql-cloud \
    --image-family IMAGE_FAMILY \
    --machine-type MACHINE_TYPE \
    --boot-disk-size BOOT_DISK_SIZE \
    --boot-disk-type BOOT_DISK_TYPE

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la instancia nueva.
  • IMAGE_FAMILY: Es una de las familias de imágenes públicas de las imágenes de Windows Server o de SQL Server.
  • MACHINE_TYPE: Es uno de los tipos de máquina disponibles.
  • BOOT_DISK_SIZE: Es el tamaño del disco de arranque en GB. Los discos persistentes más grandes tienen una mayor capacidad de procesamiento.
  • BOOT_DISK_TYPE: Es el tipo de disco de arranque de la instancia. Por ejemplo, pd-balanced.

Después de crear la VM, crea una regla de firewall para permitir el acceso a SQL Server en tu VM. El puerto predeterminado de SQL Server es 1433.

gcloud compute firewall-rules create sql-server-1433 \
    --description "Allow SQL Server access from all sources on port 1433." \
    --allow tcp:1433 --network NETWORK

done NETWORK es el nombre de la red de VPC en la que se encuentra la VM.

Si necesitas agregar reglas de firewall adicionales a tu VM, consulta la documentación de reglas de firewall.

Terraform

Para crear las instancias de VM de SQL Server, usa el recurso google_compute_instance.

resource "google_compute_instance" "sqlserver_vm" {
  provider = google-beta
  name     = "sqlserver-vm"
  boot_disk {
    auto_delete = true
    device_name = "persistent-disk-0"
    initialize_params {
      image = "windows-sql-cloud/sql-std-2019-win-2022"
      size  = 50
      type  = "pd-balanced"
    }
    mode = "READ_WRITE"
  }
  machine_type = "n1-standard-4"
  zone         = "europe-west1-b"
  network_interface {
    access_config {
      network_tier = "PREMIUM"
    }
    network    = google_compute_network.default.id
    stack_type = "IPV4_ONLY"
    subnetwork = google_compute_subnetwork.default.id
  }
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

REST

Para crear una VM con la API, debes incluir la propiedad initializeParams en la solicitud de creación de la VM y especificar una imagen de Windows.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

instance = {
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [{
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
         "diskName": "DISK_NAME",
         "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
         "diskSizeGb": "BOOT_DISK_SIZE",
         "diskType": "BOOT_DISK_TYPE",
       }
    }],
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
     }],
    "network": "global/networks/default"
  }],
  "serviceAccounts": [{
       "email": DEFAULT_SERVICE_EMAIL,
       "scopes": DEFAULT_SCOPES
  }]
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • ZONE: La zona de esta instancia.
  • VM_NAME: Es el nombre de la VM nueva.
  • MACHINE_TYPE: Son los tipos de máquina disponibles.
  • IMAGE_PROJECT: Es windows-cloud para las imágenes de Windows Server o windows-sql-cloud para las imágenes de Windows Server con SQL Server preinstalado.
  • IMAGE_FAMILY: Son las familias de imágenes públicas de las imágenes de Windows Server o SQL Server.
  • BOOT_DISK_SIZE: Es el tamaño del disco de arranque en GB. Los discos persistentes más grandes tienen una mayor capacidad de procesamiento.
  • BOOT_DISK_TYPE: Es el tipo de disco de arranque de la VM. Por ejemplo, pd-ssd.

Después de crear la VM, crea una regla de firewall para permitir el acceso a SQL Server en tu VM. El puerto predeterminado de SQL Server es 1433.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "sql-server-1433",
 "network": "global/networks/NETWORK",
 "allowed": [
  {
   "IPProtocol": "tcp",
   "ports": [
    "1433"
   ]
  }
 ]
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • NETWORK: Es el nombre de la red de VPC en la que se encuentra la VM.

Después de crear la instancia de SQL Server, debes establecer la contraseña inicial de la VM para que puedas conectarte a la VM con RDP. Luego, ejecuta SQL Server Management Studio como administrador para administrar las bases de datos de tu instancia de SQL Server.

Además, puedes mejorar la instalación de SQL Server con uno o más de los siguientes elementos:

Administra bases de datos de SQL Server

Ejecuta SQL Server Management Studio como administrador para configurar las bases de datos de SQL Server. Puedes descargar y, luego, instalar SQL Server Management Studio en tu estación de trabajo local y usarlo para conectarte al motor de la base de datos en tu VM de manera remota.

Si no puedes instalar Management Studio en tu estación de trabajo local, conéctate a la VM a través de RDP y ejecuta Management Studio en la VM. SQL Server 2012 y 2014 incluyen SQL Server Management Studio según la configuración predeterminada. En SQL Server 2016, debes descargar SQL Server Management Studio desde el sitio web de Microsoft para instalarlo en la VM.

Según la configuración predeterminada, SQL Server usa el modo de autenticación de Windows para controlar el acceso remoto a SQL Server en sí. Si necesitas usar el modo de autenticación de SQL Server, cambia a ese modo.

Actualiza de forma manual los nombres de instancias de SQL Server

Si cambias el nombre de una VM que aloja SQL Server, debes actualizar el nombre de la instancia de SQL Server. Para obtener más información, consulta Cambia el nombre de una computadora que aloja una instancia independiente de SQL Server.

¿Qué sigue?