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

비관리형 인스턴스 그룹은 동일하지 않거나 공통의 인스턴스 템플릿을 공유하지 않는 인스턴스의 모음을 의미합니다. 비관리형 인스턴스 그룹을 사용하여 부하 분산 작업에 기존 구성을 적용시킬 수 있습니다. 하지만 애플리케이션의 특성상 동일하지 않은 인스턴스를 함께 그룹으로 묶어야 하는 경우를 제외하면 항상 관리형 인스턴스 그룹을 사용해야 합니다.

인스턴스 그룹에 대한 자세한 내용은 인스턴스 그룹 개요를 참조하세요.

시작하기 전에

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

비관리형 인스턴스 그룹은 관리형 인스턴스 그룹과 달리, 공통의 인스턴스 템플릿을 공유하지 않는 고유한 인스턴스를 모아 둔 상태에 불과합니다. 비관리형 그룹에서는 그룹 내에서 인스턴스를 만들거나 삭제하거나 인스턴스 수를 확장하지 않습니다. 다만, 그룹을 만들고 나중에 이 그룹에 개별 인스턴스를 추가할 수 있습니다.

콘솔

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 인스턴스 그룹 만들기를 클릭합니다.
  3. 비관리형 인스턴스 그룹의 이름을 입력합니다.
  4. 위치에서 단일 영역을 선택합니다.
  5. 영역에서 그룹을 배치할 영역을 선택합니다.
  6. 그룹 유형에서 비관리형 인스턴스 그룹을 선택합니다.
  7. 이 그룹의 네트워크를 선택합니다.
  8. VM 인스턴스에서 이 그룹에 추가할 인스턴스를 선택합니다.
  9. 만들기를 클릭하여 새 그룹을 만듭니다.

gcloud

gcloud 도구로 비관리형 인스턴스 그룹을 새로 만들려면 instance-groups unmanaged create 명령어를 사용합니다.

gcloud compute instance-groups unmanaged create [INSTANCE_GROUP]

API

API에서 instanceGroups 서비스로 보내는 POST 요청을 작성합니다. 요청 본문에 그룹 이름을 포함합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups

{
 "name": "[INSTANCE_GROUP]"
}

비관리형 인스턴스 그룹을 처음 만들면 해당 그룹은 비어 있는 상태입니다. 그룹을 만든 후에 그룹에 특정 인스턴스를 추가할 수 있습니다.

비관리형 인스턴스 그룹에 인스턴스 추가하기

비관리형 인스턴스 그룹을 만든 후에 기존 인스턴스를 그룹에 추가할 수 있습니다.

다음 사항을 참고하세요.

  • 하나의 인스턴스는 하나의 부하 분산된 인스턴스 그룹에만 속할 수 있습니다. 하나의 인스턴스를 하나의 부하 분산된 인스턴스 그룹에 추가하거나 부하 분산되지 않은 여러 개의 인스턴스 그룹에 추가할 수도 있습니다.

  • 인스턴스 그룹이 부하 분산되는 경우 모든 인스턴스는 동일한 VPC 네트워크 또는 서브넷에 속해야 합니다.

Console

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 목록의 이름 열에서 인스턴스를 추가할 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성과 기존에 그룹에 포함되어 있었던 인스턴스의 목록이 표시된 페이지가 열립니다.
  3. 그룹 수정을 클릭하여 이 비관리형 인스턴스 그룹을 수정합니다.
  4. VM 인스턴스에서 그룹에 추가할 기존 인스턴스를 하나 이상 선택합니다. 그룹과 동일한 영역에 속한 인스턴스만 선택할 수 있습니다.
  5. 저장을 클릭하여 변경사항을 저장합니다. 선택한 인스턴스가 비관리형 인스턴스 그룹에 추가됩니다.

gcloud

gcloud instance-groups unmanaged에 포함되어 있는 add-instances 하위 명령어를 사용합니다.

gcloud compute instance-groups unmanaged add-instances [INSTANCE_GROUP] \
  --instances [INSTANCE_NAME],[ANOTHER_INSTANCE_NAME]

API

instanceGroups 서비스로 보내는 요청을 작성합니다. 이때 인스턴스를 추가할 비관리형 인스턴스 그룹의 이름을 사용합니다. 그룹에 추가할 인스턴스 1개 이상의 URL을 지정합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/addInstances

{
 "instances": [
  {
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
  }
 ]
}

프로젝트 내의 비관리형 인스턴스 그룹 나열

기존 비관리형 인스턴스 그룹의 목록을 가져옵니다.

콘솔

GCP 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

인스턴스 그룹 페이지로 이동

기존 인스턴스 그룹이 있으면 페이지에 나열됩니다. 관리형 인스턴스 그룹도 이 페이지에 나열됩니다.

