자동 확장 처리 의사 결정 이해

자동 확장은 사용자를 대신하여 관리형 인스턴스 그룹의 크기를 자동으로 조절해줍니다. 이 문서를 이용해 관리형 인스턴스 그룹을 확장할 때 자동 확장 처리에서 결정될 수 있는 사항에 대해 알아보세요.

목표 및 실제 사용률 간의 격차

작은 인스턴스 그룹의 경우 자동 확장 과정에서 인스턴스 그룹의 실제 사용률과 목표 사용률이 상당히 다르게 나타나기도 합니다. 자동 확장 처리는 사용률 데이터를 해석하고 추가 또는 삭제할 인스턴스 수를 결정할 때 언제나 보수적으로 올림 또는 내림을 실시하기 때문입니다. 이 과정은 자동 확장 처리가 추가하는 리소스가 부족하거나 너무 많은 리소스를 삭제하는 일이 없게 합니다.

예를 들어 사용률 목표를 0.7로 설정했는데 애플리케이션이 사용률 목표를 초과한다면 자동 확장 처리는 가상 머신 1.5대를 추가해 사용률을 0.7에 가깝게 낮출 것입니다. 가상 머신 1.5대를 추가할 수는 없으므로 자동 확장 처리는 이를 올림해 가상 머신 2대를 추가합니다. 이렇게 하면 평균 CPU 사용률이 0.7 미만으로 떨어질 수 있지만 애플리케이션에 충분한 리소스가 있어야 합니다.

마찬가지로 가상 머신 1.5대를 삭제해 사용률을 0.7에 가깝게 높이기로 한다면 자동 확장 처리는 가상 머신 1대만 삭제합니다.

더 많은 가상 머신이 있는 대규모 그룹의 경우 사용률은 수많은 인스턴스에 분배되며 가상 머신을 추가 또는 삭제해도 실제 사용률과 목표 사용률 간의 격차는 크게 나타나지 않습니다.

크기 축소 시 지연

자동 확장 처리는 크기 축소를 위해 마지막 10분 동안의 최대 부하를 기준으로 그룹의 권장 목표 크기를 계산합니다. 이러한 마지막 10분을 안정화 기간이라고 합니다.

지난 10분간의 사용량을 관찰하면 자동 확장 처리가 다음 작업을 수행하는 데 도움이 됩니다.

  • 인스턴스 그룹에서 수집한 정보가 안정적인지 확인합니다.
  • 자동 확장 처리가 과도한 속도로 인스턴스를 계속 추가 또는 삭제하지 못하게 합니다.
  • 더 작은 그룹으로도 마지막 10분 동안의 최대 부하를 충분히 지원할 수 있는지 확인하여 인스턴스를 안전하게 삭제합니다.

이러한 10분간의 안정화 기간은 크기 축소 시 발생하는 지연으로 보일 수 있지만 실제로는 자동 확장에 내장되어 있는 기능입니다. 지연 시간은 관리형 인스턴스 그룹에 추가된 새 인스턴스가 종료되기 전에 최소한 10분은 실행되도록 보장하는 역할도 합니다.

그룹 축소 여부를 결정할 때 새 인스턴스의 대기 시간은 무시됩니다.

지연을 유발하는 연결 드레이닝

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

인스턴스 종료 준비

크기가 축소되면 자동 확장 처리는 종료해야 하는 가상 머신 수를 결정하며 사용률이 낮은 가상 머신 인스턴스를 선택해 인스턴스 그룹에서 종료합니다. 인스턴스를 종료하기 전에 인스턴스가 기존 연결 종료, 애플리케이션 또는 애플리케이션 서버의 정상적인 종료, 로그 업로드 등의 작업을 처리 중인지 확인해야 할 수도 있습니다. 이럴 때는 종료 스크립트를 사용해 인스턴스에 작업 처리를 지시하면 됩니다.

