Image Builder 개요

Image Builder는 Cloud Build를 사용하여 Cloud de Confiance프로젝트 내에서 실행되는 선언적 운영체제 (OS) 이미지 맞춤설정 도구입니다. OS 이미지를 빌드, 맞춤설정, 검사하는 프로세스를 자동화하여 프로덕션 워크로드에 게시하기 전에 이미지가 올바르게 부팅되고 구성 요구사항을 따르는지 확인할 수 있습니다.

주요 이점

Cloud de Confiance내에서 맞춤 OS 이미지의 수명 주기를 자동화함으로써 Image Builder는 인프라를 관리하고 구성 요구사항을 검증하는 데 도움을 줍니다. Image Builder는 맞춤 OS 이미지 빌드에 다음과 같은 기능을 제공합니다.

  • OS 이미지 생성 자동화: 선언적 YAML 레시피와 자동화된 Cloud Build 워크플로를 사용하여 맞춤 스크립트나 외부 도구 없이 맞춤 OS 이미지를 만들고 유지관리합니다. Image Builder는 Cloud Build 내에서 실행되므로 Cloud Build 트리거를 사용하여 저장소 이벤트 (예: Git 푸시 또는 태그)에서 이미지 빌드를 자동으로 실행하거나, 반복 일정을 설정 (예: 보안 패치를 위한 주간 빌드)하거나, Pub/Sub 메시지에 응답(외부 워크플로 또는 웹훅에서 프로그래매틱 방식으로 빌드 트리거)할 수 있습니다.
  • 게시 전 이미지 유효성 검사: 이미지를 게시하기 전에 확인합니다. Google 제공 검사는 중간 이미지가 부팅되고, 보안 부팅을 지원하고 (해당하는 경우), 필수 네트워크 드라이버를 로드하고, 정상 게스트 에이전트를 실행하는지 확인합니다.
  • 스크립트 실행 추적: 빌드 파이프라인 중에 실행되는 코드를 추적합니다. Image Builder는 감사 추적을 유지하기 위해 빌드 로그 내에 인라인 맞춤설정 스크립트의 암호화 SHA-256 해시를 자동으로 기록합니다.
  • 사용한 리소스에 대해서만 비용 지불: Image Builder 서비스는 추가 비용 없이 사용할 수 있습니다. 파이프라인이 실행되는 동안 사용되는 기본 컴퓨팅, 스토리지, 빌드 리소스에 대해서만 비용이 발생합니다.

Image Builder의 작동 방식