gcloud

list 명령어를 사용하면 비관리형 인스턴스 그룹이 성공적으로 만들어졌는지 확인할 수 있습니다.

gcloud compute instance-groups unmanaged list [INSTANCE_GROUP]

특정 그룹에 대한 정보를 가져오려면 다음과 같이 입력합니다.

gcloud compute instance-groups unmanaged describe [INSTANCE_GROUP]

API

프로젝트 내의 인스턴스 그룹을 모두 나열합니다. instanceGroups 서비스로 보내는 GET 요청을 작성합니다.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups

특정 그룹에 대한 정보를 가져옵니다. instanceGroups 서비스로 보내는 GET 요청을 작성하고 특정 비관리형 인스턴스 그룹의 이름을 포함합니다.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]

비관리형 인스턴스 그룹 내의 인스턴스 나열

비관리형 인스턴스 그룹에 포함된 인스턴스의 목록을 검색합니다.

콘솔

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 목록의 이름 열에서 확인할 인스턴스를 포함하는 비관리형 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성과 그룹에 포함된 인스턴스의 목록이 표시된 페이지가 열립니다.

gcloud

비관리형 인스턴스 그룹 내의 인스턴스를 나열하려면 gcloud compute instance-groups unmanagedinstances 명령어 그룹 내에 포함된 list-instances 하위 명령어를 사용합니다.

gcloud compute instance-groups unmanaged list-instances [INSTANCE_GROUP]

API

instanceGroups 서비스로 보내는 요청을 작성합니다. 이때 나열할 인스턴스를 포함하는 비관리형 인스턴스 그룹의 이름을 사용합니다. 원하는 경우 요청 본문에 필터를 포함할 수 있습니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/listInstances

그룹에서 인스턴스 제거

인스턴스를 삭제하지 않고 그룹에서 분리합니다.

그룹이 연결 드레이닝을 사용하도록 설정한 백엔드 서비스의 일부일 경우 연결 드레이닝 기간 경과 후 VM 인스턴스가 제거 또는 삭제될 때까지 최대 60초가 걸릴 수 있습니다.

콘솔

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 목록의 이름 열에서 제거할 인스턴스가 속한 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성과 그룹에 포함된 인스턴스의 목록이 표시된 페이지가 열립니다.
  3. 인스턴스 목록의 그룹에서 제거할 인스턴스를 하나 이상 선택합니다.
  4. 그룹에서 제거를 클릭합니다. 선택한 인스턴스는 그룹에 더 이상 속하지 않지만 그룹 밖에서 계속 실행됩니다.

gcloud

비관리형 인스턴스 그룹에서 인스턴스를 제거하려면 gcloud compute instance-groups unmanaged 내에 포함된 remove 하위 명령어를 사용합니다.

gcloud compute instance-groups unmanaged remove-instances [INSTANCE_GROUP] \
  --instances [INSTANCE_NAME],[ANOTHER_INSTANCE_NAME],[INSTANCES ...]

API

instanceGroups 서비스로 보내는 요청을 작성합니다. 이때 제거할 인스턴스를 포함하는 비관리형 인스턴스 그룹의 이름을 사용합니다. 그룹에서 제거할 인스턴스 1개 이상의 URL을 지정합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/removeInstances

{
 "instances": [
  {
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[ANOTHER_INSTANCE_NAME]"
  }
 ]
}

백엔드 서비스에 비관리형 인스턴스 그룹 추가

HTTP(S), SSL 프록시, TCP 프록시 또는 내부 부하 분산기를 만들려면 백엔드 서비스가 필요합니다. 백엔드 서비스에는 여러 백엔드가 포함될 수 있습니다. 인스턴스 그룹은 백엔드의 유형입니다. 인스턴스 그룹의 인스턴스는 부하 분산기의 트래픽에 응답합니다. 그러면 백엔드 서비스에는 사용할 수 있는 인스턴스, 처리할 수 있는 트래픽의 양, 현재 처리 중인 트래픽의 양이 인식됩니다. 또한 백엔드 서비스는 상태 확인을 모니터링하고 비정상 인스턴스에 새 연결을 전송하지 않습니다.

백엔드 서비스에 인스턴스 그룹을 추가하는 방법은 백엔드 서비스에 인스턴스 그룹 추가를 참조하세요.

비관리형 인스턴스 그룹에 이름이 지정된 포트 할당

이름이 지정된 포트는 서비스가 실행되는 포트 번호와 서비스 이름을 나타내는 키:값 쌍입니다. 부하 분산 서비스에서는 이름이 지정된 포트를 사용하여 개별 인스턴스의 특정 포트로 트래픽을 보냅니다. 예를 들어 이름이 지정된 포트를 http:80으로 설정한 후 이름이 http인 포트로 트래픽을 보내도록 백엔드 서비스를 구성하면 부하 분산은 인스턴스 그룹에 속한 개별 인스턴스의 포트 80으로 트래픽을 전달합니다.

