Windows 애플리케이션용 설치 미디어는 주로 ISO 파일로 제공되지만 Compute Engine에서는 ISO 파일을 가상 DVD 드라이브로 VM 인스턴스에 노출할 수 없습니다.
단일 Windows VM에서 ISO 파일의 콘텐츠에 액세스하려면 다음 중 하나를 실행합니다.
ISO 파일을 VM에 복사하고 로컬로 마운트합니다. 이 방법은 단일 VM 인스턴스에서 ISO 파일의 콘텐츠에만 액세스해야 하는 경우에 적합합니다.
ISO 파일에서 영구 디스크를 만들고 디스크를 읽기 전용 모드로 하나 이상의 VM 인스턴스에 연결합니다. 이 방법은 여러 VM에서 ISO 파일의 콘텐츠에 액세스해야 하는 경우에 적합합니다.
이 문서에서는 ISO 파일에서 영구 디스크를 만들고 디스크를 읽기 전용 모드로 하나 이상의 VM에 연결하는 방법을 설명합니다.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Google Cloud 콘솔에서 Cloud Shell 활성화 버튼을 클릭하여 Cloud Shell을 엽니다.
다운로드 URL의 환경 변수를 만듭니다. URL은 HTTP 또는 HTTPS URL일 수 있지만 익명으로 액세스할 수 있어야 합니다.
ISO_URL=https://example.com/big.iso
Google Cloud Console에서 Cloud Storage 버킷 만들기를 수행합니다.
ISO 파일을 업로드합니다.
ISO 파일의 크기에 따라 업로드에 몇 분 또는 몇 시간이 걸릴 수 있습니다.
스토리지 브라우저에서 업로드된 객체로 이동합니다.
객체 세부정보 페이지에서 객체의 URI를 복사합니다. URI는
gs://
로 시작합니다.Cloud Shell 활성화 버튼을 클릭하여 Cloud Shell을 엽니다.
다운로드 URL의 환경 변수를 만듭니다.
URI
를 앞서 복사한 URI로 바꿉니다.ISO_URL=URI
Cloud Shell에서 새 디스크에 할당할 이름을 지정합니다.
DISK_NAME=iso
ISO 파일의 콘텐츠를 복사할 새 디스크를 만듭니다.
gcloud compute disks create $DISK_NAME \ --size=10GB \ --zone=$(gcloud config get-value compute/zone)
ISO 파일이 9 GB를 초과하는 경우 더 큰 디스크 크기를 사용합니다.
임시 VM의 시작 스크립트를 만듭니다. 시작 스크립트는 다음 작업을 수행합니다.
- NTFS 파일 시스템으로 보조 디스크를 포맷합니다.
- 지정한 HTTP 또는 Cloud Storage URL에서 ISO 파일을 다운로드합니다.
- ISO 파일을 마운트하고 콘텐츠를 보조 디스크에 복사합니다.
cat << "EOF" > startup.ps1 $DownloadDirectory = 'c:\download\' $ErrorActionPreference = 'Stop' $MetadataUrl = 'http://metadata.google.internal/computeMetadata/v1/instance' $DownloadUrl = (Invoke-RestMethod ` -Headers @{"Metadata-Flavor" = "Google"} ` -Uri "$MetadataUrl/attributes/iso") mkdir $DownloadDirectory\Source -Force Write-Host '== Formatting secondary disk... ===' -ForegroundColor Black -BackgroundColor Yellow Set-Disk -Number 1 -IsOffline $false Clear-Disk -Number 1 -RemoveData -Confirm:$false -ErrorAction SilentlyContinue Initialize-Disk -Number 1 -PartitionStyle MBR New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D -IsActive | Format-Volume -FileSystem 'NTFS' -Confirm:$false Write-Host '== Downloading ISO... =============' -ForegroundColor Black -BackgroundColor Yellow if ($DownloadUrl.StartsWith('gs:')) { & gcloud storage cp $DownloadUrl "$DownloadDirectory\Source\image.iso" | Out-Default } else { Import-Module BitsTransfer Start-BitsTransfer -Source $DownloadUrl -Destination "$DownloadDirectory\Source\image.iso" } Write-Host '== Mounting ISO... ================' -ForegroundColor Black -BackgroundColor Yellow Mount-DiskImage -ImagePath "$DownloadDirectory\Source\image.iso" -StorageType ISO Write-Host '== Copying ISO contents... ========' -ForegroundColor Black -BackgroundColor Yellow Copy-Item 'e:\*' 'd:\' -Force -Recurse -PassThru ` | Where-Object { -Not $_.PSIsContainer } ` | Set-ItemProperty -Name IsReadOnly -Value $False Write-Host '== Completed. =====================' -ForegroundColor Black -BackgroundColor Yellow Invoke-RestMethod ` -Headers @{'Metadata-Flavor'='Google'} ` -Method PUT ` -Uri "$MetadataUrl/guest-attributes/vm/ready" ` -Body true EOF
시작 스크립트와 이전에 만든 디스크를 사용하는 Windows Server 2019 VM을 만듭니다.
gcloud compute instances create iso-copier \ --machine-type=n1-standard-2 \ --image-family=windows-2019-core \ --image-project=windows-cloud \ --disk=name=$DISK_NAME,auto-delete=no \ --metadata=enable-guest-attributes=true,iso=$ISO_URL \ --metadata-from-file=windows-startup-script-ps1=startup.ps1 \ --scopes=https://www.googleapis.com/auth/devstorage.read_only
VM은 시작하는 데 2분 정도 걸립니다. ISO 파일의 크기에 따라 파일 복사 작업이 완료되는 데 5~15분 정도 더 걸릴 수 있습니다. 다음 명령어를 실행하면 진행 상황을 확인할 수 있습니다.
gcloud compute instances tail-serial-port-output iso-copier \ --zone=$(gcloud config get-value compute/zone)
VM이 시작 스크립트 실행을 완료할 때까지 기다립니다.
until gcloud compute instances get-guest-attributes iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --query-path=vm/ready > /dev/null 2>&1 do sleep 5 && echo waiting for VM to finish... done
VM을 종료하고 삭제합니다.
gcloud compute instances delete iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --quiet
보조 디스크는
auto-delete=no
매개변수로 마운트되었기 때문에 삭제되지 않습니다.Cloud Shell에서 이전 섹션에서 만든 디스크로 이미지를 만듭니다.
gcloud compute images create $DISK_NAME \ --source-disk=$DISK_NAME \ --source-disk-zone=$(gcloud config get-value compute/zone)
디스크를 삭제합니다.
gcloud compute disks delete $DISK_NAME \ --zone=$(gcloud config get-value compute/zone) \ --quiet
이미지를 삭제합니다.
gcloud compute images delete $DISK_NAME
커스텀 이미지를 만드는 방법을 알아보세요.
커스텀 이미지의 액세스 관리 방법 알아보기
Compute Engine의 Windows 워크로드에 대해 자세히 알아보세요.
ISO 파일 준비
ISO 파일이 HTTP를 통해 공개적으로 사용 가능한 경우 먼저 ISO 파일을 다운로드할 필요가 없습니다. 로컬 ISO 파일을 사용하려면 ISO 파일을 Cloud Storage에 업로드하면 됩니다.
HTTP URL
로컬 ISO 파일
ISO 파일의 콘텐츠가 포함된 디스크 만들기
ISO 파일의 콘텐츠를 새 디스크에 복사하려면 임시 VM을 만든 다음 디스크에서 이미지를 만듭니다.
이제 디스크를 사용할 수 있습니다. 동일한 영역 내에서 디스크를 읽기 전용 모드로 하나 이상의 VM 인스턴스에 연결할 수 있습니다.
이미지를 만들어 영역 및 리전 간에 디스크 공유
다른 영역이나 리전에서 ISO 파일의 콘텐츠를 사용할 수 있게 하려면 Compute Engine 이미지를 만듭니다.
삭제
이 프로세스를 완료한 후 추가 비용이 발생하지 않도록 하려면 만든 리소스를 삭제하면 됩니다.
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-12-22(UTC)
-