SQL Server VM 인스턴스 만들기


Microsoft SQL Server는 Windows Server 및 일부 Linux 배포판에서 실행되는 데이터베이스 시스템입니다. 애플리케이션의 백엔드의 일부로, 가변형 개발과 테스트 환경으로 또는 백업 및 재해 복구용 온프레미스 시스템과 함께 SQL Server를 Compute Engine에서 사용할 수 있습니다.

Compute Engine은 Windows Server에 Microsoft SQL Server가 사전 설치된 이미지를 제공합니다. 이 SQL Server 이미지의 경우 Compute Engine에서 Windows Server와 SQL Server 라이선스를 모두 관리하며, 월간 청구서에 비용이 포함됩니다. SQL Server가 있는 VM을 만들고 필요한 경우 대규모 멀티 노드 구성으로 수평 확장합니다.

Compute Engine은 자동 중복 및 자동 저장 데이터 암호화 기능이 있는 내구성이 뛰어난 영구 디스크에 데이터를 저장합니다. 데이터의 내구성 또는 보안에 대한 걱정 없이 SQL Server 데이터를 저장하려면 이러한 영구 디스크를 사용하세요. 필요하다면 SQL Server 쿼리의 추가 IOPS 및 성능을 제공하는 캐시로 쓸 수 있게 로컬 SSD가 포함된 VM을 만들 수도 있습니다.

다음과 같은 방법으로 SQL Server를 실행하는 Compute Engine 가상 머신(VM) 인스턴스를 만들 수 있습니다.

사전 설치된 SQL Server를 포함하는 사용 가능한 이미지의 전체 목록은 운영체제 세부정보를 참조하세요.

SQL Server 이미지의 머신 유형 요구사항

SQL Server Standard

모든 머신 유형의 VM에서 SQL Server Standard를 실행할 수 있지만 공유 코어 머신 유형은 최적의 상태로 실행되지 않습니다. SQL Server Standard를 실행하려면 1개 이상의 vCPU가 포함된 VM을 사용하는 것이 좋습니다.

SQL Server Enterprise

SQL Server Enterprise가 실행되는 VM에는 최소 4개의 vCPU가 있어야 합니다. 최적의 성능을 위해 메모리 용량이 큰 VM에서 SQL Server Enterprise를 실행하는 것이 좋습니다. 워크로드에 따라 vCPU가 8개 이상인 고성능 메모리 머신 유형을 사용해야 합니다. 이러한 머신 유형에서는 Compute Engine에서 사용할 수 있는 각 vCPU의 메모리 비율이 최대화되므로 SQL Server Enterprise VM에 최적입니다.

또한 Compute Engine에서 SQL Server Enterprise를 사용하여 SQL Server 가용성 그룹을 만들 수 있습니다.

기본 구성요소

SQL Server 이미지에는 기본적으로 여러 구성요소가 포함되어 있습니다. 기본 구성요소는 선택한 SQL Server 버전에 따라 다릅니다.

사용 중인 SQL Server 버전에 포함된 기본 구성요소에 대한 자세한 내용은 SQL Server 2019의 버전 및 지원되는 기능을 참조하세요.

SQL Server 구성요소 수정에 대한 자세한 내용은 SQL Server의 VM에 기능 추가를 참조하세요.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    Terraform

    로컬 개발 환경에서 이 페이지의 Terraform 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

    1. Google Cloud CLI를 설치합니다.
    2. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

      gcloud init
    3. Google 계정의 로컬 인증 사용자 인증 정보를 만듭니다.

      gcloud auth application-default login

    자세한 내용은 로컬 개발 환경의 인증 설정를 참조하세요.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

SQL Server 인스턴스 만들기

SQL Server 인스턴스를 만들려면 필요한 특정 버전의 SQL Server에 사용할 이미지 계열을 지정합니다. SQL Server 이미지 계열 목록은 운영체제 세부정보를 참조하세요.

