Windows Server 인스턴스 생성 및 관리

Google Compute Engine은 인스턴스를 만드는 데 사용할 수 있는 공개 이미지를 Windows Server에 제공합니다. SQL Server가 사전 설치된 Windows Server 인스턴스를 만드는 방법에 대한 지침은 SQL Server 인스턴스 만들기를 참조하세요.

Compute Engine에서 실행할 수 있는 Windows 애플리케이션과 Windows Server 인스턴스에 대한 일반적인 내용은 Compute Engine으로 구동하는 Windows를 참조하세요.

시작하기 전에

Windows Server 인스턴스 만들기

Windows Server에서 인스턴스를 만들려면 필요한 특정 Windows 버전의 이미지 계열을 지정합니다. Compute Engine은 여러 버전의 Windows Server를 제공하며 그 중 대부분이 일반 이미지와 보안 VM 이미지 모두로 제공됩니다. 보안 VM 이미지는 UEFI 규격 펌웨어, 안전한 부팅, vTPM 보호가 적용된 신중한 부팅 같은 보안 기능을 제공합니다. 인스턴스의 스토리지로 SSD 스토리지를 선택하면 보안 VM의 무결성 모니터링 기능을 사용할 수 없으며 데이터 보안에 vTPM을 사용할 수도 없습니다. 사용할 수 있는 이미지 계열의 목록은 공개 이미지를 참조하세요.

외부 IP를 사용하여 정품 인증하는 Windows Server 인스턴스 만들기

이 섹션에서는 외부 IP 주소가 있는 Windows Server 인스턴스를 만드는 방법을 설명합니다. kms.windows.googlecloud.com에 대한 액세스를 허용하도록 VPC 네트워크를 구성해야 합니다.

Windows Server 인스턴스 만들기

Console

기본 Windows 인스턴스를 만들려면 다음을 수행하세요.

  1. GCP Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 부팅 디스크 섹션에서 변경을 클릭하여 부팅 디스크 구성을 시작합니다.
  4. OS 이미지 탭에서 a Windows image를 선택합니다.

  5. 선택을 클릭합니다.
  6. 만들기를 클릭하여 인스턴스를 만듭니다.

보안 VM Windows 인스턴스를 만들려면 다음 안내를 따르세요.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 부팅 디스크 섹션에서 변경을 클릭하여 부팅 디스크 구성을 시작합니다.
  4. OS 이미지 탭에서 Windows 이미지를 선택합니다.
    보안 VM 이미지만 보려면 보안 VM 기능이 있는 이미지 표시를 선택합니다.

  5. 선택을 클릭합니다.

  6. 원하는 경우 인스턴스의 보안 VM 설정을 변경합니다.

    1. 관리, 보안, 디스크, 네트워킹 섹션에서 보안 탭을 클릭합니다.
    2. 보안 부팅을 사용 중지하려면 보안 부팅 사용을 선택 해제합니다. 보안 부팅을 사용하면 부팅 수준 및 커널 수준의 멀웨어와 루트킷으로부터 VM 인스턴스를 보호할 수 있습니다. 자세한 내용은 보안 부팅을 참조하세요.
    3. vTPM(Virtual Trusted Platform Module)을 사용 중지하려면 vTPM 사용을 선택 해제합니다. vTPM을 사용하면 신중한 부팅을 통해 VM 사전 부팅 및 부팅 무결성을 검증할 수 있습니다. 자세한 내용은 Virtual Trusted Platform Module(vTPM)을 참조하세요.

    4. 무결성 모니터링을 사용 중지하려면 무결성 모니터링 사용을 선택 해제합니다. 무결성 모니터링을 사용하면 Stackdriver를 사용하여 보안 설정된 VM 인스턴스의 부팅 무결성을 모니터링할 수 있습니다. 자세한 내용은 무결성 모니터링을 참조하세요.

  7. 만들기를 클릭하여 인스턴스를 만듭니다.

gcloud

compute images list 명령어를 사용하여 가용 Windows Server 이미지의 목록을 표시합니다.

사용 가능한 비보안 VM Windows Server 이미지를 보려면 다음 명령어를 사용합니다.

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

Windows 이미지를 포함한 사용 가능한 보안 VM 이미지 목록을 보려면 다음 명령어를 사용합니다.

gcloud compute images list --project gce-uefi-images --no-standard-images

새 인스턴스를 만들고 Windows Server 공개 이미지 중 하나의 이미지 계열을 지정하려면 compute instances create 명령어를 사용합니다.

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