이름이 지정된 포트는 부하 분산에 사용되는 간단한 메타데이터이며 Compute Engine에서 네트워크 또는 방화벽 리소스를 제어하지 않습니다.

각 서비스 이름에 여러 포트를 할당하거나 각 포트에 여러 서비스 이름을 할당할 수 있지만, 지정된 백엔드 서비스는 한 번에 이름이 지정된 포트 하나로만 트래픽을 전달할 수 있습니다.

콘솔

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 목록의 이름 열에서 이름이 지정된 포트를 지정할 인스턴스 그룹의 이름을 클릭합니다. 인스턴스 그룹 속성이 있는 페이지가 열립니다.
  3. 그룹 수정을 클릭하여 이 비관리형 인스턴스 그룹을 수정합니다.
  4. 포트 이름 매핑 지정을 클릭하여 이름이 지정된 포트 옵션을 확장합니다.
  5. 항목 추가를 클릭하고 원하는 포트 이름과 이 이름에 연결할 포트 번호를 입력합니다. 필요하면 항목 추가를 다시 클릭하여 항목을 더 추가합니다.
  6. 저장을 클릭하여 변경사항을 저장하고 비관리형 인스턴스 그룹의 인스턴스에 이름이 지정된 포트를 적용합니다.

gcloud

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개 이상 만듭니다. 예를 들어 name1을 포트 10, 20, 80에 할당한 다음 name2name3을 모두 포트 80에 할당합니다. 마지막으로 포트 9000name4에 할당합니다.

gcloud compute instance-groups unmanaged set-named-ports [INSTANCE_GROUP] \
  --named-ports name1:10,name1:20,name1:80,\
                name2:8080,name3:8080,\
                name4:9000

get-named-ports 명령어를 사용하여 비관리형 인스턴스 그룹에 해당하는, 이름이 지정된 포트 할당을 확인합니다.

gcloud compute instance-groups unmanaged get-named-ports [INSTANCE_GROUP]
NAME  PORT
name1 10
name1 20
name1 80
name2 8080
name3 8080
name4 9000

API

instanceGroups 서비스로 보내는 요청을 작성하고 특정 비관리형 인스턴스 그룹의 이름을 포함합니다. 특정 그룹에 대한 정보를 가져와 비관리형 인스턴스 그룹의 현재 fingerprint 값을 구합니다. 요청 본문에 fingerprint를 포함하고 namedPorts 값 쌍을 하나 이상 포함합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  },
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  }
 ]
}

예를 들면 다음과 같습니다.

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 80
  },
  {
   "name": "name2",
   "port": 8080
  }
 ]
}

각 서비스 이름에 여러 포트를 할당하려면 해당 서비스 이름에 대해 여러 항목을 만듭니다. 예를 들어 포트 10, 20, 80name1에 할당하고 포트 8080name2에 할당할 수 있습니다.

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 10
  },
  {
   "name": "name1",
   "port": 20
  }
  {
   "name": "name1",
   "port": 80
  }
  {
   "name": "name2",
   "port": 8080
  }
  {
   "name": "name3",
   "port": 80
  }
  {
   "name": "name4",
   "port": 8080
  }
 ]
}

비관리형 인스턴스 그룹에 이미 할당된, 이름이 지정된 포트를 나열하려면 이 그룹을 가리키는 GET 요청을 작성합니다.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]

비관리형 인스턴스 그룹 삭제

관리형 인스턴스 그룹의 경우와 달리, 비관리형 인스턴스 그룹을 삭제해도 그룹 내의 인스턴스는 삭제되지 않습니다. 비관리형 인스턴스 그룹을 삭제하면 인스턴스의 논리적 그룹이 해제되기만 합니다.

gcloud compute 도구 또는 API를 사용하여 비관리형 인스턴스 그룹을 삭제합니다.

Console

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 목록에서 삭제할 그룹을 하나 이상 선택합니다.
  3. 삭제를 클릭하여 그룹을 삭제합니다. 그룹 내의 인스턴스는 삭제되지 않습니다.

gcloud

비관리형 인스턴스 그룹을 삭제하려면 delete 명령어를 사용합니다.

gcloud compute instance-groups unmanaged delete [INSTANCE_GROUP]

API

instanceGroups 서비스로 보내는 DELETE 요청을 작성하고 삭제할 특정 비관리형 인스턴스 그룹의 이름을 포함합니다.

DELETE https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]

다음 과정

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

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

Compute Engine 문서