최대 인스턴스 정보

기본적으로 Cloud Run 서비스에는 인스턴스가 최대 100개까지 있습니다. 이 숫자를 리전에서 허용하는 최댓값까지 늘릴 수 있습니다. 각 리전의 최대 한도는 Cloud Run 서비스의 CPU 및 메모리 구성의 영향을 받습니다. 구체적으로 서비스에 사용할 수 있는 최대 인스턴스 수는 다음 중 최솟값입니다.

  • 리전 할당량 기준을 요청된 CPU 1개의 배수로 나눈 값
  • 리전 할당량 기준을 요청된 2GB 메모리 배수로 나눈 값

예를 들어, 기준 할당량이 인스턴스 1,000개인데 4GB 메모리 또는 CPU 2개가 있으면 유효 한도 500개가 적용됩니다.

콘솔의 할당량 페이지에서 리전의 리전별 기준 할당량을 확인할 수 있습니다.

기준 리전 할당량을 상향 조정하는 방법

Cloud Run 서비스가 배포된 리전에서 최대 인스턴스 수를 높여야 하는 경우 할당량 상향 조정을 요청하면 됩니다.

최대 인스턴스 설정 권장사항

다음 섹션에서는 서비스의 최대 인스턴스 한도 구성에 대한 권장사항을 설명합니다.

이벤트 기반 서비스에 최적화된 최대 인스턴스 값

함수와 같은 이벤트 기반 서비스에서는 수신되는 이벤트에 따라 트래픽이 산발적으로 급증할 수 있습니다. 이러한 서비스에 최적화된 최대 인스턴스 값을 결정하려면 서비스 호출 시간, 예상 평균 호출, 최대 호출 빈도, 호출 실패에 대한 내결함성과 같은 요소를 고려해야 합니다.

일반적으로 최대 인스턴스 값 3으로 시작하여 호출 실패를 모니터링하고 필요에 따라 최대 인스턴스 값을 증가시키는 것이 좋습니다.

모든 인스턴스가 사용 중인 경우의 요청 처리

일반적인 상황에서는 수신 트래픽 로드가 처리되도록 새 인스턴스를 만들어 서비스를 수직 확장합니다. 하지만 최대 인스턴스 한도가 설정되어 있으면 수신 트래픽 로드를 처리하기에 인스턴스가 부족한 경우가 발생할 수 있습니다.

이 시나리오에서 Cloud Run은 새 인바운드 요청을 최대 30초 동안 제공하려고 시도합니다.

  • 인스턴스가 이 기간에 요청 처리를 완료하면 새 인바운드 요청을 처리하기 시작할 수 있습니다.
  • 사용 가능한 인스턴스가 없으면 요청이 실패합니다.

Cloud Run은 용량을 사용할 수 있을 때까지 이벤트 기반 서비스로 지정된 이벤트를 자동으로 저장합니다.

Cloud Run의 확장 기능을 초과하는 최대 인스턴스 한도

최대 인스턴스 한도를 지정할 때 상한을 지정합니다. 한도를 크게 설정한다고 해서 서비스가 지정한 인스턴스 수로 수직 확장되는 것이 아니며, 특정 시점에 공존할 수 있는 인스턴스의 수가 한도를 초과하지 않아야 함을 의미합니다.

또한 최대 인스턴스 한도를 설정하면 Cloud Run에서 트래픽 수요를 충족하는 데 사용하는 확장 전략이 영향을 받을 수 있습니다. 일반적으로 Cloud Run은 수직 확장하거나 잠재적으로 한도를 초과하지 않고 지정된 한도를 우선적으로 준수합니다.

트래픽 급증 처리

트래픽 급증과 같이 경우에 따라 Cloud Run에서 잠시 동안 지정된 최대 인스턴스 한도보다 더 많은 인스턴스를 만들 수 있습니다. 서비스에서 이 일시적인 동작을 감당할 수 없으면 안전성이 보장되는 요소를 고려하여 최대 인스턴스를 서비스에서 감당할 수 있는 값보다 낮게 설정해야 할 수 있습니다.

배포

새 버전을 배포하면 Cloud Run이 이전 버전에서 새 버전으로 트래픽을 마이그레이션합니다. 버전마다 최대 인스턴스 한도가 개별적으로 설정되므로 배포 후 일정 기간 동안에 지정된 한도를 일시적으로 초과할 수도 있습니다.

예를 들어 서비스의 최대 인스턴스 한도가 5인 경우 일반적인 상황에서는 서비스가 요청을 처리할 때 인스턴스를 최대 5개까지 수직 확장합니다. 새 버전을 배포할 때 새 버전의 자체 최대 인스턴스 한도는 5입니다.

이전 버전에서 이미 처리한 요청은 새 버전을 배포할 때 중단되지 않습니다. 대신 이러한 요청은 계속 진행되며 새 인바운드 요청은 새로 배포된 서비스 버전에서 처리됩니다.

따라서 앞선 예시의 서비스에는 새 버전을 배포한 이후 기간 일정 동안 인스턴스가 최대 10개까지(버전마다 5개) 있을 수 있습니다. 이전 버전의 인스턴스를 종료하는 데 필요한 시간은 인스턴스가 활성 요청 처리를 완료하는 데 필요한 시간에 따라 달라집니다. 이 시간은 적절한 최대 인스턴스 한도를 선택할 때 고려할 추가 요소입니다.