TL;DR

  • Ubicloud 머신 이미지는 동일한 사전 구성 환경을 여러 가상 머신(VM)에 반복 배포하는 방식이며, 관리형 데이터베이스 서비스에서 각 데이터베이스 VM의 기반 환경을 한 번 준비하고 검증해 재사용하는 구조임.
  • 데이터베이스 패키지, 백업 도구, 모니터링 및 플랫폼 설정을 버전이 지정된 릴리스 아티팩트인 db-service@v1 이미지로 캡처함.
  • 고객이 데이터베이스를 만들면 컨트롤 플레인이 해당 이미지에서 VM을 시작하고, 첫 부팅에서 인증 정보와 백업 설정 적용, 서비스 시작 및 상태 점검을 수행함.
  • 운영체제나 데이터베이스 패키지 등이 업데이트되면 새 이미지 버전인 db-service@v2를 준비하고 검증하며, 캡처가 완료되면 db-service@latest가 새 VM에 해당 버전을 자동 적용함.
  • db-service@v1은 변경 없이 유지되고, 문제가 생기면 db-service@latest를 db-service@v1로 되돌려 새 VM을 이전 버전으로 실행할 수 있음.

한 번 캡처하고 반복 실행

  • 머신 이미지는 동일하게 사전 구성된 환경으로 여러 VM을 시작해야 할 때 유용함.
  • 애플리케이션 서버와 종속 항목을 패키징하거나 표준 개발·지속적 통합(CI) 환경을 만들고, 인공지능(AI) 에이전트와 기타 임시 작업용 샌드박스를 실행하거나, 작업 부하를 빠르게 재현할 수 있도록 정상 작동이 확인된 시스템 이미지를 유지하는 데 활용할 수 있음.
  • 각 VM에서 설정을 반복하는 대신 환경을 한 번 준비하고 테스트한 뒤, 해당 이미지에서 새 VM을 바로 시작할 수 있음.

관리형 데이터베이스의 이미지 활용

  • 관리형 데이터베이스 서비스는 이 패턴의 사례임. Ubicloud는 각 데이터베이스가 격리된 VM에서 실행되는 관리형 데이터베이스 서비스를 운영함.
  • 고객에게 서비스를 제공하려면 각 VM에 동일한 데이터베이스 패키지, 백업 도구, 모니터링 및 플랫폼 구성이 필요함.
  • 공통 환경은 버전이 지정된 릴리스 아티팩트와 같음. 고객이 데이터베이스를 만들 때마다 다시 구축하는 대신, 환경을 한 번 준비하고 검증한 뒤 db-service@v1과 같은 머신 이미지 버전으로 캡처함.
  • 고객이 데이터베이스를 만들면 컨트롤 플레인이 이 이미지에서 VM을 시작함. 대부분의 준비 작업은 이미 완료된 상태이며, 첫 부팅에서는 인증 정보와 백업 설정 등 인스턴스별 구성을 적용하고 서비스를 시작한 다음 상태 점검을 수행함.
  • 따라서 새 데이터베이스는 이미지 구축 과정을 매번 반복하지 않고 동일하게 테스트된 기반 환경에서 시작함.

이미지 버전 업데이트와 되돌리기

  • 운영체제, 데이터베이스 패키지, 백업 도구 또는 모니터링 에이전트를 업데이트할 때 새 이미지 버전인 db-service@v2를 준비하고 검증함.
  • v2 캡처가 완료되면 해당 이미지의 최신 버전이 되며, db-service@latest에서 생성하는 새 VM은 자동으로 v2를 사용함.
  • v1은 변경되지 않으며, 레이블로 지정해 이전 배포를 재현할 수 있음.
  • db-service@v2에 문제가 생기면 db-service@latest가 다시 db-service@v1을 가리키도록 설정할 수 있음. 이후 db-service@latest에서 생성되는 새 VM은 다시 v1을 사용하며, 이미지를 다시 빌드하거나 캡처할 필요가 없음.