Create SQL Server VM instances (original) (raw)

Microsoft SQL Server is a database system that runs on Windows Server and some Linux distributions. You can use SQL Server on Compute Engine as part of the backend for your applications, as a flexible development and test environment, or in addition to your on-premises systems for backup and disaster recovery.

Compute Engine provides images with Microsoft SQL Server preinstalled on Windows Server. For these SQL Server images, Compute Engine manages the license for both Windows Server and SQL Server, and includes the cost in your monthly bill. Create virtual machine (VM) instances with SQL Server and scale out to large multi-node configurations when you need them.

Compute Engine stores your data on durableblock storage disks with automatic redundancy and automatic encryption at rest. Use these disks to store your SQL Server data and you don't need to worry about the durability or security of your data. For additional performance, create your VM instances with aLocal SSD as a cache that provides additional IOPS and performance for SQL Server queries.

You can create Compute Engine VM instances that run SQL Server in the following ways:

For a full list of the available images that include SQL Server preinstalled, see Operating system details.

Machine type requirements for SQL Server images

The best machine type for SQL Server depends on the edition of SQL Server that you run.

SQL Server Standard

You can run SQL Server Standard on VM instances created with any machine type, but shared-core machine typesdon't provide optimal performance. Google recommends that you use VM instances with at least one vCPU to run SQL Server Standard.

SQL Server Enterprise

VM instances that run SQL Server Enterprise must have at least 4 vCPUs. For optimal performance, Google recommends that you run SQL Server Enterprise on VM instances with larger memory capacities. Depending on your workload, you should use highmem predefined machine types with 8 vCPUs or more, such as forN2. The highmempredefined machine types maximize the ratio of memory to each vCPU that is available on Compute Engine, which is optimal for SQL Server Enterprise VMs.

You can use SQL Server Enterprise on Compute Engine tocreate SQL Server Availability Groups.

Default components

SQL Server images include several components by default. The default components depend on the edition of SQL Server that you selected.

For information about the default components included with your version of SQL Server, seeEditions and supported features of SQL Server 2019.

For information about modifying the SQL Server components, seeAdd Features to an Instance of SQL Server.

Before you begin

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. After installation,initialize the Google Cloud CLI by running the following command:
    gcloud init
    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
  2. Set a default region and zone.

Terraform

To use the Terraform samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials.

  1. Install the Google Cloud CLI.
  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
  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.
    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
    For more information, see Set up authentication for a local development environment.

REST

To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI.
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, seeAuthenticate for using REST in the Google Cloud authentication documentation.

Create a SQL Server instance

To create a SQL Server instance, specify the image family for the specific version of SQL Server that you need. For a list of the SQL Server image families, see Operating system details.

For optimal performance, database server platforms require machine types with more virtual CPUs and larger amounts of memory. Google recommends that you use machine types with at least 2 vCPUs and at least 4 GB of memory when you run SQL Server instances. You can usecustom machine typesto configure SQL Server instances to match the performance requirements for your workload. You can use larger disks or faster disk types to improve the performance of your applications.

You must set specific firewall rules to allow SQL Server traffic on the VPC network or subnet that your VM instance is a part of. For more information seeBest practices for SQL Server.

Console

To create a SQL Server instance, follow these steps:

  1. In the Google Cloud console, go to the Create an instance page.
    Go to Create an instance
  2. Specify the VM instance details.
  3. Click the OS and storage vertical tab.
  4. Click Change, and then do the following:
    1. On the Public images tab, click the Operating system list, and then select SQL Server on Windows Server.
    2. In the Version list, select a version.
    3. In the Boot disk type list, select a boot disk type.
    4. In the Size (GB) field, set the boot disk size.
    5. Optional: To modify the advanced configuration for the boot disk, click Show advanced configuration, and then specify your settings.
    6. To save the boot disk configuration, click Select.
  5. In the Create an instance window, click Create.

After you create the VM instance, create a firewall rule to allow access to SQL Server on your instance. The default SQL Server port is 1433.

  1. In the Google Cloud console, go to the Firewall Rules page.
    Go to Firewall Rules
  2. At the top of the page, click Create firewall rule.
  3. Specify the details for this firewall rule.
    • In the Name field, specify a name for the firewall rule.
    • In the Network field, select the VPC network where your SQL Server instance is located.
    • For the Direction of traffic, select Ingress.
    • In the Targets field, choose the targets for the firewall rule, which can be all instances, or specified target tags or service accounts. For example, you can select the optionAll instances in the network. If you configured a tag or service account for your SQL Server instance, then you can limit the firewall rule to the specific tag or service account.
    • In Source filter field, select the range of IPs that you want to allow access on this port. For an ingress rule, you can select Source IPv4 ranges, source IPv6 ranges, source tags, or service accounts. Use the fields after Source filter to supply additional information about your choice.
    • In the Protocols and ports section, chooseSpecified protocols and ports and enter the port that SQL Server uses. For this example, choose TCP and enter 1433, which is the default port.
  4. Click Create to create this firewall rule and allow access to your SQL Server instance over the specified port.

If you need to add additional firewall rules to your VM instance, see thefirewall rules documentation.

gcloud

Use the compute images listcommand to see a list of available SQL Server images:

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

Use thecompute instances createcommand to create a new VM and specify the image family for one of the Windows Server or SQL Serverpublic images.

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

Replace the following:

After you create the VM, create a firewall rule to allow access to SQL Server on your VM. The default SQL Server port is 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

where NETWORK is the name of the VPC network where your VM is located.

If you need to add additional firewall rules to your VM, see thefirewall rules documentation.

Terraform

To create the SQL Server VM instances, use thegoogle_compute_instance resource.

To learn how to apply or remove a Terraform configuration, seeBasic Terraform commands.

REST

To create a VM with the API, include theinitializeParams propertyin your VM creation request and specify a Windows image.

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 }] }

Replace the following:

After you create the VM, use thefirewalls.insert methodto create a firewall rule that allows access to SQL Server on your VM. The default SQL Server port is 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" ] } ] }

Replace the following:

After you create your SQL Server instance,set the initial password for the VMso that you canconnect to the VMusing RDP. Run the SQL Server Management Studio as an administrator tomanage databases on your SQL Server instance.

You can enhance the SQL Server installation with one or more of the following items:

Manage SQL Server databases

Run the SQL Server Management Studio as an administrator to configure SQL Server databases. You candownload and installthe SQL Server Management Studio on your local workstation, and use it toconnect to the database engineon your VM instance.

If you can't install the Management Studio on your local workstation, thenconnect to Windows VMs using RDPand run the Management Studio on the VM instance itself. SQL Server 2012 and SQL Server 2014 both include the SQL Server Management Studio by default. For SQL Server 2016, you must download the SQL Server Management Studio from the Microsoft website and install it on the VM instance.

By default, SQL Server uses Windows Authentication mode to control access to SQL Server itself. To use SQL Server Authentication mode, you canchange the authentication mode.

Update SQL Server instance names

If you rename a VM that hosts SQL Server, then you must update the SQL Server instance name. For more information, see Rename a computer that hosts a stand-alone instance of SQL Server.

What's next