이 가이드에서는 함수를 배포하기 위한 최신 옵션과 기존 Google Cloud 옵션을 비교합니다. 이 페이지는 이전에 Cloud Functions API로 함수를 만들고 Cloud Run Admin API로 전환하는 사용자에게 도움이 됩니다. 이 페이지에서는 개념, 구성, 배포, 트리거 및 재시도와 같은 여러 영역의 주요 차이점을 설명합니다.
비교
Cloud Run Functions에는 다음과 같은 두 가지 버전이 있습니다.
다음 방법 중 하나로 만들 수 있는 Cloud Run 함수:
- Cloud Run Admin API(권장): 이 API로 만든 함수 (예: Google Cloud 콘솔,
gcloud run
, REST API 또는 Terraform 사용)는 Cloud Run에 서비스로 배포됩니다. - Cloud Functions v2 API: 이 API (예:
gcloud functions
, REST API, Terraform 사용)로 만든 함수는 Cloud Run Admin API와 Cloud Functions v2 API로 관리할 수 있습니다. 이 API를 사용하는 경우 함수를 배포할 때 트리거를 지정합니다. Cloud Run Admin API 환경을 사용하여 전적으로 관리할 수 있도록 v2 API 함수를 분리하는 방법을 알아봅니다.
- Cloud Run Admin API(권장): 이 API로 만든 함수 (예: Google Cloud 콘솔,
Cloud Run Functions(1세대)(이전 명칭: Cloud Functions(1세대))는 제한된 이벤트 트리거와 구성 가능성을 갖춘 함수의 원래 버전입니다.
함수를 Cloud Run에 직접 배포하면 함수가 컨테이너로 자동 빌드되고 Cloud Run 서비스로 배포됩니다.
개념
다음 표는 함수의 개념적 차이점을 요약하여 보여줍니다.
Cloud Run 함수 | Cloud Run 함수 (1세대) | |
---|---|---|
이전 제품 이름 | Cloud Functions(2세대) | Cloud Functions(1세대) |
리소스 모델 | 함수는 소스 코드에서 배포되는 Cloud Run 서비스입니다. | 소스 코드에서 함수가 배포됨 |
함수 유형 용어 |
|
|
할당된 HTTPS URL | run.app Cloud Functions v2 API로 만든 함수에는 cloudfunctions.net 엔드포인트도 있습니다. |
cloudfunctions.net |
이미지 레지스트리 | Artifact Registry만 해당 | Artifact Registry 또는 Container Registry (지원 중단됨) |
배포의 IAM 역할 |
|
|
내부 인프라 | Cloud Run | Google 내부용 |
가격 책정 모델 | Cloud Run 가격 책정 | Cloud Run 함수 (1세대) 가격 책정 |
구성
Cloud Run은 함수를 컨테이너로 빌드하고 서비스로 배포합니다. Cloud Run에 함수를 배포하면 함수의 동작에 대한 완전한 액세스 권한과 제어 권한을 갖게 됩니다. 예를 들어 Direct VPC를 사용 설정하고, GPU를 구성하고, 볼륨 마운트를 사용할 수 있습니다.
다음 표에는 함수의 구성 차이점이 요약되어 있습니다.
Cloud Run 함수 | Cloud Run 함수 (1세대) | |
---|---|---|
요청 제한 시간 |
|
|
인스턴스 크기 | 최대 16GB RAM(vCPU 4개) | 최대 8GB RAM(vCPU 2개) |
동시 실행 | 함수 인스턴스당 동시 요청 최대 1,000개 | 함수 인스턴스당 동시 요청 1개 |
트래픽 분할 | 지원됨 | 지원되지 않음 |
배포
2024년 8월부터 Cloud Run을 사용하여 Cloud Functions v2 API로 만든 함수를 배포하고 관리할 수 있습니다. 이번 변경사항으로 인해 다음과 같은 결과가 발생합니다.
- 런타임 ID 및 빌드 구성과 같은 함수 메타데이터는 Cloud Run 서비스 정의에 저장됩니다.
- Cloud Run Admin API를 사용하여 함수를 안전하게 수정할 수 있습니다.
- Cloud Run 서비스 정의를 함수의 참조 소스로 사용할 수 있습니다.
단, Cloud Run Admin API로 만든 함수는 Cloud Functions API로 수정할 수 없습니다.
다음 표에는 함수를 만들고, 배포하고, 수정하고, 관리하는 방법의 차이점이 요약되어 있습니다.
Cloud Run 함수 | Cloud Run 함수 (1세대) | |
---|---|---|
Google Cloud 콘솔 | Cloud Run | Cloud Run Functions(1세대) |
Cloud SDK |
|
|
REST API |
|
|
Terraform |
|
트리거 및 재시도
다음 표에서는 함수의 트리거와 재시도를 비교합니다.
Cloud Run 함수 | Cloud Run 함수 (1세대) | |
---|---|---|
함수 트리거 및 호출 | Cloud Run Admin API로 만든 함수의 경우 Google Cloud 콘솔에서 또는 gcloud CLI를 사용할 때 함수를 배포한 후 함수 배포의 일부로 트리거를 지정합니다. Cloud Functions v2 API로 만든 함수의 경우 함수 배포의 일부로 트리거를 지정합니다. |
함수 배포의 일부로 트리거를 지정합니다. |
이벤트 유형 | Cloud 감사 로그를 통한 90개 이상의 이벤트 소스를 포함하여 Eventarc에서 지원되는 모든 이벤트 유형 지원 | 7개 소스의 이벤트에 대한 직접 지원 |
재시도 | Cloud Run Admin API로 만든 함수의 경우 Eventarc에서 재시도 정책을 업데이트하고 Pub/Sub에서 데드 레터 주제를 구성합니다. Cloud Functions v2 API로 만든 함수의 경우 --retry 플래그를 사용하여 함수 배포의 일부로 재시도를 지정합니다.
|
--retry 플래그를 사용하여 함수 배포의 일부로 재시도를 지정합니다. |
함수 분리
Cloud Functions v2 API를 사용하여 만든 함수(예: gcloud functions
, REST API, Terraform 사용)는 기존 API 환경에서 분리할 수 있습니다. 함수를 분리한 후에는 Cloud Run Admin API를 사용하여만 함수를 관리할 수 있습니다. 워크로드가 보장된 워크로드의 run.googleapis.com
API 경계 내에 있어야 하거나 워크로드가 Cloud Run SKU를 사용하도록 하려는 경우 이 작업을 실행할 수 있습니다. 자세한 내용은 Cloud Functions v2 API 문서의 함수 관리를 참고하세요.
다음 단계
- Cloud Run에 함수 배포 시작 가이드를 사용해 보세요.