이 문서에서는 한 리전의 여러 영역에 VM이 확산된 관리형 인스턴스 그룹(MIG)을 만드는 방법을 설명합니다. 애플리케이션 로드를 여러 영역 간에 분산하면 영역 장애로부터 워크로드가 보호됩니다. 영역 장애가 발생하더라도 동일 리전에 있는 남은 사용 가능한 영역에서 실행되는 인스턴스에서 애플리케이션이 계속 실행될 수 있습니다.
이 유형의 MIG를 리전별 MIG라고도 부릅니다. 자세한 내용은 리전 MIG 정보를 참조하세요.
MIG를 만드는 다른 기본 시나리오도 참조해 보세요.
시작하기 전에
- 관리형 인스턴스 그룹을 만드는 데 필요한 인스턴스 템플릿을 만듭니다.
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
나머지 단계는 Google Cloud console에서 자동으로 표시됩니다.
-
인스턴스 그룹 만들기 를 클릭하여 새 인스턴스 그룹을 만듭니다. -
새 관리형 인스턴스 그룹 옵션 중 하나를 선택합니다.
- 스테이트리스(Stateless)(기본값)
- 스테이트풀(Stateful)
- 인스턴스 그룹에 이름과 설명(선택사항)을 할당합니다.
- 인스턴스 그룹의 인스턴스 템플릿을 선택하거나 새로 만듭니다.
- 인스턴스 수 또는 자동 확장에서 이 그룹의 인스턴스 수를 지정합니다. 영역 오류가 발생할 경우 애플리케이션을 지원하기에 충분한 VM을 프로비저닝해야 합니다.
-
위치 에서 여러 영역을 선택합니다. - 리전을 선택하고 사용할 영역을 선택합니다. 리전 인스턴스 템플릿을 선택했으면 리전은 템플릿의 리전에 따라 자동으로 선택됩니다.
- 목표 분산 형태에서 균등을 선택합니다. 다른 형태를 선택하려면 리전 MIG의 VM에 대한 목표 분산 형태 설정을 참조하세요.
- 사전 인스턴스 재배포를 사용 중지하려는 경우 인스턴스 재분산 아래에서 인스턴스 재분산 허용 체크박스의 선택을 해제하세요.
- MIG 만들기 프로세스의 나머지 과정을 계속 진행합니다.
- MIG를 만들려면
만들기 를 클릭합니다. PROJECT_ID
: 이 요청의 프로젝트 ID입니다.REGION
: 그룹의 리전입니다.BASE_INSTANCE_NAME
: (선택사항) 그룹의 일부로 생성되는 각 VM 인스턴스의 인스턴스 이름입니다. 예를 들어example-instance
의 기본 인스턴스 이름은example-instance-[RANDOM_STRING]
과 같은 이름의 인스턴스를 만듭니다. 여기서[RANDOM_STRING]
은 서버에서 생성됩니다.INSTANCE_TEMPLATE_NAME
: 사용할 인스턴스 템플릿입니다. 리전 인스턴스 템플릿의 경우 템플릿의 전체 또는 부분 URL을 지정해야 합니다. 전체 URL 예시는https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
이고 부분 URL은projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
입니다.INSTANCE_GROUP_NAME
: MIG 이름TARGET_SIZE
: 그룹의 대상 VM 수입니다.- 애플리케이션 기반 자동 복구를 설정하여 MIG의 각 VM에서 애플리케이션이 정상적으로 응답하는지 주기적으로 확인하고 응답하지 않는 VM을 자동으로 다시 생성합니다.
- 자동 확장을 사용 설정하여 부하의 증감에 따라 MIG에서 VM을 자동으로 추가하거나 삭제합니다.
- 새 인스턴스 템플릿, 모든 인스턴스 구성, 인스턴스별 구성을 설정 및 적용하여 MIG에서 VM의 일부 또는 전체에 새 구성을 적용하는 방법을 알아보세요.
- 스테이트풀(Stateful) 구성을 추가하여 VM 재생성, 자동 복구, 업데이트와 같이 중단을 유발하는 이벤트 동안 디스크, 메타데이터, IP 주소를 보존합니다.
- MIG의 VM 삭제, 폐기, 재생성 등 관리형 인스턴스 작업에 대해 알아봅니다.
- MIG 및 VM에 대한 정보를 확인합니다.
- 리전 MIG의 영역 서비스 중단 시뮬레이션
- 인스턴스 그룹에 외부 HTTP(S) 부하 분산기 프런트엔드를 추가하는 방법을 알아봅니다. 다른 유형의 부하 분산기에 대한 자세한 내용은 부하 분산 개요를 참조하세요.
Terraform
로컬 개발 환경에서 이 페이지의 Terraform 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
제한사항
사용하는 구성에 따라 달라지는 MIG 제한사항의 전체 목록을 보려면 MIG 제한사항을 참조하세요.
VM이 리전의 여러 영역에 있는 MIG 만들기
Google Cloud 콘솔, gcloud CLI, Terraform 또는 REST를 사용합니다.
콘솔
gcloud
모든 MIG에는 인스턴스 템플릿이 필요합니다. 인스턴스 템플릿이 없는 경우 하나를 만듭니다. 예를 들어 다음 명령어는 기본 속성으로 기본 인스턴스 템플릿을 만듭니다.
gcloud compute instance-templates create example-template
그런 다음
--region
플래그와 함께instance-groups managed create
명령어를 사용합니다. 예를 들어 다음 명령어는us-east1
리전 내 영역 세 개에 리전 MIG를 만듭니다.gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --region us-east1
그룹에서 사용해야 하는 특정 영역을 선택하려면 다음과 같이
--zones
플래그를 지정합니다.gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c
사전 인스턴스 재분산을 사용 중지하려면 사전 인스턴스 재분산 중지를 참조하세요.
Terraform
MIG의 각 VM에 대해 원하는 머신 유형, 부팅 디스크 이미지, 네트워크, 기타 VM 속성을 지정하는 인스턴스 템플릿을 아직 만들지 않았으면 인스턴스 템플릿을 만듭니다.
리전 MIG를 만들려면
google_compute_region_instance_group_manager
리소스를 사용하면 됩니다.Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.
REST
모든 MIG에는 인스턴스 템플릿이 필요합니다. 인스턴스 템플릿이 없는 경우 하나를 만듭니다.
다음으로
regionInstanceGroupManagers.insert
메서드에 대한POST
요청을 작성합니다. 요청 본문에서 그룹 이름, 그룹 크기, 인스턴스 템플릿의 URL을 지정합니다. 원하는 경우 그룹 내 인스턴스의 기본 이름과 같은 다른 필드를 지정합니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "baseInstanceName": "BASE_INSTANCE_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "name": "INSTANCE_GROUP_NAME", "targetSize": "TARGET_SIZE" }
다음을 바꿉니다.
특정 영역을 선택하려는 경우나 영역이 세 개보다 적거나 많은 리전에 VM을 만들려는 경우 요청에
distributionPolicy
속성을 포함하고 영역 목록을 지정합니다.ZONE
을 VM을 만들 영역의 이름으로 바꿉니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "baseInstanceName": "BASE_INSTANCE_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "name": "INSTANCE_GROUP_NAME", "targetSize": "TARGET_SIZE", "distributionPolicy": { "zones": [ {"zone": "zones/ZONE"}, {"zone": "zones/ZONE"} ] } }
예를 들어 다음은
us-east1-b
및us-east1-c
영역에 배포된 관리형 인스턴스가 10개 있는example-rmig
라는 리전 MIG를 만듭니다.POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers { "instanceTemplate": "global/instanceTemplates/example-instance", "name": "example-rmig", "targetSize": 10, "distributionPolicy": { "zones": [ {"zone": "zones/us-east1-b"}, {"zone": "zones/us-east1-c"} ] } }
MIG를 구성하고 조치를 취하는 방법에 따라 다양한 정책과 작업이 그룹의 인스턴스에 영향을 미칠 수 있습니다. 실행 중인 관리형 인스턴스를 확인하려면 관리형 인스턴스의 상태 확인을 참조하세요.
각 영역의 용량이 그룹의 VM을 지원하는 데 부족하면 Compute Engine은 최대한 많은 VM을 만들고 추가 용량을 사용할 수 있게 되면 계속 잔여 VM을 만들려고 합니다.
요청에서 개별 영역을 명시적으로 지정하지 않으면 Compute Engine은 VM을 만들 영역을 3개 선택합니다. 세 개보다 많거나 적은 영역에 VM을 만들어야 하거나 사용할 영역을 선택하려면 요청에 영역 목록을 제공하면 됩니다. 자세한 내용은 영역 선택을 참조하세요.
영역 간 VM 배포
기본적으로 리전별 MIG는 선택한 영역 간에 VM을 균등하게 배포합니다. 리전 MIG를 만들 때는 먼저 특정 리소스가 GPU와 기존 영구 디스크처럼 영역별로 구성된다는 점을 염두에 두어야 합니다. MIG의 인스턴스 템플릿이 영역 리소스를 지정하는 경우 해당 리소스가 리전 MIG에 의해 생성된 VM에 연결될 수 있도록 선택된 모든 영역에서 리소스가 표시되도록 해야 합니다. 또는 그룹에서 영역별 리소스의 존재 여부를 확인하려면 MIG의 목표 분산 형태를 설정하여 해당 인스턴스가 포함된 영역에만 인스턴스를 만들면 됩니다.
자세한 내용은 다음 문서를 참조하세요.
사전 인스턴스 재배포
사전 인스턴스 재분산은 기본적으로 사용 설정됩니다. 각 영역에서 VM 수를 수동으로 관리해야 하거나 MIG의 목표 분산 형태를
BALANCED
또는ANY_SINGLE_ZONE
으로 설정해야 하는 경우에는 사전 인스턴스 재분산을 중지해야 합니다.자세한 내용은 다음 문서를 참조하세요.
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-11-25(UTC)
-