게스트 환경


Google에서 제공하는 공개 이미지를 사용하여 가상 머신(VM) 인스턴스를 시작하면 게스트 환경이 VM 인스턴스에 자동으로 설치됩니다. 게스트 환경은 메타데이터 서버의 콘텐츠를 읽어 VM이 Compute Engine에서 올바르게 실행되도록 지원하는 스크립트, 데몬, 바이너리 세트입니다. 메타데이터 서버는 클라이언트에서 게스트 운영체제로 정보를 전송하기 위한 통신 채널입니다.

이 문서에서는 게스트 환경의 구성요소, 지원되는 운영 체제에 대한 개요를 제공하며 게스트 환경을 수동으로 설치하거나 업데이트해야 하는 시기를 알아보는 방법에 대해 설명합니다.

수동으로 게스트 환경을 설치 또는 업데이트해야 하는 시기

Google에서 제공하는 공개 이미지를 사용하여 만든 VM 인스턴스에는 기본적으로 설치되는 게스트 환경이 포함됩니다.

인스턴스에서 게스트 환경이 실행 중인지 확인하려면 게스트 환경 검증을 참조하세요.

경우에 따라 설치된 게스트 환경이 오래된 경우도 있습니다. 인스턴스에서 게스트 환경을 사용할 수 있지만 오래된 경우 게스트 환경을 업데이트합니다.

그렇지 않으면 다음과 같은 조건에서 수동으로 게스트 환경을 설치해야 합니다.

게스트 환경을 수동으로 설치해야 하는 경우 게스트 환경 설치를 참조하세요.

지원되는 운영체제

Compute Engine에서 사용 가능한 각각의 지원되는 운영체제에는 특정 게스트 환경 패키지가 필요합니다. Google 또는 운영체제 소유자가 이 패키지를 빌드합니다. 게스트 환경 패키지를 빌드하는 사용자에 대한 자세한 내용은 운영체제 세부정보 문서의 표준 이미지와의 주요 차이점 섹션을 참조하세요.

Linux 게스트 환경

Linux 게스트 환경의 제작자가 Google이든 운영체제의 소유자이든 관계없이 모든 빌드에 적용할 수 있는 몇 가지 주요 구성요소가 있습니다.

Linux 게스트 환경의 기본 구성요소는 지원되는 배포판에 대한 적절한 구성으로 생성된 deb 또는 rpm 패키지로 제공됩니다.

