최대 인스턴스 정보

기본적으로 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개)를 가질 수 있습니다. 이전 버전의 인스턴스를 종료하는 데 필요한 시간은 인스턴스가 활성 요청 처리를 완료하는 데 필요한 시간에 따라 달라집니다. 이 시간은 적절한 최대 인스턴스 한도를 선택할 때 고려할 추가 요소입니다.