부하 분산기에 인스턴스 그룹 추가

GCP(Google Cloud Platform) 부하 분산에서는 관리형과 비관리형 인스턴스 그룹을 사용하여 트래픽을 처리합니다. 사용 중인 부하 분산기 유형에 따라 인스턴스 그룹을 대상 풀이나 백엔드 서비스에 추가할 수 있습니다. 부하 분산에 대한 자세한 내용은 부하 분산기 선택을 참조하세요.

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

시작하기 전에

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

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

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

대상 풀에 관리형 인스턴스 그룹 추가

대상 풀은 가상 머신 인스턴스를 하나 이상 포함하는 객체입니다. 대상 풀은 네트워크 부하 분산기가 사용자 요청을 연결된 대상 풀에 전달하는 네트워크 부하 분산에 사용됩니다. 해당 대상 풀에 속하는 인스턴스가 이러한 요청을 처리하고 응답을 반환합니다. 인스턴스 그룹에서 인스턴스가 추가되거나 삭제될 때 대상 풀이 변경사항으로 자동 업데이트되도록 관리형 인스턴스 그룹을 대상 풀에 추가할 수 있습니다.

대상 풀이 있어야 대상 풀에 관리형 인스턴스 그룹을 추가할 수 있습니다. 자세한 내용은 대상 풀 추가에 대한 설명서를 참조하세요.

대상 풀에 기존 관리형 인스턴스 그룹을 추가하려면 다음 안내를 따르세요. 그러면 관리형 인스턴스 그룹에 속하는 모든 VM 인스턴스가 대상 풀에 추가됩니다.

Console

  1. GCP Console에서 대상 풀 페이지로 이동합니다.

    대상 풀 페이지로 이동

  2. 인스턴스 그룹을 추가할 대상 풀을 클릭합니다.
  3. 수정 버튼을 클릭합니다.
  4. VM 인스턴스 섹션까지 아래로 스크롤하고 인스턴스 그룹 선택을 클릭합니다.
  5. 드롭다운 메뉴에서 인스턴스 그룹을 선택합니다.
  6. 변경사항을 저장합니다.

gcloud

gcloud 명령줄 도구에서 set-target-pools 명령어를 사용합니다.

gcloud compute instance-groups managed set-target-pools [INSTANCE_GROUP] \
        --target-pools [TARGET_POOL,..] [--zone ZONE]

각 항목의 의미는 다음과 같습니다.

  • [INSTANCE_GROUP]은 인스턴스 그룹의 이름입니다.
  • [TARGET_POOL]은 이 인스턴스 그룹을 추가할 하나 이상의 대상 풀 이름입니다.
  • [ZONE]은 인스턴스 그룹의 영역입니다.

API

API에서 다음 URI에 POST를 요청합니다.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/setTargetPools

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 이 요청의 프로젝트 ID입니다.
  • [ZONE]은 인스턴스 그룹의 영역입니다.
  • [INSTANCE_GROUP]은 인스턴스 그룹의 이름입니다.

이 그룹을 추가할 대상 풀에 대한 URI 목록이 요청 본문에 포함되어야 합니다. 예를 들면 다음과 같습니다.

{
  "targetPools": [
    "regions/us-central1/targetPools/example-targetpool-1",
    "regions/us-central1/targetPools/example-targetpool-2"
  ]
}

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

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

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

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

Console

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

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

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

gcloud

set-named-ports 명령어를 사용하여 이름이 지정된 포트를 하나 이상 설정합니다.

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports [PORT_NAME]:[PORT],[PORT_NAME]:[PORT]

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

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports name1:80,name2:8080

각 서비스 이름에 여러 포트를 할당하거나 각 서비스에 여러 이름을 할당하려면 이름이나 포트마다 항목을 두 개 이상 만듭니다. 예를 들어 name1을 포트 10, 20, 80에 할당합니다. 그런 다음 포트 80name2name3을 모두 할당합니다. 마지막으로 포트 9000name4에 할당합니다.

gcloud compute instance-groups managed 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 managed get-named-ports [INSTANCE_GROUP]
NAME  PORT
name1 10
name1 20
name1 80
name2 8080
name3 8080
name4 9000

API

instanceGroupManagers APIsetNamedPorts API 메서드를 제공하지 않습니다. 대신 instanceGroups API를 사용하여 이 작업을 수행합니다.

instanceGroups API에 대한 요청을 작성한 후 인스턴스 그룹의 이름을 포함합니다. 특정 그룹에 대한 정보를 가져와 인스턴스 그룹의 현재 fingerprint 값을 가져옵니다. 요청 본문에 하나 이상의 namedPorts 값 쌍과 fingerprint를 포함합니다.

POST https://compute.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://compute.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
  }
 ]
}

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

POST https://compute.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://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]

다음 단계

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

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

Compute Engine 문서