최적의 성능을 위해 데이터베이스 서버 플랫폼에는 더 많은 가상 CPU와 메모리를 가진 머신 유형이 필요합니다. SQL Server 인스턴스를 실행할 때는 vCPU가 2개 이상이고 메모리가 4GB 이상인 머신 유형을 사용하는 것이 좋습니다. 커스텀 머신 유형을 사용하여 워크로드의 성능 요구사항에 맞게 SQL Server 인스턴스를 구성할 수 있으며, 더 큰 영구 디스크와 더 빠른 SSD 영구 디스크를 사용하여 애플리케이션의 성능을 향상시킬 수도 있습니다.

또한 VM이 속한 VPC 네트워크 또는 서브넷에서 SQL Server 트래픽을 허용하도록 특정 방화벽 규칙을 설정해야 합니다. 자세한 내용은 SQL Server 권장사항을 참조하세요.

Console

SQL Server 인스턴스를 만들려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. VM 세부정보를 지정합니다.

  3. 부팅 디스크 섹션에서 변경을 클릭한 후 다음을 수행합니다.

    1. 공개 이미지 탭에서 운영체제 목록을 클릭한 다음 SQL Server on Windows Server를 선택합니다.
    2. 버전 목록에서 버전을 선택합니다.
    3. 부팅 디스크 유형 목록에서 부팅 디스크 유형을 선택합니다.
    4. 크기(GB) 필드에서 부팅 디스크 크기를 설정합니다.
    5. 선택사항: 부팅 디스크의 고급 구성을 수정하려면 고급 구성 표시를 클릭한 다음 설정을 지정합니다.
    6. 부팅 디스크 구성을 저장하려면 선택을 클릭합니다.
  4. 만들기를 클릭합니다.

VM을 만든 후 VM의 SQL Server에 액세스할 수 있도록 방화벽 규칙을 만듭니다. 기본 SQL Server 포트는 1433입니다.

  1. Google Cloud Console에서 방화벽 규칙 페이지로 이동합니다.

    방화벽 규칙으로 이동

  2. 페이지 상단에서 방화벽 규칙 만들기를 클릭하여 방화벽 규칙 만들기를 시작합니다.

  3. 방화벽 규칙의 세부정보를 지정합니다.

    • 이름 필드에서 방화벽 규칙의 이름을 지정합니다.
    • VPC 네트워크 필드에서 SQL Server 인스턴스가 있는 VPC 네트워크를 선택합니다.
    • 트래픽 방향으로 인그레스를 선택합니다.
    • 소스 필터 필드에서 이 포트에 액세스할 수 있도록 허용할 IP 범위를 선택합니다. 이 예시에서는 모든 소스에서 허용을 선택할 수 있습니다.
    • 허용된 프로토콜 및 포트 섹션에 SQL Server에서 사용되는 포트를 입력합니다. 이 예시에서는 기본 포트인 tcp:1433;을 지정합니다.
  4. 만들기를 클릭하여 이 방화벽 규칙을 만들고 포트 1433을 통해 SQL Server 인스턴스에 액세스할 수 있도록 허용합니다.

VM에 방화벽 규칙을 추가해야 하는 경우 방화벽 규칙 문서를 참조하세요.

gcloud

compute images list 명령어를 사용하여 사용 가능한 SQL Server 이미지의 목록을 확인합니다.

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

compute instances create 명령어를 사용하여 새 VM을 만들고 Windows Server 또는 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

다음을 바꿉니다.

  • VM_NAME: 새 인스턴스의 이름입니다.
  • IMAGE_FAMILY: Windows Server 이미지 또는 SQL Server 이미지의 공개 이미지 계열 중 하나입니다.
  • MACHINE_TYPE: 사용 가능한 머신 유형 중 하나입니다.
  • BOOT_DISK_SIZE: 부팅 디스크의 크기(GB 단위)입니다. 영구 디스크가 클수록 처리량이 높습니다.
  • BOOT_DISK_TYPE: 인스턴스의 부팅 디스크 유형입니다. 예를 들면 pd-balanced입니다.

VM을 만든 후 VM의 SQL Server에 액세스할 수 있도록 방화벽 규칙을 만듭니다. 기본 SQL Server 포트는 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

여기서 NETWORK는 VM이 있는 VPC 네트워크의 이름입니다.

VM에 방화벽 규칙을 추가해야 하는 경우 방화벽 규칙 문서를 참조하세요.

Terraform

SQL Server VM 인스턴스를 만들려면 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
  }
}

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

REST

