기존 워크로드를 스테이트풀(Stateful) 관리형 인스턴스 그룹으로 마이그레이션


독립형(비관리형) Compute Engine 가상 머신(VM) 인스턴스에 기존 스테이트풀(Stateful) 애플리케이션이 있는 경우 해당 애플리케이션을 스테이트풀(Stateful) 관리형 인스턴스 그룹(MIG)으로 마이그레이션할 수 있습니다.

스테이트풀(Stateful) MIG를 구성하고 관리형 인스턴스를 사용할 경우 다음과 같은 이점을 얻을 수 있습니다.

  • 보존 상태: 인스턴스가 다시 생성되더라도 인스턴스 이름, 디스크, 메타데이터가 보존됩니다.
  • 자동 복구: 동일한 영역 내에서 워크로드가 실패한 VM을 자동으로 다시 만듭니다.
  • 자동 업데이트: MIG의 VM에 새 인스턴스 구성 또는 소프트웨어 버전을 단계적으로 배포합니다.

제한사항

  • 기존 디스크를 마이그레이션하거나 새 관리형 인스턴스에서 사용할 일관된 스냅샷을 만들려면 기존 VM을 중지해야 합니다.
  • VM 이름을 재사용하려면 기존 VM을 삭제해야 합니다.
  • 애플리케이션을 동일한 머신 유형의 VM에서 실행할 수 있어야 합니다. 기존 애플리케이션에 머신 유형이 다른 여러 인스턴스가 필요한 경우 인스턴스 템플릿과 MIG를 머신 유형당 하나씩 여러 개 만듭니다.
  • VM이 시작될 때 애플리케이션을 시작해야 합니다. 커스텀 이미지 또는 시작 스크립트를 사용할 수 있습니다. 각 옵션에 대해서는 아래에 설명되어 있습니다.
  • 스테이트풀(Stateful) 부팅 디스크를 만들도록 선택한 경우 MIG에서 부팅 이미지 업데이트를 출시하여 운영체제나 소프트웨어를 업데이트할 수 없습니다.
  • 여러 영역에 중복 복제본을 만들고 애플리케이션 수준 데이터 복제를 구성해야만 다중 영역 고가용성을 얻을 수 있습니다. 스테이트풀(Stateful) MIG는 동일한 영역 내의 인스턴스만 자동 복구하고 영역 간 장애 조치는 조정하지 않습니다.
  • 스테이트풀(Stateful) MIG에는 자동 확장을 사용할 수 없습니다.
  • 스테이트풀(Stateful) MIG 제한사항을 확인하세요.

비용

이 튜토리얼에서는 다음과 같이 비용이 청구될 수 있는 Google Cloud 구성요소를 사용합니다.

  • Compute Engine

가격 계산기를 사용하면 예상 사용량을 기준으로 예상 비용을 산출할 수 있습니다.

시작하기 전에

이 가이드에서는 gcloud CLI가 사용됩니다. Cloud Shell을 사용하여 이 도구에 액세스할 수 있습니다. 또는 대신 로컬 컴퓨터에서 gcloud CLI를 실행하려면 최신 gcloud CLI를 다운로드하고 설치합니다.

마이그레이션 개요

  1. 스테이트풀(Stateful) MIG를 이루는 구성요소를 이해합니다.
  2. 기존 설정을 검토하여 공통된 VM 사양을 확인합니다.
  3. 원하는 경우 공통된 부팅 디스크 이미지로 사용할 커스텀 이미지를 만듭니다.
  4. 인스턴스 템플릿을 만들어 MIG의 공통된 VM 구성을 지정합니다.
  5. 빈 MIG를 만듭니다.
  6. 인스턴스별 구성을 포함해 기존 VM을 MIG의 관리형 인스턴스로 변환합니다.
  7. 애플리케이션의 탄력성을 향상시킬 수 있도록 MIG의 자동 복구를 구성합니다.
  8. 선택적으로 스테이트풀(Stateful) 정책을 사용해서 구성 오버헤드를 줄이고, 인스턴스별 구성을 바꿀 수 있습니다.