각 항목의 의미는 다음과 같습니다.

  • [INSTANCE_NAME]은 새 인스턴스의 이름입니다.
  • [IMAGE_FAMILY]는 Windows Server 이미지의 공개 이미지 계열 중 하나입니다.
  • [MACHINE_TYPE]은 사용 가능한 머신 유형 중 하나입니다.
  • [BOOT_DISK_SIZE]는 부팅 디스크의 크기(GB 단위)입니다. 영구 디스크가 클수록 처리량이 높습니다.
  • [BOOT_DISK_TYPE]은 인스턴스의 부팅 디스크 유형입니다. 더 빠른 SSD 영구 디스크를 사용하려면 pd-ssd를, 표준 HDD 영구 디스크를 사용하려면 pd-standard를 지정합니다.

보안 VM을 지원하는 이미지를 선택한 경우, 필요하면 다음 플래그 중 하나를 사용하여 인스턴스의 보안 설정된 VM 설정을 변경할 수 있습니다.

  • --no-shielded-vm-secure-boot: 보안 부팅을 사용 중지합니다. 보안 부팅을 사용하면 부팅 수준 및 커널 수준의 멀웨어와 루트킷으로부터 VM 인스턴스를 보호할 수 있습니다. 자세한 내용은 보안 부팅을 참조하세요.
  • --no-shielded-vm-vtpm: vTPM(Virtual Trusted Platform Module)을 사용 중지합니다. vTPM을 사용하면 신중한 부팅을 통해 VM 사전 부팅 및 부팅 무결성을 검증할 수 있습니다. 자세한 내용은 vTPM(Virtual Trusted Platform Module)을 참조하세요.

  • --no-shielded-vm-integrity-monitoring: 무결성 모니터링을 사용 중지합니다. 무결성 모니터링을 사용하면 Stackdriver를 사용하여 보안 설정된 VM 인스턴스의 부팅 무결성을 모니터링할 수 있습니다. 자세한 내용은 무결성 모니터링을 참조하세요.

다음 예시에서는 안전한 부팅이 사용 중지된 상태로 Windows 2012 보안 VM 인스턴스를 만듭니다.

 gcloud compute instances create my-instance \
 --image-family windows-2012-r2 --image-project gce-uefi-images \
 --no-shielded-vm-secure-boot

API

API를 사용하여 인스턴스를 만들려면 인스턴스 생성 요청에 initializeParams 속성을 포함하고 Windows 이미지를 지정합니다. 예를 들어 요청 본문의 형식은 다음과 같습니다.

instance = {
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "disks": [{
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
         "diskName": "[DISK_NAME]",
         "sourceImage": "https://www.googleapis.com/compute/v1/projects/windows-cloud/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
  }]
}

각 항목의 의미는 다음과 같습니다.

  • [INSTANCE_NAME]은 새 인스턴스의 이름입니다.
  • [IMAGE_FAMILY]는 Windows Server 이미지 또는 SQL Server 이미지의 공개 이미지 계열 중 하나입니다.
  • [ZONE]은 이 인스턴스의 영역입니다.
  • [MACHINE_TYPE]은 사용 가능한 머신 유형 중 하나입니다.
  • [BOOT_DISK_SIZE]는 부팅 디스크의 크기(GB 단위)입니다. 영구 디스크가 클수록 처리량이 높습니다.
  • [BOOT_DISK_TYPE]은 인스턴스의 부팅 디스크 유형입니다. 더 빠른 SSD 영구 디스크를 사용하려면 pd-ssd를, 표준 HDD 영구 디스크를 사용하려면 pd-standard를 지정합니다.

보안 VM을 지원하는 이미지를 선택한 경우, 필요하면 다음 부울 요청 본문 항목을 사용하여 인스턴스의 보안 VM 설정을 변경할 수 있습니다.

  • enableSecureBoot: 보안 부팅을 사용 설정 또는 사용 중지합니다. 보안 부팅을 사용하면 부팅 수준 및 커널 수준의 멀웨어와 루트킷으로부터 VM 인스턴스를 보호할 수 있습니다. 자세한 내용은 보안 부팅을 참조하세요.
  • enableVtpm: vTPM(Virtual Trusted Platform Module)을 사용 설정 또는 사용 중지합니다. vTPM을 사용하면 신중한 부팅을 통해 VM 사전 부팅 및 부팅 무결성을 검증할 수 있습니다. 자세한 내용은 Virtual Trusted Platform Module(vTPM)을 참조하세요.

  • enableIntegrityMonitoring: 무결성 모니터링을 사용 설정 또는 사용 중지합니다. 무결성 모니터링을 사용하면 Stackdriver 보고서를 사용하여 보안 설정된 VM 인스턴스의 런타임 부팅 무결성을 모니터링하고 확인할 수 있습니다. 자세한 내용은 무결성 모니터링을 참조하세요.

