이미지 계열 권장사항

이 문서에서는 Compute Engine에서 이미지 계열을 사용할 때의 권장사항을 설명합니다.

시작하기 전에

공개 이미지 계열

Compute Engine은 자동화 시스템이 최신 이미지를 참조할 수 있도록 하기 위해 이미지 계열을 제공합니다. 관리자는 일련의 이미지를 이미지 계열로 그룹화할 수 있습니다. 이렇게 하면 이미지 사용자는 정확한 이미지 이름이 아닌 이미지 계열 이름만 추적하면 됩니다. 이미지 이름은 고유해야 하므로 이미지 빌드 파이프라인은 애플리케이션 이름, 날짜, 버전과 같은 이미지에 인코딩된 정보를 사용하여 이미지 이름을 만드는 경우가 많습니다(예: my-application-v3-20161011). 자동화 도구는 이미지 이름을 주기적으로 업데이트하는 대신 이미지 계열 이름을 참조할 수 있습니다. 이미지 계열을 사용하면 해당 계열의 최신 이미지가 반환됩니다(예: my-application).

이미지 계열

공개 이미지 계열은 항상 지원 중단되지 않은 최신 버전의 이미지를 가리키고 공개 이미지는 1개의 이미지 계열로 그룹화됩니다. 예를 들어 debian-cloud 프로젝트의 debian-9 이미지 계열은 항상 최신 Debian 9 이미지를 가리킵니다.

커스텀 이미지 계열

커스텀 이미지 계열로 자체 이미지를 만들 수 있습니다. 이미지 계열은 이미지 계열을 만들 때 사용한 최신 이미지를 가리킵니다. 이미지 계열을 이전 이미지 버전으로 롤백해야 하는 경우 이전 이미지가 지원 중단되지 않았다면 해당 계열에서 최신 이미지를 지원 중단할 수 있습니다. 자세한 내용은 이미지 계열에서 이미지 버전 설정을 참조하세요.

이미지 계열로 이미지를 만들거나 이미지 계열을 새로 만들려면 이미지 생성 단계에서 추가적으로 --family 플래그를 추가해야 합니다. 예를 들면 다음과 같습니다.

gcloud compute images create my-application-v3-20161011 \
    --source-disk my-application-disk-1 \
    --source-disk-zone us-central1-f \
    --family my-application

이 명령어를 실행하면 이미지 my-application을 기반으로 인스턴스를 실행하는 모든 호출이 새로 만들어진 이미지 my-application-v3-20161011을 가리킵니다.

이미지 계열 사용 방법

이미지 계열에서 최신 이미지를 참조할 수 있지만 최신 이미지가 애플리케이션과 호환되지 않을 수 있으므로 프로덕션 환경이 검증되지 않은 경우 문제가 발생할 수 있습니다. 위험을 최소화하는 방식으로 이미지 계열의 이점을 활용하려면 이미지 계열을 프로덕션 환경에 도입하기 전에 해당 계열의 최신 참조 이미지를 테스트하는 것이 좋습니다.

요약하면 다음과 같은 접근 방식을 고려할 수 있습니다.

  • 프로덕션 환경과 별도의 테스트 환경을 설정합니다.
  • 테스트 환경에서 다음 단계를 완료합니다.
    • 소스 이미지 계열에서 커스텀 이미지 계열을 만듭니다.
    • 워크로드에서 커스텀 이미지 계열의 새 이미지에 대한 안정성을 확인합니다.
  • 안정성이 확인되면 커스텀 이미지 계열을 프로덕션 환경으로 이동합니다.

예를 들어 이 프로세스의 절차는 다음과 같습니다.

  1. 테스트 프로젝트의 소스 이미지 계열에서 이미지를 만듭니다. 이 새로운 이미지 소스 계열에는 테스트 환경에서 참조할 나만의 커스텀 이미지 계열도 있어야 합니다. 커스텀 이미지 계열에서 이미지를 만들려면 다음 명령어를 실행하세요.

    gcloud compute images create test-image-name \
    --source-image-project source-project \
    --source-image-family source-image-family \
    --project test-project \
    --family test-image-family
    

    다음을 바꿉니다.

    • test-image-name: 테스트 이미지의 이름입니다.
    • source-project: 소스 이미지 계열이 속한 프로젝트입니다.
    • source-image-family: 소스 이미지 계열의 이름입니다.
    • test-project: 이미지 계열을 추가할 테스트 프로젝트의 이름입니다.
    • test-image-family: 테스트 이미지 계열의 이름입니다.
  2. 커스텀 이미지 계열 test-image-family을 사용하여 워크로드를 테스트할 VM을 만듭니다. VM을 만들려면 다음 명령어를 실행하세요.

    gcloud compute instances create test-instance-name \
    --image-family your-test-image-family \
    --project test-project
    

    다음을 바꿉니다.

    • test-instance-name: 테스트 인스턴스의 이름입니다.
    • test-image-family: 테스트 이미지 계열의 이름입니다.
    • test-project: 테스트 프로젝트의 이름입니다.
  3. 이 이미지가 워크로드에 적합한 것으로 확인되면 이미지를 프로덕션 환경에 복사합니다.

    gcloud compute images create prod-image-name \
    --source-image-family test-image-family \
    --source-image-project test-project \
    --project prod-project \
    --family prod-image-family
    

    다음을 바꿉니다.

    • prod-image-name: 프로덕션 이미지의 이름입니다.
    • test-image-family: 테스트 이미지 계열의 이름입니다.
    • test-project: 테스트 이미지 계열이 속한 프로젝트입니다.
    • prod-project: 프로덕션 환경에 있는 프로젝트의 이름입니다.
    • prod-image-family: 프로덕션 환경에서 사용할 이미지 계열의 이름입니다.