종료 스크립트는 종료가 요청된 시점과 인스턴스가 실제로 종료된 시점 간의 짧은 기간 동안 최상의 방식으로 실행됩니다. 이 기간에 Compute Engine은 사용자가 스크립트에 입력한 모든 작업을 처리하기 위해 종료 스크립트를 실행하려고 시도합니다.

이 기능은 관리형 인스턴스 그룹에서 부하 분산을 이용하는 경우에 특히 유용합니다. 인스턴스가 비정상 상태가 되면 부하 분산기가 인스턴스가 비정상 상태임을 인식하는 데 시간이 걸릴 수 있고, 이 경우 부하 분산기는 인스턴스에 새 요청을 계속 전송하게 됩니다. 종료 스크립트를 이용하면 인스턴스는 종료 과정에서 비정상 상태를 보고할 수 있고, 따라서 부하 분산기는 인스턴스로의 트래픽 전송을 중단할 수 있습니다. 자세한 내용은 부하 분산 문서의 비정상 인스턴스 처리를 참조하세요.

종료 스크립트에 대한 자세한 내용은 종료 스크립트를 참조하세요.

인스턴스 종료에 대한 자세한 내용은 인스턴스 중지 또는 삭제에 대한 문서를 참조하세요.

사용률 자동 확장 차트 보기

자동 확장되는 관리형 인스턴스 그룹이 있는 경우 Compute Engine은 특정 시점의 총 사용률과 자동 확장 인스턴스 수를 추적하는 자동 확장 차트를 제공합니다. Google Cloud Platform Console에서 이 차트에 액세스할 수 있습니다.

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

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

  2. 확인할 자동 확장 관리형 인스턴스 그룹의 이름을 클릭합니다. 그룹은 CPU 사용률에 따른 자동 확장을 사용 중이어야 합니다(다른 자동 확장 측정항목은 아직 지원되지 않음).
  3. 관리형 인스턴스 그룹 세부정보 페이지에서 모니터링 탭이 선택되어 있지 않다면 선택합니다.

    모니터링 탭 스크린샷

  4. 드롭다운 메뉴에서 자동 확장된 크기가 선택되어 있는지 확인합니다.

차트는 CPU 사용에 따른 인스턴스 수를 추적합니다. 이 차트를 이해하려면 다음 정보를 참조하세요.

  • 위쪽 그래프의 파란색 선은 관리형 인스턴스 그룹의 인스턴스 수를 나타냅니다.
  • 아래쪽 차트의 파란색 선은 그룹의 총 CPU 사용률을 보여줍니다.
  • 아래쪽 차트의 녹색 선은 관리형 인스턴스 그룹의 잔여 가용 용량을 보여줍니다.
    • 녹색 선이 파란색 선 위에 있다면 가용 용량이 많은 것이며 VM 인스턴스의 활용률이 낮을 확률이 높습니다.
    • 녹색 선이 파란색 선 아래에 있다면 남은 용량이 거의 없어 인스턴스 그룹에 인스턴스를 추가해야 한다는 의미입니다.
  • 용량이 줄어들면 인스턴스 그룹 크기가 감소했을 확률이 높으며 따라서 위쪽 그래프의 파란색 선도 하향하게 됩니다. 마찬가지로 용량이 늘어나면 인스턴스 그룹 크기도 증가했을 확률이 높습니다.

예를 들어 다음 그래프에서는 자동 확장되는 관리형 인스턴스 그룹이 용량 한계에 도달할 때마다 자동 확장 처리를 통해 그룹에 VM 인스턴스를 추가함으로써 그룹 용량을 늘리는 상황을 보여줍니다.

자동 확장 차트 스크린샷

상태 메시지 보기

확장 관련 문제가 발생하면 자동 확장 처리는 경고나 오류 메시지를 반환합니다. 이러한 상태 메시지는 두 가지 방법 중 하나로 확인할 수 있습니다.

인스턴스 그룹 페이지에서 상태 메시지 확인