다음은 Linux 게스트 환경의 기본 스크립트, 데몬, 패키지의 요약입니다.

  • google-compute-engine 패키지에는 다음 구성요소가 포함됩니다.

    • systemd의 시스템 init 스크립트.
    • 호스트 이름 설정에 사용되는 udev 규칙, sysctl 규칙, rsyslog 구성, dhcp 구성과 같은 시스템 구성
    • 인스턴스 부팅 중에 실행되는 Bash 스크립트

    이 패키지는 google-guest-agentgoogle-compute-engine-oslogin 패키지에 의존합니다.

    이 패키지의 소스 코드를 검토하려면 GitHub의 guest-configs를 참조하세요.

  • google-guest-agent 패키지에는 Compute Engine 기능을 지원하기 위해 게스트 OS에서 실행되는 게스트 에이전트 및 메타데이터 스크립트 실행 파일이 포함되어 있습니다. Linux 게스트 에이전트에서 지원하는 기능은 다음과 같습니다.

    Linux 게스트 에이전트는 다음과 같이 Compute Engine 서비스와 통신합니다. + VM 메타데이터에서 데이터를 읽고 쓰기 + 로그를 직렬 포트로 전송하고 선택적으로 Cloud Logging으로 전송합니다.

    Linux 게스트 에이전트는 분석 및 디버깅에 사용할 원격 분석 데이터도 게스트 OS에서 수집합니다. 원격 분석 데이터에는 OS 이름, OS 버전, OS 커널 출시, OS 커널 버전, OS 에이전트 버전이 포함됩니다. 원격 분석 데이터 수집을 사용 중지하려면 VM 또는 프로젝트 수준에서 다음 메타데이터 disable-guest-telemetry=TRUE를 설정하세요.

    이 패키지의 소스 코드를 검토하려면 GitHub의 guest-agent를 참조하세요.

  • google-compute-engine-oslogin 패키지에는 OS 로그인에 대한 바이너리, 모듈, 스크립트가 포함되어 있습니다. OS 로그인을 사용하면 Identity and Access Management(IAM) 역할을 사용해서 VM 인스턴스에 대한 액세스 권한을 관리할 수 있습니다.

    이 패키지에는 다음이 포함됩니다.

    • 로그인 시 사용자를 인증하기 위해 사용자의 OS 로그인 프로필에서 sshd로 SSH 키를 제공하는 승인 키 명령어
    • 시스템에서 OS 로그인 사용자 및 그룹 정보를 사용할 수 있도록 지원하는 NSS(Name Service Switch) 모듈
    • 시스템에서 Google Cloud IAM 권한을 사용하여 인스턴스에 로그인하는 기능을 제어하거나 (sudo를 통해) 루트로 작업을 수행하도록 지원하는 인증(및 2단계 지원이 활성화된 경우 인증)을 제공하는 플러그형 인증 모듈(PAM)
    • 로컬 사용자 및 그룹 캐시 업데이트를 유틸리티인 google_oslogin_nss_cache
    • SELinux 정책 정의 파일과 OS 로그인을 지원하도록 SELinux를 구성하기 위한 컴파일 정책 패키지가 포함된 selinux

    OS 로그인 구성요소는 다음과 같이 Compute Engine 서비스와 통신합니다.

    이 패키지의 소스 코드를 검토하려면 GitHub의 guest-oslogin을 참조하세요.

  • gce-disk-expand 구성요소는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • 직렬 포트로 로그 전송

    이 패키지의 소스 코드를 검토하려면 GitHub의 guest-diskexpand를 참조하세요.

  • google-osconfig-agent 패키지에는 VM Manager에서 OS 인벤토리, 패치, OS 정책을 관리하는 데 사용하는 OS 구성 에이전트가 포함되어 있습니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    이 에이전트에 대해 소스 코드를 검토하려면 GitHub의 osconfig를 참조하세요.

Windows 게스트 환경

