이 페이지에서는 메모리 한도를 설정하는 방법을 설명합니다.
메모리 사용량 이해
허용된 메모리 한도를 초과하면 Cloud Run 인스턴스가 종료됩니다.
인스턴스의 사용 가능한 메모리 계산에는 다음이 포함됩니다.
- 애플리케이션 실행 파일 실행(실행 파일이 메모리에 로드되어야 함)
- 애플리케이션 프로세스에 메모리 할당
- 파일 시스템에 파일 쓰기
배포된 컨테이너 이미지의 크기는 사용 가능한 메모리 계산에 포함되지 않습니다.
메모리 한도 설정 및 업데이트
Cloud Run 서비스 및 작업에 메모리 한도를 설정할 수 있습니다. 기본적으로 버전 또는 작업의 각 인스턴스에 할당된 메모리는 512MiB입니다.
필요한 최소 CPU
메모리 한도를 설정할 때는 다음과 같은 최소 CPU 한도가 필요합니다.
메모리 | 필요한 최소 CPU |
---|---|
4GiB 이상 | 2 |
8GiB 이상 | 4 |
16GiB 이상 | 6 |
24GiB 이상 | 8 |
최대 메모리 용량
구성할 수 있는 최대 메모리 양은 32기비바이트(32 Gi
)입니다.
최소 메모리
최소 메모리 설정은 1세대 또는 2세대 실행 환경에 따라 다릅니다.
- 1세대용 128MiB
- 2세대용 512MiB
Cloud Run 서비스
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
Cloud Run 서비스의 경우 새 서비스를 만들거나 새 버전을 배포할 때 Google Cloud 콘솔, gcloud 명령줄 또는 YAML 파일을 사용하여 메모리 한도를 설정할 수 있습니다
콘솔
배포할 새 서비스를 구성하려면 서비스 만들기를 클릭합니다. 기존 서비스를 구성하는 경우 서비스를 클릭한 다음 새 버전 수정 및 배포를 클릭합니다.
새 서비스를 구성하는 경우 원하는 대로 초기 서비스 설정 페이지를 작성한 후 컨테이너, 네트워킹, 보안을 클릭하여 서비스 구성 페이지를 펼칩니다.
컨테이너 탭을 클릭합니다.
- 메모리 드롭다운 목록에서 원하는 메모리 크기를 선택합니다.
만들기 또는 배포를 클릭합니다.
명령줄
다음 명령어를 사용하여 지정된 서비스의 메모리 할당을 업데이트할 수 있습니다.
gcloud run services update SERVICE --memory SIZE
SERVICE를 서비스 이름으로 바꾸고 SIZE를 원하는 메모리 크기로 바꿉니다. 크기 형식은 고정 소수점 수 또는 부동 소수점 수 뒤에 각각 기가바이트 또는 메가바이트를 의미하는 G
또는 M
라는 기호를 사용하거나 이진 단위인 Gi
또는 Mi
(각각 기비바이트 또는 메비바이트)를 사용합니다.
배포 중에 다음 명령어를 사용하여 메모리 한도를 설정할 수도 있습니다.
gcloud run deploy --image IMAGE_URL --memory SIZE
다음과 같이 바꿉니다.
- IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 URL은REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
형식입니다. . - SIZE를 위에서 설명한 값으로 바꿉니다.
YAML
YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export
명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다.
그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace
명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다.
설명된 대로 필드만 수정해야 합니다.
구성을 보고 다운로드하려면 다음을 실행합니다.
gcloud run services describe SERVICE --format export > service.yaml
memory
속성을 업데이트합니다.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: memory: SIZE
다음과 같이 바꿉니다.
- SERVICE를 Cloud Run 서비스 이름으로 바꿉니다.
- IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 URL은REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
형식입니다. - SIZE를 원하는 메모리 크기로 바꿉니다.
형식은 고정 소수점 수 또는 부동 소수점 수 뒤에 각각 기가바이트 또는 메가바이트를 의미하는
G
또는M
라는 기호를 사용하거나 이진 단위인Gi
또는Mi
(각각 기비바이트 또는 메비바이트)를 사용합니다. - REVISION을 새 버전 이름으로 변경하거나 이미 있는 경우 삭제합니다. 새 버전 이름을 제공할 경우 다음 기준을 반드시 충족해야 합니다.
SERVICE-
로 시작해야 합니다.- 소문자, 숫자,
-
만 포함합니다. -
로 끝나면 안 됩니다.- 63자(영문 기준) 이하여야 합니다.
다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.
gcloud run services replace service.yaml
Terraform
Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.
template.spec.containers
아래의 Terraform 구성에서 google_cloud_run_service
리소스에 다음 항목을 추가합니다. 512Mi
를 원하는 서비스 메모리 한도로 바꿉니다.
Cloud Run 작업
Cloud Run 작업의 경우 최소 512Mi를 지정해야 합니다. Cloud Run 작업에 대한 메모리를 지정하려면 다음 안내를 따르세요.
콘솔
새 작업을 구성하는 경우 작업 탭을 클릭하고 원하는 대로 초기 작업 설정 페이지를 작성합니다. 기존 작업을 구성하는 경우 작업을 클릭한 후 수정을 클릭합니다.
컨테이너, 변수 및 보안 비밀, 연결, 보안을 클릭하여 작업 속성 페이지를 펼칩니다.
컨테이너 탭을 클릭합니다.
- 메모리 드롭다운 목록에서 원하는 메모리 크기를 선택합니다.
만들기 또는 업데이트를 클릭합니다.
명령줄
작업 생성 시 메모리 한도를 설정하려면 다음 안내를 따르세요.
gcloud run jobs create JOB_NAME --image IMAGE_URL --memory SIZE
다음과 같이 바꿉니다.
- JOB_NAME을 작업 이름으로 바꿉니다.
- IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/job:latest
)로 바꿉니다. - SIZE를 원하는 메모리 크기로 바꿉니다. 크기 형식은 고정 소수점 수 또는 부동 소수점 수 뒤에 각각 기가바이트 또는 메가바이트를 의미하는
G
또는M
라는 기호를 사용하거나 이진 단위인Gi
또는Mi
(각각 기비바이트 또는 메비바이트)를 사용합니다.
작업 업데이트 시 메모리 한도를 설정하려면 다음 안내를 따르세요.
gcloud run jobs update JOB_NAME --memory SIZE
YAML
YAML 형식으로 정리된 결과를 반환하는 gcloud run jobs describe --format export
명령어를 사용하면 기존 작업 구성을 다운로드하고 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run jobs replace
명령어를 사용하여 수정된 YAML을 업로드합니다.
설명된 대로 필드만 수정해야 합니다.
구성을 보고 다운로드하려면 다음을 실행합니다.
gcloud run jobs describe JOB_NAME --format export > job.yaml
memory
속성을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE resources: limits: memory: SIZE
SIZE를 원하는 메모리 크기로 바꿔 최소 512Mi를 지정합니다. 형식은 고정 소수점 수 또는 부동 소수점 수 뒤에 각각 기가바이트 또는 메가바이트를 의미하는
G
또는M
라는 기호를 사용하거나 이진 단위인Gi
또는Mi
(각각 기비바이트 또는 메비바이트)를 사용합니다.또한 환경 변수 또는 메모리 제한과 같은 추가 구성을 지정할 수 있습니다.
기존 작업 구성을 업데이트합니다.
gcloud run jobs replace job.yaml
서비스 메모리 최적화
Cloud Run 서비스의 경우 (스탠딩 메모리) + (요청별 메모리) * (서비스 동시 실행)을 사용하여 서비스의 최대 메모리 요구사항을 확인할 수 있습니다.
즉, 다음 사항에 주의하세요.
서비스의 동시 실행 횟수를 늘리면 최대 사용량에 고려해야 할 메모리 한도도 늘려야 합니다.
서비스의 동시 실행 횟수를 줄일 경우 메모리 사용 비용을 절약하기 위해 메모리 한도를 줄이는 것이 좋습니다.
요청별 메모리 용량 최소화에 대한 자세한 내용은 전역 변수 개발 팁을 참조하세요.
메모리 한도 설정 보기
Cloud Run 서비스의 현재 메모리 한도 설정을 보려면 다음 안내를 따르세요.
콘솔
관심이 있는 서비스를 클릭하여 서비스 세부정보 페이지를 엽니다.
버전 탭을 클릭합니다.
오른쪽의 세부정보 패널에서 메모리 한도 설정이 컨테이너 탭에 표시됩니다.
명령줄
다음 명령어를 사용하세요.
gcloud run services describe SERVICE
반환된 구성에서 메모리 한도 설정을 찾습니다.
Cloud Run 작업의 현재 메모리 한도 설정을 보려면 다음 안내를 따르세요.
콘솔
관심 있는 작업을 클릭하여 작업 세부정보 페이지를 엽니다.
구성 탭을 클릭합니다.
구성 세부정보에서 메모리 한도 설정을 찾습니다.
명령줄
다음 명령어를 사용하세요.
gcloud run jobs describe JOB_NAME
반환된 구성에서 메모리 한도 설정을 찾습니다.