가상 어플라이언스는 가상 머신(VM) 인스턴스의 디스크 이미지 및 하드웨어 구성이 포함된 패키지입니다.
가상 어플라이언스에 널리 사용되는 형식은 OVF 형식입니다.
가상 어플라이언스를 OVF 형식으로 패키징하면 OVF 패키지가 생성됩니다. OVF 패키지는 하나의 .ovf
설명자 파일과 디스크 등의 기타 리소스 컬렉션이 포함된 폴더입니다. OVF 패키지가 단일 파일로 보관처리되면 이를 OVA 파일이라고 합니다.
OVF 형식의 VM이 OVF 패키지이든 OVA 단일 파일이든 Compute Engine으로 가져올 수 있습니다. 가상 어플라이언스가 사용 사례에 가장 적합한 선택인지 확인하려면 마이그레이션 경로 선택을 검토하세요.
가상 어플라이언스를 가져올 때 Compute Engine에 VM을 만들고 시작하기 위해 설명자 파일에 저장된 정보가 사용됩니다.
Compute Engine에서 다음과 같이 OVA 또는 OVF 파일을 가져올 수 있습니다.
- 가상 어플라이언스를 인스턴스로 가져옵니다. OVA 파일 가져오기 및 OVF 파일 가져오기를 참조하세요.
- 가상 어플라이언스를 머신 이미지로 가져옵니다. 가상 어플라이언스에서 머신 이미지 가져오기를 참조하세요.
시작하기 전에
- 가상 어플라이언스를 가져오려는 프로젝트에 신뢰할 수 있는 이미지 정책이 정의되어 있으면 허용된 게시자 목록에
projects/compute-image-import
및projects/compute-image-tools
를 추가합니다. - 다른 프로젝트에서 가상 어플라이언스를 가져오는 경우에는 프로젝트 간 가져오기를 참조하세요.
- 이미지를 가져오기 전에 요구사항을 충족하는 방법을 알아보려면 VM 이미지 가져오기 및 내보내기 기본 요건을 참조하세요.
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 가상 디스크는 VMDK 또는 VHD 형식이어야 합니다.
가상 디스크는 암호화되지 않아야 합니다.
VM이 요구사항을 충족하는지 확인하려면 사전 검사 도구를 실행하면 됩니다.
- 모든 Windows 운영체제의 경우 PowerShell 버전 3 이상이 설치되어 있어야 합니다. 3.0 이전의 PowerShell 버전에서는 가져오기 프로세스 시에 사용되는 시작 및 종료 스크립트에서 문제가 발생할 수 있습니다.
모든 Linux 배포판의 경우 부팅 디스크가 다음 요구사항을 충족해야 합니다.
- 부팅 디스크에 GRUB이 설치되어 있어야 합니다.
- 부팅 디스크는 물리적 디스크 여러 개에 걸쳐서는 안 됩니다. 논리 볼륨 관리자(LVM)를 사용하여 파티션을 나눈 디스크는 지원되지 않습니다. 디스크가 물리적 디스크 여러 개에 걸쳐 있는 경우 OVF 파일에서 생성된 VM이 Compute Engine에서 부팅되지 않을 수 있습니다.
- OVF 파일은 OVF 사양 문서에 설명된 대로
Level 1
이동성을 제공해야 합니다.Level 2
이동성을 충족하는 가상 어플라이언스를 가져올 수 있지만 소스 하이퍼바이저에 대한 구체적인 세부정보와 같은 커스텀 확장은 가져오기 프로세스 동안 무시됩니다. - OVF 파일에 VM이 하나만 포함되어야 합니다. VM이 여러 개인 경우 첫 번째 VM만 가져옵니다.
- OVF 파일의 첫 번째 디스크는 부팅 가능해야 합니다.
- 가상 디스크. OVF 패키지의
DiskSection
요소에서 검색한 정보입니다. CPU 및 메모리. OVF 패키지의
ResourceAllocationSection
에서 검색합니다.CPU 또는 메모리 구성이 Compute Engine에서 지원되는 범위 제한을 벗어나는 경우 가져오기 프로세스 중 값이 Compute Engine에서 지원되는 최댓값으로 설정됩니다.
부팅 디스크. OVF 패키지의
BootDeviceSection
요소에서 검색한 세부정보입니다.게스트 OS. OVF 패키지의
OperatingSystemSection
요소에서 검색한 세부정보입니다.게스트 OS 정보는 올바른 드라이버 및 게스트 환경 패키지를 가져온 인스턴스에 설치하는 데 사용됩니다. OVF에서 찾은 게스트 OS 정보가 올바르지 않은 경우 가져오기가 실패합니다.
--os
플래그를 사용하여 게스트 OS 정보를 재정의할 수 있습니다.NetworkSection
AnnotationSection
ProductSection
EulaSection
StartupSection
DeploymentOptionSection
InstallSection
EnvironmentFilesSection
SharedDiskSection
ScaleOutSection
PlacementGroupSection
PlacementSection
EncryptionSection
- 소스 프로젝트: OVA 또는 OVF 파일이 저장된 프로젝트입니다.
- 대상 프로젝트: VM 또는 머신 이미지를 만들 프로젝트입니다.
- 소스 프로젝트에서 Cloud Storage 버킷을 찾습니다.
Cloud Storage 버킷에서
roles/storage.objectViewer
를 다음 서비스 계정에 부여합니다.- 대상 프로젝트의 Cloud Build 서비스 계정: 이 서비스 계정의 형식은
DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
입니다. - 대상 프로젝트의 Compute Engine 서비스 계정: 이 서비스 계정의 형식은
DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com
입니다.
DESTINATION_PROJECT_NUMBER
를 대상 프로젝트의 프로젝트 번호로 바꿉니다.Cloud Storage 버킷에 대한 액세스 권한을 부여하는 방법은 버킷 수준 정책에 주 구성원 추가를 참조하세요.
- 대상 프로젝트의 Cloud Build 서비스 계정: 이 서비스 계정의 형식은
- 가상 어플라이언스를 Cloud Storage에 업로드합니다.
OVA 파일을 Cloud Storage에서 Compute Engine으로 가져오려면
gcloud compute instances import
명령어를 사용합니다.gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVA_FILE
다음을 바꿉니다.
VM_NAME
: 만들려는 인스턴스의 이름입니다.PATH_TO_OVA_FILE
: Cloud Storage의 OVA 파일 경로입니다.
예시
예를 들어
Ubuntu.ova
OVA 파일을 가져오고my-instance
라는 인스턴스를 만들려면 다음 명령어를 실행합니다.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova
OVF 설명자 파일의 게스트 OS 정보가 잘못되었거나 감지된 OS를 재정의하려는 경우
--os
플래그를 추가하여 운영체제를 지정할 수 있습니다. 지원되는 값 목록은gcloud compute instances import
명령어의--os
플래그 옵션을 참조하세요.예를 들어
Ubuntu.ova
OVA 파일을 가져오고 Ubuntu 16.04를 실행하는my-instance
라는 인스턴스를 만들려면 다음 명령어를 실행합니다.gcloud compute instances import my-instance \ --os=ubuntu-1604 --source-uri=gs://my-bucket/Ubuntu.ova
가상 어플라이언스를 Cloud Storage에 업로드합니다.
Cloud Build API에
POST
요청을 전송합니다.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
다음을 바꿉니다.
PROJECT_ID
: OVA 파일을 가져올 프로젝트의 프로젝트 ID입니다.VM_NAME
: 만들려는 가상 머신 인스턴스의 이름입니다. 예를 들면my-instance
입니다.SOURCE_URI
: Cloud Storage에 저장된 OVA 파일의 URI입니다. 예를 들면gs://my-bucket/my-instance.ova
입니다.ZONE
: VM 인스턴스를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.
제공할 수 있는 추가
args
값은 Compute Engine OVF 가져오기 GitHub 페이지의 선택적 플래그 섹션을 참조하세요.응답 예시
다음 샘플 응답은 반환된 출력과 유사합니다.
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ova", "-zone=asia-northeast2", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
빌드를 모니터링하려면 다음 방법 중 하나를 사용합니다.
- 반환된
build-id
를 사용하여 projects.builds.get 요청을 실행합니다. - 제공된
logUrl
에서 호스팅된 로그를 검토합니다.
- 가상 어플라이언스를 Cloud Storage에 업로드합니다.
OVF 파일을 Cloud Storage에서 Compute Engine으로 가져오려면
gcloud compute instances import
명령어를 사용합니다.디렉터리에 OVF 파일이 하나만 있는 경우, 설명자 파일의 경로 또는 OVF 파일이 있는 디렉터리의 경로를 제공할 수 있습니다.
설명자 파일의 경로를 사용하여 OVF 파일을 가져오려면 다음 명령어를 실행합니다.
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_FILE
디렉터리의 경로를 사용하여 OVF 파일을 가져오려면 다음 명령어를 실행합니다.
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_DIRECTORY
다음을 바꿉니다.
VM_NAME
: 만들려는 인스턴스의 이름입니다.PATH_TO_OVF_FILE
: Cloud Storage의 OVF 파일 경로입니다.PATH_TO_OVF_DIRECTORY
: OVF 파일이 있는 Cloud Storage 디렉터리의 경로입니다.
예시
my-ovf-directory
디렉터리에서my-instance
라는 인스턴스를 만드는Ubuntu.ovf
OVF 파일을 가져오려면 다음 명령어를 실행합니다.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
my-instance
디렉터리에서 라는 인스턴스를 만드는my-ovf-directory
OVF 파일을 가져오려면 다음 명령어를 실행합니다.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory
OVF 설명자 파일의 게스트 OS 정보가 잘못되었거나 감지된 OS를 재정의하려는 경우
--os
플래그를 추가하여 운영체제를 지정할 수 있습니다. 지원되는 값 목록은gcloud compute instances import
명령어의--os
플래그 옵션을 참조하세요. 예를 들어Ubuntu.ovf
OVF 파일을 가져오려면 Ubuntu 16.04를 실행하는my-instance
라는 인스턴스를 만들고 다음 명령어를 실행합니다.gcloud compute instances import my-instance \ --os=ubuntu-1604 \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
가상 어플라이언스를 Cloud Storage에 추가합니다.
Cloud Build API에
POST
요청을 전송합니다.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
다음을 바꿉니다.
PROJECT_ID
: OVA 파일을 가져올 프로젝트의 프로젝트 ID입니다.VM_NAME
: 만들려는 가상 머신 인스턴스의 이름입니다. 예를 들면my-instance
입니다.SOURCE_URI
: Cloud Storage에 저장된 OVF 파일의 URI입니다. 예를 들면gs://my-bucket/my-instance.ovf
입니다.OS
: OVF 파일의 운영체제입니다. 예를 들면ubuntu-1604
입니다.--os
플래그는 기본적으로 선택사항이지만 이 플래그를 사용해서 감지된 OS를 재정의할 수 있습니다. 지원되는 값 목록은gcloud compute instances import
명령어의--os
플래그 옵션을 참조하세요.ZONE
: VM 인스턴스를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.
제공할 수 있는 추가
args
값은 Compute Engine OVF 가져오기 GitHub 페이지의 선택적 플래그 섹션을 참조하세요.응답 예시
다음 샘플 응답은 반환된 출력과 유사합니다.
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ovf", "-os=ubuntu-1404", "-zone=asia-south1", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
빌드를 모니터링하는 몇 가지 방법은 다음과 같습니다.
- 반환된
build-id
를 사용하여 projects.builds.get 요청을 실행합니다. - 제공된
logUrl
에 호스팅된 로그를 검토합니다.
- VM 이름:
my-instance
- 네트워크:
custom-vpc-network
- 서브넷:
company-vpc-us-east1-c
- 영역:
us-east1-c
- VM 이름:
my-instance-2
- 네트워크:
my-shared-vpc
- 서브넷:
my-shared-subnet
- 영역:
us-east1-c
Cloud Build 서비스 계정에
compute.networkUser
역할을 추가합니다. 자세한 내용은 Cloud Build 서비스 계정에 필요한 역할 부여를 참조하세요.VM을 가져옵니다.
gcloud compute instances import my-instance-2 \ --source-uri gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network projects/HOST_PROJECT_ID/global/networks/my-shared-vpc \ --subnet projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet --zone us-east1-c
다음을 바꿉니다.
SERVICE_PROJECT_ID
: 가상 어플라이언스를 가져올 프로젝트의 ID입니다.HOST_PROJECT_ID
: 공유 VPC가 있는 프로젝트의 ID입니다.
- VM 이름:
my-instance
- 네트워크:
custom-vpc-network
- 서브넷:
company-vpc-us-east1-c
- 영역:
us-east1-c
- VM 이름:
my-instance-2
- 네트워크:
my-shared-vpc
- 서브넷:
my-shared-subnet
- 영역:
us-east1-c
Cloud Build 서비스 계정에
compute.networkUser
역할을 추가합니다. 자세한 내용은 Cloud Build 서비스 계정에 필요한 역할 부여를 참조하세요.다음
POST
요청을 만들어 VM을 가져옵니다.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance-2", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-c", "-network=projects/HOST_PROJECT_ID/global/networks/my-shared-vpc", "-subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
다음을 바꿉니다.
SERVICE_PROJECT_ID
: 가상 어플라이언스를 가져올 프로젝트의 ID입니다.HOST_PROJECT_ID
: 공유 VPC가 있는 프로젝트의 ID입니다.
가상 어플라이언스를 Cloud Storage에 추가합니다.
가져오기 프로세스를 수행하려면 VM의 운영체제에 패키지 관리자를 설치해야 합니다. 이러한 패키지 관리자는 Google Cloud 외부의 패키지 저장소를 요청해야 할 수 있습니다. 이러한 업데이트의 액세스를 허용하려면 Cloud NAT를 구성해야 합니다. 자세한 내용은 Cloud Router를 사용하여 NAT 구성 만들기를 참조하세요.
비공개 Google 액세스를 구성합니다. 자세한 내용은 비공개 Google 액세스 구성을 참조하세요.
Google Cloud CLI 또는 REST를 사용하여 VM을 가져옵니다.
가상 어플라이언스에서 VM을 만들면 프로젝트에 임시 VM이 생성됩니다. 이러한 임시 VM에 외부 IP 주소가 할당되지 않도록 하려면 추가 플래그 또는 인수를 지정해야 합니다.
자세한 내용을 보려면 다음 탭을 클릭하세요.
VM_NAME
: 만들려는 인스턴스의 이름입니다.SOURCE_URI
: Cloud Storage에서 OVA 또는 OVF 파일의 URI입니다. 예를 들면gs://my-bucket/Ubuntu.ova
입니다.ZONE
: 가상 어플라이언스를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.PROJECT_ID
: 이미지를 가져올 프로젝트의 프로젝트 ID입니다.VM_NAME
: 만들 VM의 이름입니다.SOURCE_FILE
: Cloud Storage의 이미지 URI입니다. 예를 들면gs://my-bucket/Ubuntu.ova
입니다.ZONE
: 이미지를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.VM_NAME
: 만들려는 인스턴스의 이름입니다.SOURCE_URI
: Cloud Storage에서 OVA 또는 OVF 파일의 URI입니다. 예를 들면gs://my-bucket/Ubuntu.ova
입니다.가상 어플라이언스를 Cloud Storage에 업로드합니다.
API에서 Cloud Build API에 대한
POST
요청을 만듭니다.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-uefi-compatible", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
다음을 바꿉니다.
PROJECT_ID
: OVA 파일을 가져올 프로젝트의 프로젝트 ID입니다.VM_NAME
: 만들려는 가상 머신 인스턴스의 이름입니다. 예를 들면my-instance
입니다.SOURCE_URI
: Cloud Storage에 저장된 OVA 파일의 URI입니다. 예를 들면gs://my-bucket/my-instance.ova
입니다.ZONE
: VM 인스턴스를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.
가상 어플라이언스를 Cloud Storage에 추가합니다.
서비스 계정을 만들고 최소 역할을 할당합니다. 서비스 계정 만들기에 대한 자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요.
지정된 Compute Engine 서비스 계정에는 최소한 다음 역할이 할당되어 있어야 합니다.
roles/compute.storageAdmin
roles/storage.objectViewer
이러한 최소 역할은
--compute-service-account
플래그에 지정된 서비스 계정에 필요합니다. 자세한 내용은 Compute Engine 서비스 계정에 필요한 역할 부여를 참조하세요.gcloud compute instances import
명령어를 사용하여 가상 어플라이언스를 가져옵니다.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
다음을 바꿉니다.
VM_NAME
: 만들려는 인스턴스의 이름입니다.SOURCE_URI
: Cloud Storage에서 OVA 또는 OVF 파일의 URI입니다. 예를 들면gs://my-bucket/Ubuntu.ova
입니다.ZONE
: 가상 어플라이언스를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.TEMP_SERVICE_ACCOUNT_EMAIL
: 이전 단계에서 만든 커스텀 서비스 계정과 연결된 이메일 주소입니다. 이 서비스 계정은 임시 VM에서 사용됩니다. 지정하지 않을 경우 VM은 기본 Compute Engine 서비스 계정을 사용합니다.SERVICE_ACCOUNT_EMAIL
: 가져오기 프로세스에서 만든 VM에 연결할 커스텀 서비스 계정과 연결된 이메일 주소입니다. 이 서비스 계정에는 권한 제한이 없으므로 필요에 따라 이 서비스 계정을 맞춤설정할 수 있습니다. 지정하지 않을 경우 기본 Compute Engine 서비스 계정이 VM에 연결됩니다.SCOPES
:--service-account
옵션의 액세스 수준을 지정합니다. 지정하지 않을 경우 기본 범위가 사용됩니다. 자세한 내용은--scopes
플래그를 참조하세요.
가상 어플라이언스를 Cloud Storage에 추가합니다.
서비스 계정을 만들고 최소 역할을 할당합니다. 서비스 계정 만들기에 대한 자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요.
지정된 Compute Engine 서비스 계정에는 최소한 다음 역할이 할당되어 있어야 합니다.
roles/compute.storageAdmin
roles/storage.objectViewer
이러한 최소 역할은
-compute-service-account
인수에 지정된 서비스 계정에 필요합니다. 자세한 내용은 Compute Engine 서비스 계정에 필요한 역할 부여를 참조하세요.API에서 Cloud Build API에 대한
POST
요청을 만듭니다.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-zone=ZONE", "-scopes=SCOPES", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
다음을 바꿉니다.
PROJECT_ID
: 이미지를 가져올 프로젝트의 프로젝트 ID입니다.VM_NAME
: 만들 VM의 이름입니다.SOURCE_FILE
: Cloud Storage의 이미지 URI입니다. 예를 들면gs://my-bucket/Ubuntu.ova
입니다.ZONE
: 이미지를 만들 영역입니다. 비워두면 프로젝트의 기본 영역이 사용됩니다.TEMP_SERVICE_ACCOUNT_EMAIL
: 이전 단계에서 만든 커스텀 서비스 계정과 연결된 이메일 주소입니다. 이 서비스 계정은 임시 VM에서 사용됩니다. 지정하지 않을 경우 VM은 기본 Compute Engine 서비스 계정을 사용합니다.SERVICE_ACCOUNT_EMAIL
: 가져오기 프로세스에서 만든 VM에 연결할 커스텀 서비스 계정과 연결된 이메일 주소입니다. 이 서비스 계정에는 권한 제한이 없으므로 필요에 따라 이 서비스 계정을 맞춤설정할 수 있습니다. 지정하지 않을 경우 기본 Compute Engine 서비스 계정이 VM에 연결됩니다.SCOPES
:-service-account
옵션의 액세스 수준을 지정합니다. 지정하지 않을 경우 기본 범위가 사용됩니다. 자세한 내용은--scopes
플래그를 참조하세요.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
요구사항
이 섹션에는 가상 어플라이언스를 Compute Engine으로 가져오기 위한 요구사항이 나와 있습니다.
소스 VM 요구사항
OVF 파일을 만드는 데 사용되는 VM은 다음 요구사항을 충족해야 합니다.
소스 VM의 운영체제가 다음 요구사항을 충족해야 합니다.
OVF 파일 요구사항
OVF 파일은 다음 요구사항을 충족해야 합니다.
권한
이미지를 가져올 때 원활한 환경을 제공하려면 필요한 IAM 역할을 계정, Cloud Build 서비스 계정, Compute Engine 서비스 계정에 부여했는지 확인합니다. 자세한 내용은 필요한 IAM 역할 부여를 참조하세요.
가져오기 도구로 가져오는 구성
OVF 표준은 가상화 제공업체에 종속되지 않는 방식으로 가상 어플라이언스를 패키징하는 프로세스를 지정합니다. OVF 가상 어플라이언스 패키지에는 하나의
.ovf
설명자 파일과 가상 디스크 등 기타 리소스 컬렉션이 포함됩니다.OVF 가상 어플라이언스를 Compute Engine으로 가져오면 설명자 파일에서 다음 구성을 처리하여 가져옵니다.
가져온 VM은 항상 외부 IP 주소가 있는 단일 네트워크 어댑터로 생성됩니다. 이 단일 네트워크 어댑터는 OVF 파일에 지정된 네트워킹 구성에 관계없이 사용됩니다. 외부 IP 주소가 없는 VM을 가져오려면 외부 IP 주소가 없는 VM 가져오기를 참조하세요.
가상 어플라이언스를 가져올 때 설명자 파일의 다음 섹션은 무시됩니다(가져오지 않음).
제한사항
VPC 서비스 제어로 보호되는 프로젝트에서는 이 기능이 지원되지 않습니다.
지원되는 운영체제
원하는 경우 설명자 파일의
OperatingSystemSection
요소에서 운영체제를 지정하거나gcloud compute instances import
명령어를 사용하여 가상 어플라이언스를 가져올 때--os
플래그를 지정할 수 있습니다.지원되는 운영체제에 대한 자세한 내용은 운영체제 세부정보를 참조하세요.
BYOL 및 BYOS 지원
기본적으로 Windows Server 및 Red Hat Enterprise Linux(RHEL) 운영체제를 사용하는 OVF 파일을 가져와서 추가 요금이 발생하는 프리미엄 OS 온디맨드 결제를 사용하도록 구성합니다.
자체 소프트웨어 라이선스 또는 구독을 사용하려는 경우 라이선스를 통해 가상 어플라이언스를 가져올 수 있습니다. BYOL 또는 BYOS를 지원하는 운영체제에 대한 자세한 내용은 운영체제 세부정보를 참조하세요.
gcloud compute instances import
명령어와--byol
플래그를 사용해서 어플라이언스를 BYOL 라이선스 어플라이언스로 가져올 수 있습니다. OS를 수동으로 지정할 경우--os
플래그를 사용해서 가져오려는 게스트 OS에 대해byol
서픽스가 포함된 값을 지정합니다. 예를 들어--os=rhel-8-byol
은 기존 라이선스가 있는 RHEL 8 이미지를 가져옵니다.프로젝트 간 가져오기
소스 프로젝트와 대상 프로젝트가 다른 경우 대상 프로젝트의 서비스 계정은 소스 프로젝트의 Cloud Storage 버킷에 액세스해야 합니다.
프로젝트 간에 가져오려면 다음 단계를 완료하세요.
가상 어플라이언스 가져오기
Google Cloud CLI 또는 REST를 사용하여 가상 어플라이언스를 가져올 수 있습니다.
OVA 파일 가져오기
gcloud
REST
OVF 파일 가져오기
gcloud
REST
커스텀 설정으로 가져오기
커스텀 CPU 및 메모리
gcloud
OVF 파일에 지정된 CPU 또는 메모리 구성을 대체하려면 Google Cloud CLI 단계에 따라 OVA 가져오기 또는 OVF 파일 가져오기를 수행하고
--custom-cpu
및--custom-memory
플래그를 지정합니다.예시
예를 들어 CPU 2개와 2,048MB의 메모리가 있는
my-instance
라는 인스턴스를 가져오려면 다음 명령어를 실행합니다.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --custom-cpu=2 --custom-memory=2048MB
REST
OVF 파일에 지정된 CPU 또는 메모리 구성을 재정의하려면 Cloud Build API 단계를 따라 OVA 파일 가져오기 또는 OVF 파일 가져오기를 실행하고
-machine-type
인수를 지정합니다. 이-machine-type
은 사용할 사전 정의된 머신 유형 또는 커스텀 머신 유형을 나타냅니다.예시
예를 들어 CPU 2개와 2,048MB의 메모리가 있는
my-instance
라는 인스턴스를 가져오려면 다음 요청을 실행합니다.PROJECT_ID
를 프로젝트 ID로 바꿉니다.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-machine-type=custom-2-2048", "-zone=asia-south1", "-client-id=api", "-timeout=7056s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
커스텀 네트워크
커스텀 네트워크는 이미지를 가져오는 동일한 프로젝트에서 정의되어야 합니다.
gcloud
커스텀 네트워크를 사용하려면 Google Cloud CLI 단계에 따라 OVA 파일 가져오기 또는 OVF 파일 가져오기를 실행하고
--network
플래그를 지정합니다. 네트워크가 커스텀 서브넷 모드로 구성된 경우--subnet
및--zone
플래그도 지정해야 합니다.예시 1: 커스텀 네트워크 사용
예를 들어 다음과 같은 속성을 가정해 보겠습니다.
다음 명령어를 실행하여 위의 속성이 있는 인스턴스를 가져옵니다.
SERVICE_PROJECT_ID
를 가상 어플라이언스를 가져올 프로젝트의 ID로 바꿉니다.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network custom-vpc-network \ --subnet company-vpc-us-east1-c \ --zone us-east1-c
예시 2: 커스텀 네트워크 사용(공유 VPC)
예를 들어 다음과 같은 속성을 가정해 보겠습니다.
위의 속성이 있는 VM을 가져오려면 다음 단계를 완료하세요.
REST
커스텀 네트워크를 사용하려면 Cloud Build API 단계에 따라 OVA 파일 가져오기 또는 OVF 파일 가져오기를 실행하고
-network
인수를 지정합니다. 네트워크가 커스텀 서브넷 모드로 구성되어 있으면-subnet
및-zone
인수도 지정해야 합니다.예시: 커스텀 네트워크 사용
예를 들어 다음과 같은 속성을 가정해 보겠습니다.
위의 속성이 있는 인스턴스를 가져오려면 다음
POST
요청을 만듭니다.SERVICE_PROJECT_ID
를 가상 어플라이언스를 가져올 프로젝트의 ID로 바꿉니다.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-c", "-network=custom-vpc-network", "-subnet=company-vpc-us-east1-c", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
예시 2: 커스텀 네트워크 사용(공유 VPC)
예를 들어 다음과 같은 속성을 가정해 보겠습니다.
위의 속성이 있는 VM을 가져오려면 다음 단계를 완료하세요.
외부 IP 주소를 허용하지 않는 네트워크를 사용하여 VM 가져오기
외부 IP 주소를 허용하지 않는 네트워크를 사용하여 VM을 가져오려면 다음 단계를 완료하세요.
gcloud
Cloud Storage에서 Compute Engine으로 가상 어플라이언스를 가져오려면
--no-address
플래그를 사용하여gcloud compute instances import
명령어를 사용합니다.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --no-address
다음을 바꿉니다.
REST
외부 IP에 대한 재정의로 Cloud Build API를 사용하여 외부 IP가 없는 VM을 가져올 수 있습니다.
OVF 파일에 지정된 외부 IP 설정을 재정의하려면 OVA 파일 또는 OVF 파일을 가져오고
-no-external-ip
인수를 지정하는 Cloud Build API의 단계를 따르세요.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-no-external-ip", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
다음을 바꿉니다.
UEFI 부트로더가 포함된 OVA 파일 가져오기
gcloud
gcloud compute instances import
명령어를 사용해서 UEFI 부팅을 사용하도록 가져오기를 적용할 수 있습니다.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --guest-os-features=UEFI_COMPATIBLE
다음을 바꿉니다.
REST
Cloud Build API를 사용하고
-uefi-compatible
인수를 지정하여 UEFI 부트로더가 포함된 OVA 파일을 가져올 수 있습니다.커스텀 서비스 계정을 사용하여 가상 어플라이언스 가져오기
가상 어플라이언스를 가져오는 동안 프로젝트에 임시 가상 머신(VM) 인스턴스가 생성됩니다. 이러한 임시 VM의 가져오기 도구는 인증을 받아야 합니다.
서비스 계정은 VM에 연결된 ID입니다. 서비스 계정 액세스 토큰은 인스턴스 메타데이터 서버를 통해 액세스할 수 있으며 VM에서 내보내기 도구를 인증하는 데 사용됩니다.
기본적으로 가져오기 프로세스는 기본 Compute Engine 서비스 계정을 사용합니다. 그러나 프로젝트에서 기본 Compute Engine 서비스 계정이 사용 중지된 경우 또는 커스텀 Compute Engine 서비스 계정을 사용하려는 경우 서비스 계정을 만들고 가져오기 프로세스에 지정해야 합니다.
gcloud
REST
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-11-22(UTC)
-