Google Cloud Platform Console의 인스턴스 그룹 페이지에서 상태 메시지를 바로 확인할 수 있습니다.

  1. Google Cloud Platform Console의 인스턴스 그룹 페이지로 이동합니다.

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

  2. 주의 아이콘인 !가 있는 인스턴스 그룹을 찾습니다. 예를 들면 다음과 같습니다.

    인스턴스 그룹 페이지의 상태 메시지 스크린샷

  3. 상태 아이콘으로 마우스를 가져가면 상태 메시지 세부정보를 확인할 수 있습니다.

인스턴스 그룹 세부정보 페이지에서 상태 메시지 확인

특정 인스턴스 그룹의 세부정보 페이지로 바로 이동해 관련 상태 메시지를 확인할 수도 있습니다.

  1. Google Cloud Platform Console의 인스턴스 그룹 페이지로 이동합니다.

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

  2. 상태 메시지를 확인할 인스턴스 그룹을 클릭합니다.
  3. 세부정보 페이지의 구성원 탭에서 상태 메시지를 확인합니다. 예를 들면 다음과 같습니다.

    인스턴스 그룹 세부정보 페이지의 상태 메시지 스크린샷

자주 반환되는 상태 메시지

확장 관련 문제가 발생하면 자동 확장 처리는 경고나 오류 메시지를 반환합니다. 다음은 자주 반환되는 메시지와 메시지의 의미입니다.

All instances in the instance group are unhealthy (not in RUNNING state). If this is an error, check the instances.
인스턴스 그룹의 모든 인스턴스가 RUNNING 이외의 상태에 있습니다. 의도적으로 이렇게 설정했다면 이 메시지를 무시해도 됩니다. 의도적인 설정이 아니라면 인스턴스 그룹 문제를 해결해야 합니다.
The number of instances has reached the maxNumReplicas. The autoscaler cannot add more instances.
자동 확장 처리를 만들 때 인스턴스 그룹이 보유할 수 있는 최대 인스턴스 수를 지정했습니다. 자동 확장 처리가 요구 사항을 충족하기 위해 인스턴스 그룹 크기 조절을 시도하고 있지만 maxNumReplicas에 도달했습니다. maxNumReplicas를 더 큰 값으로 업데이트하는 방법은 자동 확장 처리 업데이트를 참조하세요.
The monitoring metric that was specified does not exist or does not have the required labels. Check the metric.
Stackdriver 측정항목을 이용해 자동 확장 중이지만 입력한 측정항목이 존재하지 않거나 필수 라벨이 부족합니다. 표준 측정항목과 커스텀 측정항목에는 서로 다른 라벨이 필요합니다. 자세한 내용은 Stackdriver Monitoring 측정항목에 따른 확장 문서를 참조하세요.
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
사용 가능한 할당량에 대한 정보는 Google Cloud Platform Console의 할당량 페이지에서 확인할 수 있습니다.
Autoscaling does not work with an HTTP/S load balancer configured for maxRate.
인스턴스 그룹이 maxRate 구성을 이용해 부하 분산되고 있지만 자동 확장 처리가 이 모드를 지원하지 않습니다. 구성을 변경하거나 자동 확장을 중지해야 합니다. maxRate에 관한 자세한 내용은 부하 분산 문서의 제한사항 및 가이드라인을 참조하세요.
The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any queries from the load balancer. Check that the load balancing configuration is working.
인스턴스 그룹이 부하 분산되고 있지만 그룹에 들어오는 쿼리가 없습니다. 서비스가 유휴 상태일 수 있으며, 이 경우에는 신경 쓰지 않아도 됩니다. 하지만 잘못된 구성때문에 이 메시지가 표시될 수도 있습니다(현재는 지원되지 않는 기능인, 자동 확장된 인스턴스 그룹이 하나 이상의 부하 분산기의 대상인 경우 등). 전체 지침 목록은 부하 분산 문서의 제한사항 및 가이드라인을 참조하세요.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

Compute Engine 문서