인스턴스를 만드는 방법에 대한 자세한 내용은 instances.insert() 문서를 참조하세요.

Windows Server 인스턴스나 SQL Server 인스턴스를 만든 후에는 RDP를 통해 인스턴스에 연결할 수 있도록 인스턴스의 초기 비밀번호를 설정합니다.

내부 IP 주소를 사용하여 정품 인증하는 Windows Server 인스턴스 만들기

내부 IP 주소만 있는 Windows Server 인스턴스를 만들려면 VPC 네트워크에서 kms.windows.googlecloud.com에 대한 액세스를 허용하는 경로 및 방화벽 규칙을 확인하거나 구성해야 합니다. 또한 VPC 네트워크에서 내부 IP 주소만 있는 Windows 인스턴스가 포함된 서브넷에 대한 비공개 Google 액세스를 사용 설정해야 합니다.

gcloud 명령줄을 사용하여 새 인스턴스를 만들 때 --no-address 플래그를 사용하여 외부 IP 주소가 할당되지 않았는지 확인할 수 있습니다.

gcloud compute instances create [INSTANCE_NAME] --network [NETWORK_NAME] \
   --subnet [SUBNET_NAME] \
   --no-address \
   --zone [ZONE] \
   --image-project windows-cloud \
   --image-family [IMAGE_FAMILY] \
   --machine-type [MACHINE_TYPE] \
   --boot-disk-size [BOOT_DISK_SIZE] \
   --boot-disk-type [BOOT_DISK_TYPE]

다음 자리표시자를 유효한 값으로 바꿉니다.

  • [INSTANCE_NAME]은 새 인스턴스의 이름입니다.
  • [SUBNET_NAME]은 인스턴스가 사용할 VPC 네트워크의 서브넷 이름입니다. 서브넷은 인스턴스에 선택한 영역과 동일한 리전에 있어야 합니다.
  • [IMAGE_FAMILY]는 Windows Server 이미지의 공개 이미지 계열 중 하나입니다.
  • [MACHINE_TYPE]은 사용 가능한 머신 유형 중 하나입니다.
  • [BOOT_DISK_SIZE]는 부팅 디스크의 크기(GB 단위)입니다. 영구 디스크가 클수록 처리량이 높습니다.
  • [BOOT_DISK_TYPE]은 인스턴스의 부팅 디스크 유형입니다. 더 빠른 SSD 영구 디스크를 사용하려면 pd-ssd를, 표준 HDD 영구 디스크를 사용하려면 pd-standard를 지정합니다.

이 인스턴스에는 외부 IP 주소가 없으므로 인터넷을 통해 직접 연결할 수 없습니다. Cloud Interconnect 또는 Cloud VPN을 사용하여 VPC 네트워크에 연결된 다른 네트워크에서 연결하거나 먼저 RDP를 통해 배스천 인스턴스에 연결한 다음 내부 IP 주소만 있는 인스턴스에 연결할 수 있습니다.

kms.windows.googlecloud.com에 대한 액세스 구성

Windows 정품 인증 및 갱신을 위해서는 VPC 네트워크가 다음 라우팅 및 방화벽 규칙 요구사항을 충족해야 합니다.

라우팅 요구사항

Windows 인스턴스는 다음 홉이 기본 인터넷 게이트웨이인 경로를 통해 kms.windows.googlecloud.com(35.190.247.13)에 도달할 수 있어야 합니다. kms.windows.googlecloud.com은 Compute Engine 인스턴스로 확인되지 않은 IP 주소의 정품 인증 요청을 거부하므로 인스턴스 기반 NAT 게이트웨이 또는 Cloud NAT를 사용하여 Windows 인스턴스의 정품 인증을 진행할 수 없습니다.

VPC 네트워크에서 kms.windows.googlecloud.com으로 직접 트래픽을 라우팅하는 기본 경로를 사용할 수 있습니다. 이 경로를 삭제하는 경우 또는 나중에 그렇게 할 예정인 경우 대상이 35.190.247.13이고 다음 홉이 기본 인터넷 게이트웨이로 설정된 커스텀 고정 경로를 생성하세요.

