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

자동 확장은 사용자를 대신하여 관리형 인스턴스 그룹(MIG)의 크기를 자동으로 조절해줍니다. 이 문서를 사용하여 MIG를 확장할 때 자동 확장 처리 의사 결정의 일부를 이해합니다.

MIG의 자동 확장 처리를 구성할 때 자동 확장 처리는 그룹을 지속적으로 모니터링하면서 그룹의 recommendedSize를 이전 10분 동안의 최대 부하를 지원하는 데 필요한 인스턴스 수로 설정합니다. 이러한 이전 10분을 안정화 기간이라고 합니다.

자동 확장 처리의 권장 크기에 대한 MIG의 응답은 자동 확장 처리의 mode 구성 방식에 따라 달라집니다.

  • ON. MIG가 해당 targetSize를 권장 크기로 설정하고 그룹이 대상 크기에 맞게 자동으로 확장됩니다.
  • ONLY_UP. MIG의 대상 크기는 늘어난 권장 크기에 대한 응답에서만 늘어날 수 있습니다.
  • OFF. 대상 크기가 권장 크기의 영향을 받지 않습니다. 하지만 권장 크기가 계속 계산됩니다.

자동 확장 처리 구성이 삭제되면 권장 크기가 계산되지 않습니다.

대상 및 실제 사용률 간의 격차

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

예를 들어 사용률 대상을 0.7로 설정했는데 앱이 사용률 대상을 초과한다면 자동 확장 처리는 가상 머신(VM) 인스턴스 1.5개를 추가해 사용률을 0.7에 가깝게 낮출 것입니다. VM 인스턴스 1.5개를 추가할 수 없으므로 자동 확장 처리는 이를 반올림하여 2개의 인스턴스를 추가합니다. 이렇게 하면 평균 CPU 사용량이 0.7 미만으로 줄어들 수 있지만 앱에 이를 지원할 수 있는 충분한 리소스가 있어야 합니다.

마찬가지로 사용량이 0.7에 가까워지면 자동 확장 처리는 VM 인스턴스 1.5개를 제거하는 대신 하나의 인스턴스만 삭제합니다.

더 많은 VM 인스턴스가 있는 대규모 그룹에서 사용률은 더 많은 인스턴스에 분배되며, VM 인스턴스를 추가하거나 제거하면 실제 사용량과 대상 사용량 간의 차이가 줄어듭니다.

크기 축소 시 지연

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

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

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

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

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

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

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

크기 확장 시 지연

초기화 중, 즉 대기 기간 중에 자동 확장 처리가 인스턴스의 사용 데이터를 무시합니다. 대기 기간 값을 인스턴스가 초기화되는 시간보다 훨씬 길게 설정하면 자동 확장 처리가 적합한 사용 데이터를 무시하여, 그룹에 필요한 크기가 낮게 계산될 수 있습니다.

예를 들어 CPU 사용을 기준으로 확장한다고 가정할 때 인스턴스의 CPU 사용은 초기화가 완료된 후에 증가합니다. CPU 사용이 증가하면 확장을 보장할 수 있을 것입니다. 하지만 인스턴스가 여전히 대기 기간 중이면 CPU 사용 증가가 무시되고, 이 때문에 그룹이 확장되지 않습니다.

확장 지연을 방지하기 위해서는 인스턴스 초기화에 걸리는 시간에 가깝게 대기 기간을 설정하세요.

인스턴스 종료 준비

크기가 축소되면 자동 확장 처리는 종료해야 하는 VM 인스턴스 수를 결정하며, 사용률이 낮은 VM 인스턴스를 선택해 인스턴스 그룹에서 종료합니다. 인스턴스가 종료되기 전에 이러한 인스턴스가 기존 연결을 닫거나 앱 또는 앱 서버를 정상적으로 종료, 로그를 업로드하는 등 특정 작업을 수행하도록 할 수 있습니다. 이럴 때는 종료 스크립트를 사용해 인스턴스에 작업 처리를 지시하면 됩니다.

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

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

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

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

사용률 자동 확장 차트 보기

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

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

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

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

    모니터링 탭입니다.

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

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

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

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

자동 확장 차트 스크린샷

상태 메시지 보기

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

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

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

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

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

  2. 다음과 같이 주의 아이콘(!)이 있는 인스턴스 그룹을 찾습니다.

    인스턴스 그룹 페이지의 상태 메시지입니다.

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

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

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

  1. Cloud 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 Monitoring 측정항목을 이용해 자동 확장 중이지만 입력한 측정항목이 존재하지 않거나 필수 라벨이 부족합니다. 표준 측정항목과 커스텀 측정항목에는 서로 다른 라벨이 필요합니다. 자세한 내용은 모니터링 측정항목에 기반한 확장 문서를 참조하세요.
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
사용 가능한 할당량에 대한 정보는 Google Cloud 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.
인스턴스 그룹이 부하 분산되고 있지만 그룹에 들어오는 쿼리가 없습니다. 서비스가 유휴 상태일 수 있으며, 이 경우에는 신경 쓰지 않아도 됩니다. 하지만 잘못된 구성 때문에 이 메시지가 표시될 수도 있습니다. 예를 들면 자동 확장된 인스턴스 그룹이 두 개 이상의 부하 분산기의 대상인 경우로 이는 지원되지 않습니다. 전체 지침 목록은 부하 분산 문서의 제한사항 및 가이드라인을 참조하세요.