동시 실행

Cloud Functions(2세대)는 단일 함수 인스턴스에서 동시 요청 여러 개를 처리할 수 있습니다. 이는 이미 준비된 인스턴스가 동시에 요청 여러 개를 처리하여 전체 지연 시간이 단축될 수 있으므로 콜드 스타트를 방지하는 데 유용합니다.

동시 실행이 사용 설정되면 Cloud Functions(2세대)는 동일한 함수 인스턴스에서 처리하는 동시 요청 간에 격리를 제공하지 않습니다. 이러한 경우 함수 코드를 동시에 안전하게 실행할 수 있는지 확인해야 합니다. 특정 언어 런타임에서는 다음 사항을 고려합니다.

  • Node.js는 기본적으로 단일 스레드로 구성됩니다. 동시 실행을 활용하려면 Node.js에서 일반적으로 사용되는 자바스크립트의 비동기 코드 스타일을 사용합니다. 자세한 내용은 공식 Node.js 문서의 비동기 흐름 제어를 참조하세요.

  • 8과 같은 낮은 동시 실행으로 시작한 다음 위로 이동하는 것이 좋습니다. 동시 실행이 너무 높으면 리소스 제약조건(예: 메모리 또는 CPU)으로 인해 의도하지 않은 동작이 발생할 수 있습니다.

기본적으로 함수 인스턴스는 한 번에 요청 하나만 처리합니다. 다음 섹션과 같이 동시 실행 값을 설정하여 함수별로 이 동작을 변경할 수 있습니다.

동시 실행 값 설정

기본 동시 실행 값은 1입니다. 함수의 동시 실행 값을 설정하여 기본값을 재정의할 수 있습니다. 동시 실행 값은 함수의 단일 인스턴스에서 처리할 수 있는 최대 동시 요청 수를 나타냅니다.

동시 실행 값이 1보다 크면 단일 인스턴스에서 함수 코드가 동시에 실행됩니다. 최대 동시 실행 값은 1,000이지만 낮은 값에서 시작하여 올리는 것이 좋습니다. 동시 실행 값을 1보다 크게 설정하려면 함수에 vCPU가 1개 이상 있어야 합니다. 기본 메모리와 vCPU 값은 메모리 한도를 참조하세요.

다음 방법 중 하나로 함수의 동시 실행을 설정할 수 있습니다.

Cloud Functions를 사용하여 동시 실행 설정

gcloud

--concurrency 플래그가 있는 2세대 함수를 배포하여 gcloud CLI를 사용하여 동시 실행 값을 설정할 수 있습니다.

gcloud functions deploy YOUR_FUNCTION_NAME \
--gen2 \
--concurrency=CONCURRENCY_VALUE \
FLAGS...

여기서 CONCURRENCY_VALUE는 컨테이너 인스턴스당 허용되는 최대 동시 요청 수입니다. 서버 기본값을 수신하려면 동시 실행을 지정하지 않습니다.

콘솔

Google Cloud 콘솔을 사용하여 동시 실행 값을 설정하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Cloud Functions 개요 페이지로 이동합니다.
  2. 함수 이름을 클릭하여 해당 함수 세부정보 페이지로 이동합니다.
  3. 수정을 클릭합니다.
  4. 페이지 끝에서 런타임, 빌드... 섹션을 확장하고 런타임 탭을 클릭합니다.
  5. 동시 실행에서 인스턴스당 최대 동시 요청 수 라벨이 지정된 필드에 동시 실행 값을 입력합니다.
  6. 다음을 클릭합니다.
  7. 배포를 클릭합니다.

    변경사항을 적용하기 위해 필요한 단계입니다.

Cloud Run을 사용하여 동시 실행 설정

gcloud

gcloud CLI를 사용하여 동시 실행 값을 설정하려면 기본 Cloud Run 서비스를 업데이트하고 --concurrency 플래그를 지정하세요.

gcloud run services update YOUR_FUNCTION_NAME --concurrency CONCURRENCY_VALUE

여기서 CONCURRENCY_VALUE는 컨테이너 인스턴스당 허용되는 최대 동시 요청 수입니다. 서버 기본값을 수신하려면 동시 실행을 지정하지 않습니다.

콘솔

Google Cloud 콘솔을 사용하여 동시 실행 값을 설정하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Cloud Functions 개요 페이지로 이동합니다.
  2. 함수 이름을 클릭하여 해당 함수 세부정보 페이지로 이동합니다.
  3. Cloud Run 제공 라벨 창에서 함수 이름을 클릭하여 기본 Cloud Run 서비스의 서비스 세부정보 페이지로 이동합니다.
  4. 페이지 상단에 있는 새 버전 수정 및 배포를 클릭합니다.
  5. 컨테이너 탭을 엽니다.
  6. 인스턴스당 최대 동시 요청 수 라벨이 지정된 필드에 동시 실행 값을 입력합니다.

    인스턴스당 최대 동시 요청 수에 입력한 값이 1보다 크면 페이지를 아래로 스크롤하고 컨테이너 섹션을 엽니다. CPU 필드에 1 이상의 값이 있는지 확인합니다.

  7. 배포를 클릭합니다.

    변경사항을 적용하기 위해 필요한 단계입니다.

2세대 Cloud Functions는 Cloud Run에서 제공하는 동시 실행 지원을 기반으로 합니다. 자세한 내용은 Cloud Run 문서의 인스턴스(서비스)당 최대 동시 요청 수를 참조하세요.