gcloud compute routes create [ROUTE_NAME] \
    --destination-range=35.190.247.13/32 \
    --network=[NETWORK] \
    --next-hop-gateway=default-internet-gateway

[ROUTE_NAME]을 이 경로의 이름으로, [NETWORK]를 VPC 네트워크 이름으로 바꿉니다.

위에서 설명한 기본 경로 또는 커스텀 고정 경로는 외부 IP 주소를 가진 인스턴스가 kms.windows.googlecloud.com에 도달하도록 허용합니다. 외부 IP 주소가 없는 Windows 인스턴스가 있을 경우 내부 IP 주소만 있는 인스턴스가 kms.windows.googlecloud.com의 외부 IP 주소로 트래픽을 전송할 수 있도록 비공개 Google 액세스도 사용 설정해야 합니다. 해당 IP 주소(35.190.247.13)는 Google API 및 서비스의 IP 주소 목록에 포함되어 있습니다.

방화벽 규칙 요구사항

묵시적인 이그레스 허용 방화벽 규칙은 인스턴스가 요청을 수행하고 설정된 응답을 수신하도록 허용합니다. 이그레스를 거부하는 커스텀 방화벽 규칙을 만들지 않았다면 Windows 인스턴스가 kms.windows.googlecloud.com과 통신할 수 있습니다.

방화벽 규칙을 맞춤설정하는 경우 35.190.247.13과의 통신을 명시적으로 허용하는, 우선순위가 높은 이그레스 허용 규칙을 만드는 것이 좋습니다. 이렇게 하면 방화벽 규칙을 수정할 때 실수로 Windows 정품 인증을 사용 중지할 일이 없습니다.

다음 gcloud 예에서는 우선순위가 가장 높은 권장 이그레스 허용 규칙을 만듭니다.

gcloud compute firewall-rules create [RULE_NAME] \
    --direction=EGRESS \
    --network=[NETWORK] \
    --action=ALLOW \
    --rules=tcp:1688 \
    --destination-ranges=35.190.247.13/32 \
    --priority=0

[RULE_NAME]을 이 방화벽 규칙의 이름으로, [NETWORK]를 VPC 네트워크 이름으로 바꿉니다.

인스턴스가 시작되었는지 확인

Windows 인스턴스는 sysprep 프로세스로 인해 시작 시간이 비교적 많이 걸립니다. sysprep 프로세스가 아직 완료되지 않았는데도 GCP Console에는 인스턴스가 실행 중인 것으로 표시될 수 있습니다. 인스턴스가 시작되었으며 사용할 준비가 되었는지 알아보려면 다음 명령어를 사용하여 직렬 포트 출력을 확인하세요.

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

여기서 [INSTANCE_NAME]은 확인할 인스턴스의 이름입니다.

...[snip]...
Running schtasks with arguments /run /tn GCEStartup
-->  SUCCESS: Attempted to run the scheduled task "GCEStartup".
-------------------------------------------------------------
Instance setup finished. [INSTANCE_NAME] is ready to use.
-------------------------------------------------------------

구성요소 자동 업데이트 사용 중지

이미지 버전이 v20170509 이상이거나 에이전트 버전이 4.1.0 이상인 Windows 인스턴스인 경우 Google이 제공하는 에이전트, 메타데이터, sysprep 스크립트 등의 구성요소는 예약된 작업을 통해 자동으로 업데이트됩니다. 예약 작업은 google-compute-engine-auto-updater 패키지를 통해 설정됩니다.

업데이트를 수동으로 관리하거나 대체 시스템을 사용하여 관리하려는 경우 google-compute-engine-auto-updater 패키지를 삭제하면 이러한 구성요소 자동 업데이트를 중지할 수 있습니다.

  1. Windows Server 인스턴스에서 관리자 권한으로 PowerShell 터미널을 엽니다.
  2. googet remove 명령어를 실행하여 패키지를 제거합니다.

    PS C:\\> googet remove google-compute-engine-auto-updater
    

원하는 경우 패키지를 다시 설치하여 구성요소 자동 업데이트를 사용하도록 설정할 수 있습니다.

  1. Windows Server 인스턴스에서 관리자 권한으로 PowerShell 터미널을 엽니다.
  2. googet install 명령어를 실행하여 패키지를 설치합니다.

    PS C:\\> googet install google-compute-engine-auto-updater
    

또는 프로젝트나 인스턴스 커스텀 메타데이터에서 disable-agent-updates 값을 true로 설정하여 업데이트를 사용 중지할 수도 있습니다. 이 메타데이터 값은 패키지나 작업을 제거하지 않고 업데이트를 중지합니다.