구성요소

여러 구성요소를 통해 스테이트풀(Stateful) MIG의 관리형 인스턴스를 구성합니다.

  • 인스턴스 템플릿에는 머신 유형, 부팅 디스크 이미지, 추가 디스크 사양(선택사항), 시작 스크립트(선택사항) 등 MIG의 VM에 대한 공통된 구성이 포함되어 있습니다.
  • 선택사항인 커스텀 이미지은 애플리케이션을 포함하며 공통된 부팅 디스크 이미지로 사용됩니다.
  • 인스턴스별 구성에는 인스턴스별 스테이트풀(Stateful) 항목이 포함되어 있습니다. 예를 들어 기존 디스크를 그룹의 특정 인스턴스에 연결할 수 있습니다. 이 디스크는 스냅샷 또는 리전별 디스크에서 복구된 기존 독립형 인스턴스에서 분리될 수 있습니다. 디스크의 기기 이름은 인스턴스 템플릿에 정의할 필요가 없습니다.
  • 선택사항인 스테이트풀(Stateful) 정책에는 공통된 스테이트풀(Stateful) 항목이 포함됩니다. 예를 들어 (인스턴스 템플릿에 정의된) 특정 기기 이름의 모든 디스크를 그룹에 포함된 모든 인스턴스의 스테이트풀(Stateful) 항목으로 정의합니다.

사용해야 하는 구성요소는 무엇인가요?

사용해야 하는 구성요소는 기존 설정에 따라 달라집니다. 다음 표에서는 하나 이상의 인스턴스에서 실행되는 애플리케이션에 사용 가능한 일부 구성을 대략적으로 요약해서 보여줍니다. 이 튜토리얼의 후반부에서는 기존 설정을 검토해서 사용해야 하는 구성을 확인합니다.

부팅 디스크에서 유지해야 할 스테이트풀(Stateful) 데이터 또는 구성이 있나요? 애플리케이션이 어떻게 시작되나요?
애플리케이션이 기존 부팅 디스크에 구성되어 있습니다. 애플리케이션이 시작 스크립트를 사용해 구성되어 있습니다.
아니요. 부팅 디스크가 스테이트리스(Stateless)입니다.
  1. 인스턴스 템플릿에 커스텀 이미지 사용
  2. 스테이트풀(Stateful) 데이터 디스크의 인스턴스별 구성(또는 스테이트풀(Stateful) 정책) 추가
  1. 시작 스크립트에 인스턴스 템플릿 사용
  2. 스테이트풀(Stateful) 데이터 디스크의 인스턴스별 구성(또는 스테이트풀(Stateful) 정책) 추가
예. 하나 이상의 부팅 디스크가 스테이트풀(Stateful)입니다.
  1. 인스턴스 템플릿에 커스텀 이미지 사용
  2. 스테이트풀(Stateful) 부팅 및 데이터 디스크의 인스턴스별 구성(또는 스테이트풀(Stateful) 정책) 추가
  1. 시작 스크립트에 인스턴스 템플릿 사용
  2. 스테이트풀(Stateful) 부팅 및 데이터 디스크의 인스턴스별 구성(또는 스테이트풀(Stateful) 정책) 추가

기존 설정 검토

기존 독립형 인스턴스를 검토해서 각 인스턴스의 머신 유형, 디스크, 메타데이터를 조사합니다.

각 인스턴스에 대해 instances describe 명령어를 사용합니다.

gcloud compute instances describe INSTANCE_NAME

다음 질문에 답하여 이 가이드의 후속 단계를 준비하세요.