API를 사용하여 VM을 만들려면 VM 생성 요청에 initializeParams 속성을 포함하고 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
  }]
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID입니다.
  • ZONE: 이 인스턴스의 영역입니다.
  • VM_NAME: 새 VM의 이름입니다.
  • MACHINE_TYPE: 사용 가능한 머신 유형입니다.
  • IMAGE_PROJECT: Windows Server 이미지의 경우 windows-cloud이며, SQL Server가 사전 설치된 Windows Server 이미지의 경우 windows-sql-cloud입니다.
  • IMAGE_FAMILY: Windows Server 이미지 또는 SQL Server 이미지의 공개 이미지 계열 중 하나입니다.
  • BOOT_DISK_SIZE: 부팅 디스크의 크기(GB 단위)입니다. 영구 디스크가 클수록 처리량이 높습니다.
  • BOOT_DISK_TYPE: VM의 부팅 디스크 유형입니다. 예를 들면 pd-ssd입니다.

VM을 만든 후 VM의 SQL Server에 액세스할 수 있도록 방화벽 규칙을 만듭니다. 기본 SQL Server 포트는 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"
   ]
  }
 ]
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID입니다.
  • NETWORK: VM이 있는 VPC 네트워크의 이름입니다.

SQL Server 인스턴스를 만든 후에는 RDP를 통해 VM에 연결할 수 있도록 VM의 초기 비밀번호를 설정합니다. 그런 다음 관리자로서 SQL Server Management Studio를 실행하여 SQL Server 인스턴스의 데이터베이스를 관리합니다.

또한 다음 항목 중 하나 이상을 사용하여 SQL Server 설치를 향상시킬 수 있습니다.

  • Visual Studio를 사용하여 SQL Server 데이터베이스를 만들고 관리할 수 있도록 SQL Server 인스턴스에 SQL Server 데이터 도구를 설치합니다. VM에 연결한 후 Microsoft 웹사이트에서 SQL Server 데이터 도구를 다운로드하고 설치합니다.
  • SQL Server 이미지에는 여러 기본 구성요소가 포함되어 있습니다. 경우에 따라 SQL Server 설치에 기능을 추가할 수 있습니다. SQL Server 이미지의 c:\sql_server_install\setup.exe에는 항상 설치 실행 파일이 포함되어 있습니다.
  • 보조 영구 디스크에 SQL Server를 설치해야 하는 경우 VM에 보조 영구 디스크를 추가합니다. 그런 다음 VM에 연결하고, c:\sql_server_install\setup.exe 설치 프로그램을 실행하고, 보조 디스크에서 새 설치 경로를 선택합니다.
  • 부팅 디스크 또는 보조 스토리지 디스크에 추가 저장공간이 필요하면 VM 실행 중에도 영구 디스크의 크기를 조절할 수 있습니다.

SQL Server 데이터베이스 관리

관리자 권한으로 SQL Server Management Studio를 실행하여 SQL Server 데이터베이스를 구성합니다. 로컬 워크스테이션에서 SQL Server Management Studio를 다운로드 및 설치하고 이를 사용하여 원격으로 VM의 데이터베이스 엔진에 연결할 수 있습니다.

로컬 워크스테이션에 Management Studio를 설치할 수 없는 경우 RDP를 통해 VM에 연결하고 VM 자체에서 Management Studio를 실행합니다. SQL Server 2012 및 SQL Server 2014에는 SQL Server Management Studio가 기본적으로 포함되어 있습니다. SQL Server 2016의 경우, Microsoft 웹사이트에서 SQL Server Management Studio를 다운로드하여 VM에 설치해야 합니다.

기본적으로 SQL Server에서는 Windows 인증 모드를 사용하여 SQL Server 자체에 대한 원격 액세스를 제어합니다. SQL Server 인증 모드를 사용해야 하는 경우 인증 모드를 변경합니다.

SQL Server 인스턴스 이름 수동 업데이트

SQL Server를 호스팅하는 VM의 이름을 변경하는 경우 SQL Server 인스턴스 이름을 업데이트해야 합니다. 자세한 내용은 SQL Server의 독립 실행형 인스턴스를 호스팅하는 컴퓨터 이름 변경을 참조하세요.

다음 단계