Windows 인스턴스 기능 사용 및 사용 중지

이미지 버전이 v20170509 이상이거나 에이전트 버전이 4.1.0 이상인 Windows 인스턴스인 경우 구성 파일이나 프로젝트 또는 인스턴스 커스텀 메타데이터에서 인스턴스 구성을 설정할 수 있습니다. 구성 파일은 INI 형식이며 다음 경로에 위치합니다.

C:\Program Files\Google\Compute Engine\instance_configs.cfg

시스템은 다음 우선순위 순으로(최상위부터 최하위 순으로) 구성 설정을 재정의합니다.

  1. 구성 파일에서 설정하는 구성 매개변수
  2. 인스턴스 수준 커스텀 메타데이터에 설정된 구성 매개변수
  3. 프로젝트 수준 커스텀 메타데이터에 설정된 구성 매개변수

예를 들어 구성 파일에서 accountManager 기능을 사용 설정하는 경우 인스턴스는 커스텀 메타데이터에서 설정한 매개변수를 무시하여 해당 기능을 사용 중지합니다.

구성 파일에서 이러한 매개변수를 설정하는 경우의 한 가지 이점은 Windows Server 인스턴스용 커스텀 이미지를 만들 때 이러한 설정이 지속된다는 것입니다. 인스턴스 수준 커스텀 메타데이터는 인스턴스 수명 동안만 지속됩니다.

다음 예를 사용하여 다양한 Windows 인스턴스 기능을 사용 중지할 수 있습니다.

계정 관리자 사용 중지:

  • 구성 파일:

    [accountManager]
    disable=true
    
  • 커스텀 메타데이터에서 메타데이터의 disable-account-managertrue로 설정합니다.

주소 관리자 사용 중지:

  • 구성 파일 항목:

    [addressManager]
    disable=true
    
  • 커스텀 메타데이터에서 메타데이터의 disable-address-managertrue로 설정합니다.

Windows Server 장애 조치 클러스터링

Windows Server 장애 조치 클러스터링 에이전트 사용 설정:

  • 구성 파일 항목:

    [wsfc]
    enable=true
    
  • 커스텀 메타데이터에서 메타데이터의 enable-wsfctrue로 설정합니다.

여러 내부 부하 분산기 사용

장애 조치 클러스터링을 위한 내부 부하 분산 인스턴스의 IP 주소를 지정합니다. 이는 전용 장애 조치 클러스터에는 설정할 필요가 없는 고급 구성입니다.

일반적으로 내부 부하 분산 인스턴스를 사용하여 한 번에 하나의 VM 인스턴스로 네트워크 트래픽을 전달합니다. 부하 분산된 웹사이트 백엔드의 일부로 장애 조치 클러스터링 VM 인스턴스를 사용하는 또 하나의 내부 부하 분산 인스턴스를 추가하는 경우 내부 부하 분산 IP 주소가 2개 생깁니다. 장애 조치 클러스터링에서 10.0.0.10을 사용하고 웹사이트의 부하 분산기에서 10.0.0.11을 사용하는 경우 장애 조치 클러스터링에 사용하는 부하 분산기의 IP 주소를 지정해야 합니다. 이렇게 하면 클러스터에 사용되는 주소를 구별할 수 있습니다.

  • 구성 파일 항목:

    [wsfc]
    addresses=10.0.0.10
    
  • 커스텀 메타데이터에서 wsfc-addrs10.0.0.10으로 설정합니다.

클러스터링 에이전트 포트 변경

장애 조치 클러스터링 에이전트 포트를 설정합니다. 기본 포트는 59998입니다. 다른 포트를 사용하려는 경우에만 포트를 지정하면 됩니다.

  • 구성 파일 항목:

    [wsfc]
    port=12345
    
  • 커스텀 메타데이터에서 wsfc-agent-port를 포트 번호로 설정합니다.

이미지 버전에 대한 참고사항

이전 이미지에는 구성 파일이 사용되지 않으며 기능이 일부만 존재합니다. 이미지 버전 v20160112부터 v20170509까지 또는 Windows 에이전트 버전 3.2.1.0부터 4.0.0까지의 경우 커스텀 메타데이터 값을 다음과 같이 사용해야 합니다.

  • 계정 관리자를 사용 중지하려면 인스턴스 메타데이터에서 disable-account-managertrue로 설정합니다.
  • 주소 관리자를 사용 중지하려면 인스턴스 메타데이터에서 disable-address-managertrue로 설정합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서