질문 의미
VM 속성
그룹에 사용하려는 머신 유형은 무엇인가요? MIG 인스턴스 템플릿에 이 머신 유형을 지정합니다.
애플리케이션이 어떻게 시작되나요? 부팅 디스크에 사전 구성되어 있나요? 아니면 시작 스크립트에 의해 설치, 구성, 시작되나요? 애플리케이션이 부팅 디스크에 사전 구성되어 있으면 커스텀 이미지를 만든 다음 해당 이미지를 MIG의 인스턴스 템플릿에서 지정합니다.

시작 스크립트를 통해 애플리케이션이 시작되는 경우 MIG의 인스턴스 템플릿에서 시작 스크립트를 지정합니다.

애플리케이션에 커스텀 부팅 디스크 이미지와 시작 스크립트가 모두 필요하다면 인스턴스 템플릿에 둘 다 지정합니다.
기존 인스턴스 이름을 예약해야 하나요? 인스턴스 이름을 확보하려면 기존의 독립형 인스턴스를 삭제해야 합니다.

부팅 디스크가 스테이트리스(Stateless)로 유지되고 MIG에서 자동화된 순차적 업데이트를 사용하려는 경우 인스턴스 이름 유지 문서를 검토하세요.
스테이트풀(Stateful) 항목
각 인스턴스에 보존해야 할 인스턴스별 메타데이터가 있나요? 인스턴스별 구성을 사용하여 인스턴스별 메타데이터를 지정합니다.
부팅 디스크가 스테이트풀(Stateful)인가요? 즉, 상태를 보존해야 하는 부팅 디스크에 상주하는 데이터가 있나요? 부팅 디스크의 상태를 보존해야 할 경우에는 부팅 디스크 이미지 업데이트를 출시해서 운영체제 또는 소프트웨어를 업데이트할 수 없습니다.
모든 인스턴스에 동일한 종류의 디스크가 있나요? 예를 들어 모두가 하나의 데이터 디스크를 사용하나요? 아니면 각각 고유한 디스크 구성이 있고 이를 필요로 하나요? 모든 인스턴스에 공통된 디스크 구성이 있다면 인스턴스 템플릿에서 해당하는 공통된 기기 이름을 정의합니다(예: 'data-disk'). 그러면 스테이트풀(Stateful) 정책을 사용하여 디스크를 MIG에서 스테이트풀(Stateful)로 선언하여 인스턴스별 구성보다 오버헤드를 줄일 수 있습니다.
그룹이 커질 경우 현재 디스크 크기가 충분한가요? 인스턴스 템플릿에 필요한 디스크 크기를 지정합니다. 스테이트풀(Stateful) 정책 또는 인스턴스별 구성에 지정된 디스크가 재정의되지 않은 한 해당 디스크가 새 인스턴스에 제공됩니다.

이 가이드에서는 먼저 기존 스테이트풀(Stateful) 디스크의 인스턴스별 구성을 만드는 작업부터 다룹니다. 하지만 디스크에 그룹의 인스턴스 템플릿에서 선언하는 공통된 기기 이름이 있는 경우 나중에 이 구성을 스테이트풀(Stateful) 정책으로 변환할 수 있습니다.

설정 예시

이 가이드에서는 다음 기본 예시를 사용해서 마이그레이션 단계를 보여줍니다. 3개의 Compute Engine VM에서 스테이트풀(Stateful) 애플리케이션을 실행 중이라고 가정해보세요. VM 사양은 다음과 같습니다.

  • 각 VM의 머신 유형이 동일합니다.
  • 각 VM은 동일한 프로젝트 및 영역에 존재합니다.
  • 각 VM의 부팅 디스크에는 VM이 시작될 때 부팅 디스크에서 동일한 애플리케이션이 시작되도록 구성되어 있습니다.
  • 각 VM의 부팅 디스크에는 보존해야 할 다른 데이터나 구성이 포함되어 있지 않습니다.
  • 각 VM에는 스테이트풀(Stateful) 데이터, 즉 현재 상태를 유지해야 하는 데이터가 포함된 보조 영구 디스크가 있습니다.

아래 값을 수정하여 이 튜토리얼 전체에서 사용하세요.

