비관리형 인스턴스 그룹은 단일 프로젝트, 영역, VPC 네트워크, 서브넷에 상주하는 가상 머신(VM) 인스턴스의 모음입니다. 비관리형 인스턴스 그룹은 개별 구성 설정 또는 조정이 필요한 VM을 그룹화하는 데 유용합니다. 부하 분산기의 백엔드 서비스에서 비관리형 인스턴스 그룹을 사용할 수 있습니다.
일관된 구성 설정이 필요한 VM의 경우 인스턴스 템플릿을 기반으로 하는 관리형 인스턴스 그룹 (MIG)을 사용할 수 있습니다. 가능하면 비관리형 인스턴스 그룹 대신 관리형 인스턴스 그룹을 사용하는 것이 좋습니다. 관리형 인스턴스 그룹을 만들려면 MIG 만들기를 참조하세요.
두 인스턴스 그룹 유형 중 하나를 Google Cloud 부하 분산기에 백엔드로 추가할 수 있습니다. 자세한 내용은 Cloud Load Balancing 개요를 참조하세요. Cloud Load Balancing에서 지원하는 인스턴스 그룹당 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.
- Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 인스턴스 그룹 만들기를 클릭합니다.
- 새 비관리형 인스턴스 그룹을 클릭합니다.
- 비관리형 인스턴스 그룹 이름을 입력합니다.
- 위치에서 리전과 영역을 선택합니다.
- 네트워크와 서브네트워크를 선택합니다.
- VM 인스턴스에서 이 그룹에 추가할 VM을 선택합니다.
- 만들기를 클릭합니다.
instance-group-name
: 만들려는 그룹의 이름입니다.zone
: 그룹을 만들려는 영역입니다.instance-group-name
: 만들려는 그룹의 이름입니다.zone
: 그룹을 만들려는 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.instance-group-name
: 정보를 확인할 그룹의 이름입니다.zone
: 그룹의 영역입니다.instance-group-name
: 정보를 확인할 그룹의 이름입니다.zone
: 그룹의 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.- Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 목록에서 비관리형 인스턴스 그룹을 1개 이상 선택합니다.
- 삭제를 클릭하여 그룹을 삭제합니다. 그룹은 삭제되지만 그룹 내 VM은 삭제되지 않습니다.
instance-group-name
: 삭제할 그룹의 이름입니다.zone
: 그룹의 영역입니다.instance-group-name
: 삭제할 그룹의 이름입니다.zone
: 그룹의 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.- Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 목록의 이름 열에서 VM을 추가할 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성과 이미 그룹에 속해 있는 VM의 목록이 나와 있는 페이지가 열립니다.
- 수정을 클릭하여 이 비관리형 인스턴스 그룹을 수정합니다.
- VM 인스턴스에서 그룹에 추가할 기존 VM을 1개 이상 선택합니다. 기존 VM과 동일한 영역, VPC 네트워크, 서브넷에 있는 VM만 선택할 수 있습니다.
- 저장을 클릭하여 새 VM을 그룹에 추가합니다.
instance-group-name
: VM을 추가할 그룹의 이름입니다.zone
: 그룹의 영역입니다.list-of-VM-names
: 동일한 영역, VPC 네트워크, 서브넷에 있는 VM의 쉼표로 구분된 목록입니다.instance-group-name
: VM을 추가할 그룹의 이름입니다.zone
: 그룹의 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.instance-1-name
및instance-2-name
: 그룹에 추가하려는 동일한 영역, VPC 네트워크, 서브넷에 있는 VM의 이름입니다.- Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 목록의 이름 열에서 보려는 비관리형 인스턴스 그룹의 이름을 클릭합니다. 그룹에 포함된 인스턴스의 목록이 있는 페이지가 나타납니다.
instance-group-name
: 구성원을 나열할 그룹의 이름입니다.zone
: 그룹의 영역입니다.instance-group-name
: 구성원을 나열할 그룹의 이름입니다.zone
: 그룹의 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.- Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 목록의 이름 열에서 VM을 삭제할 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성과 그룹에 포함된 VM의 목록이 나와 있는 페이지가 열립니다.
- 그룹에서 삭제할 VM을 목록에서 1개 이상 선택합니다.
- 그룹에서 삭제를 클릭합니다. 비관리형 인스턴스 그룹에서 삭제한 VM은 중지 또는 삭제되지 않는 한 계속 존재하며 실행됩니다.
instance-group-name
: 제거할 인스턴스가 포함된 그룹의 이름입니다.zone
: 그룹의 영역입니다.list-of-VM-names
: 그룹에서 삭제할 VM의 쉼표로 구분된 목록입니다.instance-group-name
: 제거할 인스턴스가 포함된 그룹의 이름입니다.zone
: 그룹의 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.instance-1-name
및instance-2-name
: 그룹에서 연결을 해제하려는 VM의 이름입니다.- 포트 이름이 동일한 모든 포트 간에 트래픽이 분산됩니다.
- 지정된 백엔드 서비스는 한 번에 이름이 지정된 포트 한 개로만 트래픽을 전달할 수 있습니다.
이름이 지정된 포트에 여러 포트 번호를 사용하는 경우 포트는 모두 동일한 애플리케이션에 대한 것이어야 합니다.
예를 들어
http:80,http:8080
은 유효하지만 포트 80은 일반적으로 TLS를 지원하지 않으므로http:80,http:443
은 작동하지 않습니다.- 이름이 지정된 포트가
http-port:80
인instance-group-a
- 이름이 지정된 포트가
http-port:79
인instance-group-b
- Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 목록의 이름 열에서 이름이 지정된 포트를 지정할 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성이 있는 페이지가 열립니다.
- 수정을 클릭하여 이 비관리형 인스턴스 그룹을 수정합니다.
- 포트 매핑 섹션에서 포트 추가를 클릭하고 포트 이름 및 번호를 입력합니다. 필요에 따라 이름이 지정된 다른 포트를 추가 또는 삭제합니다.
- 저장을 클릭하여 비관리형 인스턴스 그룹의 이름이 지정된 포트 목록을 업데이트합니다.
instance-group-name
: 인스턴스 그룹의 이름입니다.zone
: 그룹의 영역입니다.port-name
및port-number
: 포트 이름과 번호는 선택한 이름과 포트 번호 간의 매핑을 나타냅니다. 여러 매핑을 쉼표로 구분하여 지정할 수 있습니다. 예를 들어port-one:80,port-two:8080
은 이름이 지정된 포트의 유효한 목록입니다.인스턴스 그룹을 설명하고 fingerprint를 기록합니다.
이름이 지정된 포트를 추가하려면 instanceGroups.setNamedPorts 메서드를 사용하여
POST
요청을 보냅니다. 이름이 지정된 모든 포트를 삭제하려면namedPorts
를 비어 있는 목록으로 설정합니다.POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/setNamedPorts { "fingerprint": "fingerprint", "namedPorts": [ { "name": "port-name", "port": port-number }, { "name": "port-name", "port": port-number }, .... ] }
다음을 바꿉니다.
instance-group-name
: 인스턴스 그룹의 이름입니다.zone
: 그룹의 영역입니다.project-id
: 그룹이 포함된 프로젝트의 ID입니다.port-name
및port-number
: 포트 이름과 번호는 선택한 이름과 포트 번호 간의 매핑을 나타냅니다.fingerprint
: 이전 단계의 지문입니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.
비관리형 인스턴스 그룹 작업
그룹 만들기
비관리형 인스턴스 그룹은 관리형 인스턴스 그룹과 달리 공통의 인스턴스 템플릿을 공유하지 않는 개별 VM을 모아둔 것에 불과합니다. 그룹을 만들고 개별 VM을 그룹에 추가하면 됩니다.
콘솔
gcloud
새로운 비관리형 인스턴스 그룹을 만들려면 instance-group unmanaged create 명령어를 사용합니다.
gcloud compute instance-groups unmanaged create instance-group-name \ --zone=zone
다음을 바꿉니다.
REST
REST로 비관리형 인스턴스 그룹을 만들려면 instanceGroups.insert 메서드를 사용하여
POST
요청을 보냅니다.POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups { "name": "instance-group-name" }
다음을 바꿉니다.
Google Cloud CLI 또는 REST를 사용하여 새로운 비관리형 인스턴스 그룹을 만들 때 VM은 그룹에 자동으로 추가되지 않습니다. 수동으로 VM을 비관리형 인스턴스 그룹에 추가하는 것은 가능합니다.
그룹 나열 및 설명
기존 비관리형 인스턴스 그룹의 목록을 가져옵니다.
콘솔
Google Cloud 콘솔의 인스턴스 그룹 페이지에는 기존의 비관리형 인스턴스 그룹과 관리형 인스턴스 그룹이 나열됩니다.
gcloud
Google Cloud CLI를 사용하여 프로젝트의 모든 비관리형 인스턴스 그룹을 나열하려면 instance-group unmanaged list를 사용하세요.
gcloud compute instance-groups unmanaged list
특정 비관리형 인스턴스 그룹에 대한 정보를 확인하려면 instance-group unmanaged describe 명령어를 사용합니다.
gcloud compute instance-groups unmanaged describe instance-group-name \ --zone=zone
다음을 바꿉니다.
REST
REST를 사용하여 인스턴스 그룹을 나열하려면 instanceGroups.list 메서드를 사용하여
GET
요청을 보냅니다.GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups
API를 사용하여 특정 비관리형 인스턴스 그룹에 대한 정보를 가져오려면 instanceGroups.get 메서드를 사용하여
GET
요청을 보냅니다.GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name
다음을 바꿉니다.
그룹 삭제
관리형 인스턴스 그룹과 달리 비관리형 인스턴스 그룹은 삭제해도 그룹 내 VM은 삭제되지 않습니다. 비관리형 인스턴스 그룹을 삭제하면 VM의 논리적 그룹 분류만 삭제됩니다.
Google Cloud 부하 분산기의 백엔드인 인스턴스 그룹을 삭제할 수 없습니다. 먼저 백엔드 서비스에서 백엔드를 삭제해야 합니다.
콘솔
gcloud
비관리형 인스턴스 그룹을 삭제하려면 instance-groups unmanaged delete 명령어를 사용합니다.
gcloud compute instance-groups unmanaged delete instance-group-name \ --zone=zone
다음을 바꿉니다.
REST
REST를 사용하여 비관리형 인스턴스 그룹을 삭제하려면 instanceGroups.delete 메서드를 사용하여
DELETE
요청을 보냅니다.DELETE https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name
다음을 바꿉니다.
그룹 회원
VM 추가
비관리형 인스턴스 그룹을 만든 후에는 VM을 그룹에 추가할 수 있습니다. 그러나 각 VM의 첫 번째 또는 유일한 네트워크 인터페이스(
nic0
)가 동일한 VPC 네트워크에 연결된 경우에만 VM을 그룹화할 수 있습니다. 비관리형 인스턴스 그룹에 추가할 수 있는 최대 VM 수는 2,000개입니다. 그룹에 VM을 2,000개 넘게 추가하려면 지원팀에 문의하세요.콘솔
gcloud
인스턴스를 비관리형 인스턴스 그룹에 추가하려면 instance-groups unmanaged add-instances 명령어를 사용합니다.
gcloud compute instance-groups unmanaged add-instances instance-group-name \ --zone=zone \ --instances=list-of-VM-names
다음을 바꿉니다.
REST
VM을 비관리형 인스턴스 그룹에 추가하려면 instanceGroups.addInstances 메서드를 사용하여
POST
요청을 보냅니다.POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name", "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name", .... } ] }
다음을 바꿉니다.
VM 나열
비관리형 인스턴스 그룹에서 구성원 VM 목록을 검색할 수 있습니다.
콘솔
gcloud
비관리형 인스턴스 그룹의 VM을 나열하려면 instance-group unmanaged list-instances 명령어를 사용합니다.
gcloud compute instance-groups unmanaged list-instances instance-group-name \ --zone=zone
다음을 바꿉니다.
REST
비관리형 인스턴스 그룹의 VM을 나열하려면 instanceGroups.listInstances 메서드를 사용하여
POST
요청을 보냅니다.POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/listInstances
다음을 바꿉니다.
VM 삭제
비관리형 인스턴스 그룹에서 VM을 삭제할 수 있습니다. 인스턴스 그룹에서 VM을 삭제해도 VM 자체는 삭제되지 않습니다.
콘솔
gcloud
비관리형 인스턴스 그룹에서 VM을 삭제하려면 instance-groups unmanaged remove-instances 명령어를 사용합니다.
gcloud compute instance-groups unmanaged remove-instances instance-group-name \ --zone=zone \ --instances=list-of-VM-names
다음을 바꿉니다.
REST
비관리형 인스턴스 그룹에서 VM을 삭제하려면 instanceGroups.removeInstances 메서드를 사용하여
POST
요청을 보냅니다. 다음과 같이 VM 여러 개를 동시에 삭제할 수 있습니다.POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/removeInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name", "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name", .... } ] }
다음을 바꿉니다.
이름이 지정된 포트 작업
이름이 지정된 포트는 포트 이름과 포트 번호를 나타내는 키-값 쌍입니다. 포트 이름은 서비스 또는 애플리케이션의 이름을 나타냅니다. 포트 번호는 서비스 또는 애플리케이션이 실행되는 포트를 나타냅니다.
Cloud Load Balancing에서는 이름이 지정된 포트를 사용합니다. 프록시 역할을 수행하는 부하 분산기는 백엔드 서비스 구성에서 이름이 지정된 단일 포트를 구독합니다. 포트 이름은 각 인스턴스 그룹 백엔드의 이름이 지정된 포트 매핑에 따라 포트 번호로 변환됩니다.
예를 들어 백엔드 서비스가
http-port
라는 포트를 구독할 수 있습니다. 백엔드 인스턴스 그룹에는http-port:80
이라는 포트가 있을 수 있습니다. 백엔드 인스턴스 그룹은 프로토콜(예: TCP)을 사용하여 포트 80에서 그룹의 VM으로 트래픽을 보내도록 부하 분산기에 지시합니다. 프로토콜은 부하 분산기의 백엔드 서비스에서 정의됩니다.이름이 지정된 포트는 프록시 부하 분산기에 사용되는 간단한 메타데이터이며, Compute Engine에서 네트워크 또는 방화벽 리소스를 제어하지 않습니다.
이름이 지정된 포트의 여러 포트 번호
각 서비스 이름에 여러 포트를 할당할 수 있습니다. 각 포트에 여러 서비스 이름을 할당할 수도 있습니다.
다음 사항에 유의하세요.
인스턴스 그룹 하나에 이름이 지정된 포트를 여러 개 할당할 수 있습니다. 예를 들어 이름이 지정된 포트
http-port
를 구독하고 백엔드 인스턴스 그룹이 2개 있는 예시 백엔드 서비스를 살펴보겠습니다.이 백엔드 서비스는
instance-group-a
에서 VM의 트래픽을 포트 80으로 보내고,instance-group-b
에서 VM의 트래픽을 포트 79로 보냅니다.여러 부하 분산기의 경우 여러 백엔드 서비스에 동일한 인스턴스 그룹을 추가하고 인스턴스 그룹이 각 부하 분산기에서 다른 포트를 제공하는 경우 이름이 지정된 단일 포트에 모든 포트 번호를 추가하지 마세요. 대신 고유한 이름이 지정된 포트를 만들어 각 백엔드 서비스가 제공할 포트 집합에 매핑합니다.
예를 들어 각각 자체 부하 분산기가 있는 3개의 애플리케이션이 있다고 가정합니다. 애플리케이션마다 자체 포트 번호(
app1
: 81,app2
: 82,app3
: 83)가 있습니다. 3개의 백엔드 서비스가 모두 공통 인스턴스 그룹을 사용하고 있다고 가정하고 이 인스턴스 그룹에 이름이 지정된 포트를[app1:81, app2:82, app3:83]
으로 할당합니다.이름이 지정된 포트 및 상태 점검
외부 애플리케이션 부하 분산기 또는 내부 애플리케이션 부하 분산기에서 작동하도록 백엔드 서비스에 포트 번호가 여러 개 있는 이름이 지정된 포트의 경우 상태 점검에 특정 포트 번호 대신
--use-serving-port
플래그가 있어야 합니다. Google Cloud Console에서는 이 옵션을 사용할 수 없습니다.--use-serving-port
를 설정하려면 Google Cloud CLI 또는 API를 사용해야 합니다.예를 들어 인스턴스 그룹이 하나인 동일한 백엔드 서비스의 3개의 다른 포트(81, 82, 83)에서 트래픽을 부하 분산하는 애플리케이션이 있다고 가정해 보겠습니다. 이 인스턴스 그룹의 포트를
[app:81, 82, 83]
으로 할당할 수 있습니다. 이 시나리오의 상태 점검에는--use-serving-port
플래그가 있어야 합니다.자세한 내용은 부하 분산 상태 점검 문서를 참조하세요.
이름이 지정된 포트 및 방화벽 규칙
이름이 지정된 포트는 Google Cloud 방화벽 규칙을 만들거나 수정하지 않습니다. 백엔드 VM에 트래픽을 허용하려면 여전히 필요한 방화벽 규칙을 만들어야 합니다.
이름이 지정된 포트 및 백엔드 서비스
인스턴스 그룹 구성 외에 백엔드 서비스도 구성해야 합니다. 예를 들어 이름이
my-service-name
이고 포트8888
인 인스턴스 그룹에 이름이 지정된 포트를 설정했다고 가정해 보겠습니다.gcloud compute instance-groups set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
그런 다음 백엔드 서비스의
--port-name
이my-service-name
으로 설정된 백엔드 서비스 구성의 이름이 지정된 포트를 참조해야 합니다.gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
이름이 지정된 포트 만들기
콘솔
gcloud
비관리형 인스턴스 그룹에 이름이 지정된 포트를 추가하려면
instance-groups unmanaged set-named-ports
명령어를 사용합니다.gcloud compute instance-groups unmanaged set-named-ports instance-group-name \ --zone=zone \ --named-ports=port-name:port-number,...
비관리형 인스턴스 그룹의 이름이 지정된 포트를 나열하려면
instance-groups unmanaged get-named-ports
명령어를 사용합니다.set-named-ports
명령어를 사용하여 이름이 지정된 포트를 하나 이상 설정합니다.gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \ --named-ports PORT_NAME:PORT,PORT_NAME:PORT
예를 들면 다음과 같습니다.
gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \ --named-ports name1:80,name2:8080
각 서비스 이름에 여러 포트를 할당하거나 각 서비스에 여러 이름을 할당하려면 이름이나 포트마다 항목을 2개 이상 만듭니다. 예를 들어 포트
10
,20
,80
이 동일한 애플리케이션에 사용되는 경우 이러한 모든 포트에name1
을 할당할 수 있습니다. 또한 두 개의 이름name2
및name3
를 포트8080
에 할당할 수 있습니다. 마지막으로 다음 예시와 같이 포트9000
을name4
에 할당할 수 있습니다.gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Google Cloud CLI를 사용하여 비관리형 인스턴스 그룹에서 이름이 지정된 모든 포트를 삭제하려면 비어 있는 이름이 지정된 포트 목록과 함께 instance-groups unmanaged set-named-ports를 사용합니다.
gcloud compute instance-groups unmanaged set-named-ports instance-group-name \ --zone=zone \ --named-ports=""
위의 모든 예시에서 다음을 바꿉니다(있는 경우).
REST
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-12-22(UTC)
-