확정 인스턴스 템플릿

이 페이지에서는 확정 인스턴스 템플릿을 만들어야 하는 시기와 이유를 설명합니다. 확정 인스턴스 템플릿을 사용하면 인스턴스 템플릿을 배포할 때 인스턴스에 설치해야 하는 타사 서비스 또는 애플리케이션의 유형에 관해 명확하게 알 수 있습니다. 확정 인스턴스 템플릿을 작성하여 인스턴스 템플릿의 모호성과 예기치 않은 동작을 최소화합니다.

시작하기 전에

확정 인스턴스 템플릿을 만들어야 하는 이유

일반적으로 인스턴스 템플릿의 속성은 최대한 명시적이고 확정적인 것이 좋습니다. 타사 서비스를 설치하거나 사용하는 인스턴스 템플릿에 시작 스크립트를 사용하는 경우 이러한 스크립트가 설치할 애플리케이션의 버전과 같은 명시적인 정보를 제공해야 합니다. Compute Engine은 템플릿에 정의된 정보에만 의존할 수 있으며 참조된 타사 서비스를 제어할 수 없습니다. 템플릿이 너무 모호하면 인스턴스 템플릿이 예상과 다르게 작동할 수 있습니다.

예를 들어, apache2를 설치하고 외부 서버에서 호스팅되는 파일을 사용하는 시작 스크립트로 인스턴스 템플릿을 만들려면 다음 명령어 사용을 고려하세요.

gcloud compute instance-templates create example-template-with-startup \
    --image-family debian-9 \
    --image-project debian-cloud \
    --metadata startup-script='#! /bin/bash
    sudo apt-get install -y apache2
    scp myuser@108.59.87.185:index.php /var/www/'

이 시작 스크립트에는 두 가지 잠재적인 문제가 있습니다.

  • 스크립트가 설치할 apache2의 버전을 명시적으로 정의하지 않으며 apt-get 저장소에서 사용할 수 있는 현재 버전을 사용합니다.
  • 버전이 지정되어 있지 않고 인스턴스 템플릿을 마지막으로 사용한 이후로 변경되었을 수 있는, 타사에서 호스팅하는 파일이 스크립트에 사용됩니다.

자동 확장 처리를 사용하는 경우 인스턴스 템플릿이 확정적이지 않으면 자동 확장 처리를 통해 관리형 인스턴스 그룹에 새 인스턴스를 다른 구성(예: 다른 버전의 apache2)으로 추가하게 될 수 있습니다.

마찬가지로 이 템플릿을 관리형 인스턴스 그룹에 적용하고 인스턴스 그룹 업데이터 서비스를 사용하여 그룹을 다른 템플릿으로 업데이트한 후 이전 템플릿으로 롤백하기로 결정한 경우 인스턴스는 시작 시 항상 최신 버전을 가져오기 때문에 인스턴스가 업데이트 전과 다른 버전의 apache2 또는 index.php 파일을 사용하게 될 수 있습니다.

모호하거나 예기치 않은 인스턴스 템플릿 동작 방지하기

예기치 않은 템플릿 동작을 방지하려면 다음 방법 중 하나를 사용하세요.

  • 컨테이너 최적화 이미지나 Docker(Docker 태그 포함)를 사용합니다. 예를 들어 Docker 이미지의 모든 새 빌드에 새 태그를 할당하고 이 태그를 기본 태그 대신 인스턴스 템플릿에 사용하는 것이 좋습니다. 컨테이너 최적화 이미지의 경우 매니페스트 파일에서 이미지의 특정 빌드를 명시적으로 참조할 수 있습니다. 아래 예에서는 'version_2_1_3' 태그로 지정된 버전의 Docker 이미지 'myimage'를 사용합니다.

    version: v1beta2
    containers:
      - name: simple-echo
        image: myimage:version_2_1_3
           [ rest of your manifest file ]
    
  • 템플릿의 이미지로 사용할 커스텀 이미지를 만듭니다. 시작 스크립트는 배포 패키지 업데이트 후 결과가 다를 수 있는 반면 이 방법을 사용하면 모든 인스턴스가 동일해지므로 시작 스크립트보다 이 방법이 낫습니다. 프로토타이핑 및 신속한 개발을 위한 인스턴스 템플릿에는 시작 스크립트를 사용하고, 프로덕션 품질 서비스를 배포할 준비가 되면 커스텀 이미지를 사용하세요.

  • 시작 스크립트를 사용하는 경우 스크립트를 확정적으로 업데이트하는 것이 좋습니다. 예를 들어 이전 템플릿의 새 버전을 만들고 다음과 같이 확정 시작 스크립트를 지정합니다.

    gcloud compute instance-templates create example-template-with-startup-2-1-3 \
        --image-family debian-9 \
        --image-project debian-cloud \
        --metadata startup-script='#! /bin/bash
        sudo apt-get install -y apache2=2.2.20-1ubuntu1
        scp myuser@108.59.87.185:version_2_1_3/index.php /var/www/'
    

    여기에서 'version_2_1_3'은 서비스 버전 2.1.3을 위한 PHP 스크립트가 들어 있는 하위 디렉토리입니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서