Image Builder는 Cloud Build 오케스트레이터 컨테이너를 사용하여 Cloud de Confiance 프로젝트 내에서 실행됩니다. 이미지 빌드 프로세스는 다음 단계로 구성됩니다.

  1. 검증 및 준비: 오케스트레이터 컨테이너가 YAML 구문을 확인하고 필요한 모든 API가 사용 설정되어 있으며 타겟 ID 및 액세스 관리 (IAM) 보안 권한이 활성 상태인지 확인합니다.
  2. 작업 공간 및 디스크 준비: 오케스트레이터 컨테이너는 소스 코드와 구성이 포함된 Cloud Build 작업 공간 디렉터리 (/workspace)를 압축된 tar 파일 (.tar.gz)로 보관하고 이 tar 파일을 빌드 구성에 지정된 Cloud Storage workdir 버킷에 업로드합니다. 그런 다음 오케스트레이터 컨테이너는 정적으로 컴파일된 맞춤설정 프로비저닝 도구 파일 시스템을 사용하여 임시 Compute Engine 이미지를 만듭니다. 이 이미지는 작업자 VM에 연결된 보조 데이터 디스크를 정의합니다.
  3. 작업자 VM 실행: 오케스트레이터 컨테이너는 지정된 소스 이미지를 부팅 디스크로 사용하여 임시 작업자 VM 인스턴스를 시작하고 맞춤설정 프로비저닝 도구가 포함된 보조 데이터 디스크를 연결합니다. 작업자 VM의 하드웨어 속성, VPC 네트워크, 서브네트워크, 외부 IP 할당(임시 공개 IP 또는 외부 IP 없음)은 imagebuilder.yaml 파일의 infrastructureConfig 설정에 따라 결정됩니다.
  4. 맞춤설정: 시작 스크립트가 데이터 디스크를 마운트하고 작업자 VM에서 맞춤설정 프로비저너를 시작합니다. 프로비저너는 작업공간 보관 파일을 다운로드하고 셸 스크립트 실행, 파일 복사, 드라이버 컴파일과 같이 선언된 맞춤설정을 적용합니다. 또한 보안 정리 패스를 실행하여 SSH 키, 고유한 머신 ID, 로그 기록을 정리합니다. 그런 다음 인스턴스를 종료합니다.
  5. 유효성 검사 (테스트): 오케스트레이터 컨테이너는 맞춤설정된 부팅 디스크에서 임시 테스트 OS 이미지를 만들고 imagebuilder.yaml 파일의 네트워크 및 인프라 구성을 사용하여 임시 테스트 VM을 프로비저닝하여 다음 시스템 정의 유효성 검사 확인을 실행합니다.
    • Intel IDPF 드라이버 확인: 지원되는 인스턴스가 일반 디스플레이 또는 대체 드라이버가 아닌 Intel 인프라 데이터 경로 함수 (idpf) 네트워크 드라이버를 로드하는지 확인합니다.
    • 네트워킹 및 게스트 에이전트 확인: 게스트 에이전트 서비스가 활성 상태이고 하나 이상의 비 루프백 네트워크 인터페이스가 작동 중이며 이름이 규칙 (eth* 또는 en*)을 준수하는지 확인합니다.
    • 보안 부트 확인: UEFI 보안 부트가 활성 상태이고 시스템에서 게스트 커널 확인을 적용하는지 확인합니다.
    • 확인 일시중지 또는 재개: Compute Engine API를 사용하여 테스트 VM을 일시중지하고 시스템 재부팅 없이 재개 후 네트워크 연결이 복구되는지 확인합니다.
  6. 출시: 모든 검증 검사를 통과하면 오케스트레이터 컨테이너가 최종 이미지를 준비합니다.
    • Artifact Registry가 구성된 경우: 오케스트레이터 컨테이너는 맞춤설정된 부팅 디스크를 tar 파일로 Artifact Registry 일반 저장소에 내보내고 Artifact Registry URI를 소스로 사용하여 최종 프로덕션 Compute Engine 이미지를 만듭니다.
    • Artifact Registry가 구성되지 않은 경우: 오케스트레이터 컨테이너는 맞춤설정된 부팅 디스크를 사용하여 프로젝트에서 직접 Compute Engine 이미지를 만듭니다.

가격 책정 및 할당량 고려사항

Image Builder 서비스는 추가 비용 없이 사용할 수 있습니다. 하지만 Cloud de Confiance by S3NS 빌드, 테스트, 출시 단계에서 프로비저닝된 표준 리소스에 대한 요금은 다음과 같습니다.

  • Compute Engine: 작업자 VM, 테스트 VM, 연결된 영구 디스크 요금입니다.
  • Cloud Build: 오케스트레이터 컨테이너 런타임(분)에 요금이 청구됩니다.
  • Cloud Storage: 작업공간 보관 파일, 로그 내보내기, 중간 애셋에 대한 요금입니다.
  • Artifact Registry: 구성된 경우 내보낸 이미지 tar 파일을 저장하는 비용이 청구됩니다.
  • 맞춤 이미지: 중간 테스트, 디버그, 프로덕션 이미지를 저장하는 데 부과되는 요금입니다.

리소스 비용에 대한 자세한 내용은 Compute Engine, Cloud Build, Cloud Storage, Artifact Registry, 커스텀 이미지 스토리지의 가격 책정 문서를 참고하세요.

할당량 요구사항

빌드를 실행하는 영역에 Compute Engine CPU 및 영구 디스크 할당량이 충분한지 확인합니다. 타겟 영역의 할당량이 부족하여 VM 프로비저닝 중에 파이프라인이 실패합니다.

다음 단계