이 문서에서는 관리형 인스턴스 그룹(MIG)에서 가상 머신(VM) 인스턴스에 구성 업데이트를 선택적으로 적용하는 방법을 설명합니다.
Compute Engine은 사용하는 구성 구성요소(인스턴스 템플릿, 선택적인 전체 인스턴스 구성, 선택적인 스테이트풀(Stateful) 구성)을 기반으로 MIG에서 VM을 유지 관리합니다.
이러한 구성요소를 변경하여 MIG의 VM 구성을 업데이트할 때마다 Compute Engine은 그룹에 추가된 새 VM에 업데이트된 구성을 자동으로 적용합니다.
업데이트된 구성을 기존 VM에 적용하려면 '낙관적' 업데이트 유형으로도 알려진 선택적인 업데이트를 설정할 수 있습니다. 이러한 유형의 업데이트는 다음 이점을 제공합니다.
- 업데이트하려는 VM을 선택할 수 있습니다.
- 업데이트 타이밍 및 순서를 제어할 수 있습니다.
- gcloud CLI 또는 REST를 사용하여 모든 VM을 즉시 업데이트할 수 있습니다.
또는 MIG의 VM 전체 또는 일부 무작위 하위 집합에 새 구성을 자동으로 롤아웃하려면 MIG에서 VM 구성 업데이트 자동 적용을 참조하세요. 결정을 돕기 위해서는 기존 VM에 새 구성 적용 방법을 참조하세요.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
INSTANCE_GROUP_NAME
: MIG 이름입니다.INSTANCE_TEMPLATE
: 새 인스턴스 템플릿입니다.INSTANCE_NAMES
: 템플릿을 적용할 VM 목록입니다.DISRUPTION_LEVEL
: 최소 또는 최대 중단 수준(none
,refresh
,restart
또는replace
)입니다.- 최소 작업 기본값은
none
입니다. - 중단을 가장 많이 유발하는 작업 기본값은
replace
입니다.
- 최소 작업 기본값은
INSTANCE_GROUP_NAME
: 그룹 이름NEW_TEMPLATE
: 새 템플릿 이름의 이름입니다.ZONE
: 업데이트할 인스턴스의 영역입니다.INSTANCE_NAME_1
및INSTANCE_NAME_2
: 업데이트할 VM의 이름입니다.DISRUPTION_LEVEL
: 최소 또는 최대 중단 수준(NONE
,REFRESH
,RESTART
또는REPLACE
)입니다.minimalAction
의 기본값은NONE
입니다.mostDisruptiveAllowedAction
의 기본값은REPLACE
입니다.
최소 작업: 중단을 최소화하거나 필요 이상으로 더 많이 중단을 유발하는 작업을 적용하려면 이 옵션을 사용합니다.
- 중단을 최대한 제한하려면 최소 작업을
NONE
으로 설정합니다. 업데이트에 더 많이 중단을 유발하는 작업이 필요한 경우 Compute Engine이 업데이트를 실행하는 데 필요한 작업을 수행합니다. - 반드시 필요한 것보다 더 많이 중단을 유발하는 작업을 적용하려면 최소 작업을
RESTART
또는REPLACE
로 설정합니다. 예를 들어 Compute Engine에서 메타데이터를 변경하기 위해 VM을 다시 시작할 필요가 없습니다. 그러나 애플리케이션이 VM이 다시 시작될 때에만 인스턴스 메타데이터를 읽는 경우에는 최소 작업을RESTART
로 설정하여 메타데이터 변경사항을 가져오면 됩니다.
- 중단을 최대한 제한하려면 최소 작업을
중단을 가장 많이 유발하는 작업: 감당할 수 있는 수준보다 더 많이 중단을 유발하는 업데이트를 방지하려면 이 옵션을 사용합니다. 업데이트에 이 플래그로 설정한 것보다 더 많이 중단을 유발하는 작업이 필요한 경우 업데이트 요청이 실패합니다. 예를 들어 중단을 가장 많이 유발하는 작업을
RESTART
로 설정하면 부팅 디스크 이미지 업데이트 시도는 실패하게 됩니다. 이는 해당 업데이트에 다시 시작보다 더 많이 중단을 유발하는 작업인 인스턴스 재생성이 필요하기 때문입니다.- 최소 작업 기본값은
NONE
으로, 중단을 최대한 제한합니다. - 중단을 가장 많이 유발하는 작업 기본값은
REPLACE
입니다. 이러한 중단을 감당할 수 없는 경우 중단을 가장 많이 유발하는 작업을 중단을 적게 유발하도록 설정합니다. - MIG 및 관리형 VM에 대한 정보 보기 알아보기
- 인스턴스 템플릿 만들기 알아보기
- 이미지 계열과 순차적 교체를 사용하여 MIG의 모든 VM에서 OS 이미지를 업데이트하는 방법 알아보기
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
선택한 VM에 업데이트된 구성 적용
MIG가 기존 VM에 새 VM 구성을 자동으로 적용하지 않도록 방지하기 위해 그룹의 업데이트 정책 유형이 '낙관적'으로 설정되었는지 확인합니다. 자세한 내용은 그룹의 업데이트 정책 유형 검사를 참조하세요.
그런 후 gcloud CLI 또는 REST를 사용하여 MIG 구성을 업데이트하고 그룹의 특정 VM 또는 그룹의 모든 VM에 최신 구성을 적용합니다.
gcloud
그룹에 대해 새 인스턴스 템플릿을 설정하려면
set-instance-template
명령어를 사용할 수 있습니다.gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE
특정 VM에 구성 적용
업데이트된 구성을 특정 VM에 적용하려면
--instances
플래그와 함께update-instances
명령어를 사용합니다.gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAMES \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
모든 VM에 구성 적용
모든 VM에 업데이트된 구성을 적용하려면
--all-instances
플래그와 함께update-instances
명령어를 사용합니다.gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --all-instances \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
다음을 바꿉니다.
REST
그룹에 대해 새 인스턴스 템플릿을 설정하려면 영역 또는 리전 MIG에서
patch
메서드를 호출하고versions.instanceTemplate
필드를 업데이트합니다. 새 템플릿을 자동으로 그룹 내 모든 VM에 출시하지 않도록 하려면updatePolicy.type
필드를OPPORTUNISTIC
으로 설정합니다.PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "OPPORTUNISTIC" }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", }] }
특정 VM에 구성 적용
특정 VM에 업데이트된 구성을 적용하려면 영역 또는 리전 MIG에 대해
applyUpdatesToInstances
메서드를 호출하고 요청에 VM 목록을 지정합니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ], "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
모든 VM에 구성 적용
모든 기존 VM에 업데이트된 구성을 적용하려면
allInstances
필드를true
로 설정합니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "allInstances": true, "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
다음을 바꿉니다.
다른 관리형 인스턴스 그룹 메서드와 마찬가지로
applyUpdatesToInstances
는 인텐트 기반이므로 작업 응답을 반환합니다. 작업을 완료하는 데 다소 시간이 걸릴 수 있습니다.요청한 후에는 상태를 확인하여 업데이트가 완료되었는지 확인할 수 있습니다.
선택적 업데이트 중 중단 수준 제어
업데이트 특성에 따라 인스턴스 상태가 중단될 수 있습니다. 예를 들어 인스턴스의 부팅 디스크를 변경하려면 인스턴스를 바꿔야 합니다. 다음 옵션을 설정하여 선택적 업데이트 중 중단 수준을 제어할 수 있습니다.
선택한 VM을 업데이트할 때 이 옵션은 모두 다음 값을 허용합니다.
값 설명 업데이트할 인스턴스 속성 NONE
인스턴스를 전혀 중단하지 않습니다. 없음 REFRESH
인스턴스를 중지하지 않습니다. 추가 디스크, 인스턴스 메타데이터, 라벨, 태그 RESTART
인스턴스를 중지한 후 다시 시작합니다. 추가 디스크, 인스턴스 메타데이터, 라벨, 태그, 머신 유형 REPLACE
인스턴스를 삭제하고 다시 만듭니다. 인스턴스 템플릿이나 인스턴스별 구성에 저장된 모든 인스턴스 속성 중단을 가장 많이 유발하는 작업은 최소 작업보다 중단을 적게 유발할 수 없습니다.
VM을 선택적으로 업데이트하면 다음 기본값이 적용됩니다.
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-12-03(UTC)
-