- Machine type: n2-standard-2
- Project: my-project
- Zone: europe-west1-c
- Name of one of the VMs to migrate: my-instance-1

커스텀 이미지 만들기

애플리케이션 또는 해당 요구사항이 기존 부팅 디스크에 이미 구성되어 있으면 재사용 가능한 커스텀 이미지를 만듭니다. 또는 시작 스크립트만 사용해서 애플리케이션을 설치, 구성, 실행한 경우에는 이 단계를 건너뛰고 인스턴스 템플릿 만들기를 진행합니다.

앞에서 설명한 예시 시나리오에서는 각각의 기존 독립형 VM의 부팅 디스크에 구성된 애플리케이션이 포함됩니다. 따라서 VM 중 하나를 기반으로 커스텀 이미지를 만드는 단계를 수행할 수 있습니다.

  1. 인스턴스 중 하나를 중지합니다.

    gcloud compute instances stop my-instance-1
  2. 인스턴스를 기술하여 디스크 소스를 결정합니다.

    gcloud compute instances describe my-instance-1

    출력은 다음과 비슷합니다.

    ...
    disks:
    – autoDelete: true
      boot: true
      ...
      source: https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-c/disks/my-instance-1
      ...
    

    출력에서 source 필드를 찾은 후 이 필드에 있는 부팅 디스크의 전체 URL을 기록해 둡니다.

  3. images create 명령어를 사용하여 동일한 소스를 사용하는 커스텀 이미지를 준비합니다.

    gcloud compute images create my-boot-image \
        --source-disk=https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-c/disks/my-instance-1
    

    출력은 다음과 비슷합니다.

    Created [https://www.googleapis.com/compute/v1/projects/my-project/global/images/my-boot-image].
    

인스턴스 템플릿 만들기

인스턴스 템플릿은 VM 구성을 저장하는 변경할 수 없는 Compute Engine 리소스입니다. 템플릿을 만든 후에는 이를 업데이트할 수 없습니다. 나중에 변경해야 할 경우 새 템플릿을 만들고 새 템플릿을 그룹에 적용합니다.

다음 설정을 사용하여 새 인스턴스 템플릿 만들기 단계를 따릅니다.

  • 머신 유형: 모든 기존 인스턴스에서 작동하는 머신 유형을 지정합니다.

  • 시작 스크립트: 시작 스크립트를 사용하여 애플리케이션을 시작할 경우 스크립트를 지정합니다.

  • 부팅 디스크:

    • 이미지: MIG에서 모든 VM에 대해 공통 부팅 디스크 이미지를 지정합니다. 예를 들어 기존 VM의 부팅 디스크를 기준으로 커스텀 이미지를 만든 경우 이를 지정합니다. 특정 VM에 대해 기존 부팅 디스크를 사용해야 하면 이 문서의 후반부에 설명된 것처럼 VM을 관리형 인스턴스로 변환할 때 인스턴스별 구성을 사용해서 VM에 대해 부팅 디스크를 명시적으로 지정할 수 있습니다.
    • 기기 이름: 디스크 목적이 반영된 기기 이름을 지정합니다(예: boot-disk). 이렇게 하면 해당 기기 이름을 사용해서 MIG에서 모든 디스크를 보존하도록 단일 스테이트풀(Stateful) 정책을 구성할 수 있습니다.
    • 크기: 기존 인스턴스뿐만 아니라 이후 추가할 인스턴스에 충분한 부팅 디스크 크기를 지정합니다.
  • 추가 디스크: 기본적으로 MIG에 인스턴스를 추가하면 MIG가 템플릿을 기준으로 디스크를 만듭니다. 인스턴스 템플릿에서는 리전별 디스크 구성이 지원되지 않지만 나중에 대신 인스턴스별 구성을 사용해서 리전별 디스크를 구성할 수 있습니다.

    • 기기 이름: 디스크마다 디스크 용도를 나타내는 기기 이름(예: data-disk)을 지정합니다.
    • 크기: 이후 추가할 인스턴스에 충분한 디스크 크기를 지정합니다.

이 마이그레이션에서 각 추가 디스크에 가장 중요한 사양은 스테이트풀(Stateful) 디스크를 지정하는 키로 사용할 기기 이름입니다. 유사한 디스크에 공통된 기기 이름을 사용하면 공통된 스테이트풀(Stateful) 정책을 사용하여 MIG의 모든 디스크를 보존할 수 있습니다. 인스턴스 템플릿의 추가 디스크 크기 또는 이미지 사양은 마이그레이션하는 인스턴스가 아닌 사용자가 만들 수 있는 새로운 인스턴스의 새 디스크를 만드는 데에만 사용됩니다. 기존 인스턴스를 마이그레이션할 때는 이 문서 뒷부분의 설명대로 기존 데이터 디스크를 원래 인스턴스에서 분리한 후 동일한 디스크를 새 관리형 인스턴스에 다시 연결하여 보존합니다.

다음 instance-templates create 명령어는 예시 시나리오에 대해 템플릿을 만듭니다. 이 명령어에는 추가적인 데이터 디스크는 물론 앞에서 만든 커스텀 부팅 디스크에 연결되는 --image 플래그가 포함되어 있습니다.

gcloud compute instance-templates create my-instance-template \
 --machine-type=n2-standard-2 \
 --image=https://www.googleapis.com/compute/v1/projects/my-project/global/images/my-boot-image \
 --boot-disk-device-name=boot-disk \
 --create-disk=mode=rw,size=100,type=pd-standard,device-name=data-disk

출력은 다음과 비슷합니다.

Created [https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/my-instance-template].
NAME                     MACHINE_TYPE   PREEMPTIBLE  CREATION_TIMESTAMP
my-instance-template  n2-standard-2               2021-04-27T11:02:07.552-07:00

출력의 첫 번째 줄에 있는 템플릿 URL을 확인합니다.

관리형 인스턴스 그룹 만들기

다음 단계에서는 관리형 인스턴스 그룹(MIG)을 만듭니다. 단일 영역 MIG를 만들려면 단일 영역에 MIG 만들기 안내를 따릅니다. 또는 리전 MIG를 사용해 영역 장애를 방지하려면 VM이 리전의 여러 영역에 있는 MIG 만들기 안내를 따릅니다.

MIG를 만들 때는 다음 사양을 포함합니다.

  • 그룹 크기를 0으로 설정합니다. 나중에 인스턴스를 추가합니다.
  • 리전 MIG를 만드는 경우 영역에 인스턴스를 자동으로 재배포하지 않도록 인스턴스 재배포 유형NONE으로 설정합니다.

다음 instance-groups managed create 명령어는 앞에서 설명된 예시 설정에 대한 영역별 MIG를 만듭니다. 리전별 MIG를 만들려면 --zone=ZONE--region=REGION으로 바꿉니다.

gcloud compute instance-groups managed create my-mig \
    --size=0 \
    --template=https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/my-instance-template \
    --zone=europe-west1-c

출력은 다음과 비슷합니다.

Created [https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-c/instanceGroupManagers/my-mig].
NAME    LOCATION        SCOPE  BASE_INSTANCE_NAME  SIZE  TARGET_SIZE  INSTANCE_TEMPLATE         AUTOSCALED
my-mig  europe-west1-c  zone   my-mig              0     0            my-instance-template      no

리소스를 만든 후 이를 사용하여 그룹에 정책을 설정하고 그룹에서 인스턴스를 추가하거나 삭제하는 등 MIG와 상호작용할 수 있습니다.

기존 VM을 관리형 인스턴스로 변환

기존의 비관리형 VM마다 다음 절차를 따라 MIG의 관리형 인스턴스로 변환합니다. 이 절차에서는 기존 디스크를 새 관리형 인스턴스로 마이그레이션합니다. 또는 기존 디스크의 스냅샷을 만든 후 관리형 인스턴스에서 사용할 디스크를 이 스냅샷을 기반으로 만들 수도 있습니다.

  1. 기존 VM을 기술합니다.

    gcloud compute instances describe my-instance-1
    

    다음을 포함한 기존 VM에서 보존할 항목을 기록해 둡니다.

    • 인스턴스 이름
    • 부팅 디스크
    • 보조 디스크
    • 인스턴스 메타데이터
  2. 기존 VM을 중지합니다.

    gcloud compute instances stop my-instance-1
    
  3. 디스크를 다시 사용하려면 부팅 디스크를 포함한 모든 스테이트풀(Stateful) 디스크를 분리합니다.

    gcloud compute instances detach-disk my-instance-1 --disk=my-data-disk-1
    
  4. 같은 이름을 사용해서 또 다른 VM을 만들 수 있도록 기존 VM을 삭제합니다. 인스턴스 이름을 보존하지 않으려면 기존 VM을 삭제해서 비용 지불을 중지할 수 있습니다.

    gcloud compute instances delete my-instance-1
    
  5. 관리형 인스턴스 만들기의 단계를 따릅니다.

    • 원래 인스턴스를 삭제한 경우 원래 인스턴스의 이름을 재사용할 수 있습니다. 또는 새 이름을 입력합니다.
    • 이 관리형 인스턴스에 필요한 스테이트풀(Stateful) 디스크 또는 메타데이터를 지정합니다. MIG는 인스턴스별 구성에 이러한 인스턴스별 항목을 저장합니다.

      • 원래 VM 인스턴스에서 분리된 디스크 등 하나 이상의 디스크를 지정합니다.

      • 원래 VM 인스턴스의 메타데이터를 지정합니다.

    예를 들어 다음 명령어는 원래 VM과 이름이 동일한 관리형 인스턴스를 만들고 원본 데이터 디스크를 재사용합니다. 그룹의 인스턴스 템플릿에 지정된 이미지를 통해 VM의 부팅 디스크가 생성됩니다.

    gcloud compute instance-groups managed create-instance my-mig \
        --instance=my-instance-1    \
        --stateful-metadata=role=primary      \
        --stateful-disk=device-name=data-disk,source=https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-c/disks/my-data-disk-1 \
        --zone=europe-west1-c
    

    이전 VM에서 부팅 디스크를 재사용해야 하는 경우 추가적인 --stateful-disk 플래그를 사용해서 동일한 명령어를 사용합니다. 인스턴스 템플릿에 지정한 대로 부팅 디스크에 대해 동일한 기기 이름을 사용합니다. 예를 들면 다음과 같습니다.

    gcloud compute instance-groups managed create-instance my-mig \
        --instance=my-instance-1 \
        --stateful-metadata=role=secondary    \
        --stateful-disk=device-name=data-disk,source=https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-c/disks/my-data-disk-1 \
        --stateful-disk=device-name=boot-disk,source=https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-c/disks/my-instance-1-boot-disk \
        --zone=europe-west1-c
    
  6. 기존 비관리형 VM마다 단계를 반복합니다.

인스턴스별 구성 결과를 보려면 instance-configs list 명령어를 실행합니다.

gcloud compute instance-groups managed instance-configs list my-mig \
    --zone=europe-west1-c

인스턴스의 예약된 상태를 보려면 describe-instance 명령어를 실행합니다.

gcloud compute instance-groups managed describe-instance my-mig \
  --instance=my-instance-1 \
  --zone=europe-west1-c

자세한 내용은 MIG에서 스테이트풀(Stateful) 구성 적용, 보기, 삭제를 참조하세요.

자동 복구 구성

MIG는 실행이 중지된 관리형 인스턴스를 자동으로 복구합니다. 애플리케이션 가용성을 더 향상시키고 애플리케이션이 응답하는지 확인하려면 애플리케이션 기반 상태 확인을 구성합니다. 샘플 구성요소는 상태 확인 설정 예시를 참조하세요.

인스턴스별 구성 대신 스테이트풀(Stateful) 정책 사용

스테이트풀(Stateful) 정책을 사용하면 공통된 기기 이름을 사용하는 디스크를 MIG에서 스테이트풀(Stateful)로 선언할 수 있습니다. 단일 스테이트풀(Stateful) 정책을 사용하면 여러 인스턴스별 구성을 사용할 때보다 관리 작업이 줄어듭니다. 예를 들어 스테이트풀(Stateful) 정책을 사용하면 기기 이름이 data-disk인 모든 디스크를 MIG의 모든 인스턴스에서 스테이트풀(Stateful)로 지정할 수 있습니다.

MIG가 다음 조건을 충족하면 스테이트풀(Stateful) 정책으로 인스턴스별 구성을 바꿀 수 있습니다.

  • 모든 VM이 유사한 스테이트풀(Stateful) 디스크에 동일한 기기 이름(예: data-disk)을 사용합니다. MIG의 인스턴스 템플릿에 이 기기 이름이 정의되어 있습니다.
  • 인스턴스별 구성에 지정된 고유한 스테이트풀(Stateful) 메타데이터가 있는 VM이 없습니다. 인스턴스별 구성에 스테이트풀(Stateful) 메타데이터가 정의되어 있으면 인스턴스별 구성에서 디스크를 삭제할 수 있지만 인스턴스별 스테이트풀(Stateful) 메타데이터를 유지하려면 인스턴스별 구성을 유지해야 합니다.

다음 단계에 따라 여러 개의 인스턴스별 구성을 단일 스테이트풀(Stateful) 정책으로 바꿉니다.

  1. 스테이트풀(Stateful) 정책에 스테이트풀(Stateful) 디스크를 구성합니다. 기존 MIG에 있는 디스크의 스테이트풀(Stateful) 구성 설정 및 업데이트의 안내를 따릅니다.

    예시 시나리오에서는 다음 명령어를 사용합니다. MIG에서 특정 기기 이름을 사용하는 모든 디스크가 보존되도록 선언합니다.

    gcloud compute instance-groups managed update my-mig \
      --stateful-disk=device-name=data-disk,auto-delete=never
    
  2. 인스턴스별 메타데이터를 보존해야 하면 인스턴스별 구성을 업데이트합니다. 그렇지 않으면 인스턴스별 구성을 삭제합니다. --update-instance 플래그를 사용하여 구성 변경을 즉시 적용합니다. 예를 들어 인스턴스별 구성을 삭제하려면 다음 명령어를 사용합니다.

    gcloud compute instance-groups managed instance-configs delete my-mig \
      --instances=my-instance-1 \
      --update-instance
    
  3. (선택사항) 스테이트풀(Stateful) 항목이 각 관리형 인스턴스에 대한 정책(preservedStateFromPolicy)에서 예약된 상태로 저장되었는지 확인합니다. 자세한 내용은 관리형 인스턴스의 예약된 상태 확인을 참조하세요.

VM 추가

애플리케이션을 확장하기 위해 VM을 추가해야 하는 경우 MIG 크기를 증가시키거나 인스턴스를 수동으로 생성하여 VM을 더 추가할 수 있습니다. MIG는 그룹의 인스턴스 템플릿을 기반으로 영구 디스크를 포함한 모든 VM을 만듭니다. 그룹에 스테이트풀(Stateful) 정책이 있는 경우 그룹에 포함된 모든 신규 및 기존 인스턴스의 다시 시작, 재생성, 자동 복구, 업데이트 작업에서 스테이트풀(Stateful) 정책에 나열된 모든 항목이 보존됩니다. 그룹의 특정 VM에만 스테이트풀(Stateful) 디스크 또는 메타데이터를 구성해야 한다면 인스턴스별 구성을 사용합니다.

다음 단계