다음 목록은 Windows 게스트 환경에 속하는 패키지를 요약해서 보여줍니다.

  • google-compute-engine-windows 패키지에는 Windows 게스트 에이전트가 포함되어 있습니다. Windows 게스트 에이전트는 다음 프로세스를 지원하는 데 사용됩니다.

    Windows 게스트 에이전트는 다음과 같이 Compute Engine 서비스와 통신합니다. + VM 메타데이터에서 데이터를 읽고 쓰기 + Windows 애플리케이션 이벤트 로그, 직렬 포트, Cloud Logging에 로그 전송

    Windows 게스트 에이전트는 분석 및 디버깅에 사용할 원격 분석 데이터도 게스트 OS에서 수집합니다. 원격 분석 데이터에는 OS 이름, OS 버전, OS 커널 출시, OS 커널 버전, OS 에이전트 버전이 포함됩니다. 원격 분석 데이터 수집을 사용 중지하려면 VM 또는 프로젝트 수준에서 다음 메타데이터 disable-guest-telemetry=TRUE를 설정하세요.

    이 에이전트의 소스 코드를 검토하려면 GitHub의 guest-agent를 참조하세요.

  • google-compute-engine-sysprep 패키지에는 이미지 생성을 준비하기 위해 Windows 인스턴스 일반화를 위한 스크립트가 포함되어 있습니다. 또한 패키지에는 새 인스턴스를 구성하도록 첫 번째 부팅에 사용되는 instance_setup.ps1 스크립트가 포함되어 있습니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • VM 메타데이터에서 데이터 읽기 및 쓰기
    • Windows 애플리케이션 이벤트 로그 및 직렬 포트에 로그 전송

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-windows를 참조하세요.

  • google-compute-engine-metadata-scripts 패키지에는 Compute Engine 실행을 위한 스크립트 및 바이너리, sysprep-specialize, startupshutdown 스크립트가 포함되어 있습니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • VM 메타데이터에서 데이터 읽기 및 쓰기
    • sysprep-specialize-script-urlwindows-startup-script-url이 사용될 때 Cloud Storage 위치에서 읽기
    • Windows 애플리케이션 이벤트 로그, 직렬 포트, Cloud Logging에 로그 전송

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-windows를 참조하세요.

  • google-compute-engine-powershell 패키지에는 PowerShell 모듈이 포함됩니다. 이 모듈에는 다른 Windows 게스트 환경 스크립트에서 PowerShell 스크립트에 사용되는 일반 기능이 포함됩니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • 기본적으로 PowerShell 모듈의 로깅 함수는 Windows 애플리케이션 이벤트 로그 및 직렬 포트에 로그를 전송합니다.

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-windows를 참조하세요.

  • google-compute-engine-auto-updater 패키지에는 Compute Engine 패키지 일일 업데이트에 사용되는 스크립트가 포함되어 있습니다. 이 패키지는 더 이상 기본적으로 설치되지 않습니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • VM 메타데이터에서 데이터 읽기
    • Googet 에이전트 호출로 Windows 애플리케이션 이벤트 로그 및 콘솔에 로그 전송

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-windows를 참조하세요.

  • google-compute-engine-diagnostics 패키지는 인스턴스에서 진단 정보 가져오기를 위해 사용되는 바이너리를 포함하며, 정보를 Cloud Storage 버킷에 저장합니다. 바이너리는 Windows 게스트 에이전트에 의해 실행됩니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • Cloud Storage 버킷에 데이터 저장

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-tools를 참조하세요.

  • certgen 패키지에는 인스턴스에 인증서를 만드는 바이너리가 포함됩니다.

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-windows를 참조하세요.

  • googet 패키지에는 게스트 환경을 설치하고 유지 관리하기 위해 사용되는 패키지 관리자인 바이너리가 포함되어 있습니다.

    이 스크립트는 packages.cloud.google.com의 Google Cloud 저장소에서 데이터를 읽어서 Compute Engine 서비스와 통신합니다.

    이 에이전트에 대해 소스 코드를 검토하려면 GitHub의 googet을 참조하세요.

  • google-compute-engine-vss 패키지는 Microsoft 볼륨 섀도 복사본 서비스(VSS)를 사용하여 영구 디스크 스냅샷을 만들기 위해 사용되는 Compute Engine VSS 에이전트 및 제공업체를 설치합니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    • Google Cloud 스냅샷 서비스와 통신

    이 에이전트의 소스 코드를 검토하려면 GitHub의 compute-image-windows를 참조하세요.

  • google-osconfig-agent 패키지에는 VM Manager에서 OS 인벤토리, 패치, OS 정책을 관리하는 데 사용하는 OS 구성 에이전트가 포함되어 있습니다.

    이 스크립트는 다음과 같이 Compute Engine 서비스와 통신합니다.

    이 에이전트에 대해 소스 코드를 검토하려면 GitHub의 osconfig를 참조하세요.

Compute Engine Windows 드라이버

다음 Compute Engine 드라이버는 Windows 이미지에 유지됩니다.

드라이버 유형 패키지 이름
이더넷 어댑터 google-compute-engine-driver-netkvm
SCSI 디스크 google-compute-engine-driver-vioscsi
디스플레이 어댑터 google-compute-engine-driver-gga
비정상 종료 핸들러 google-compute-engine-driver-pvpanic
Virtio 메모리 벌룬 드라이버 google-compute-engine-driver-balloon
Google 가상 NIC google-compute-engine-driver-gvnic

각 드라이버는 GooGet을 통해 패키징되어 Google Cloud 저장소에 게시됩니다. 드라이버의 소스 코드는 GitHub의 compute-windows-drivers에 있습니다. 모든 Google Cloud Windows 이미지는 GooGet 도구 및 Google Cloud 저장소로 사전 구성되어 있습니다. GooGet을 설치하고 저장소를 직접 설정해야 하는 경우 패키징 및 패키지 배포를 참조하세요.

특정 드라이버를 설치 또는 업그레이드하려면 다음 명령어를 실행합니다.

googet install DRIVER_PACKAGE_NAME

다음 단계

게스트 환경 설치에 대한 단계별 안내는 게스트 환경 설치를 참조하세요.