Cloud Run 서비스를 다양한 양의 메모리로 프로비저닝할 수 있습니다. 이 페이지에서는 서비스에 사용할 수 있는 메모리 양을 지정하는 방법을 설명합니다.
메모리 사용량 이해
허용된 메모리 한도를 초과하면 Cloud Run 인스턴스가 종료됩니다.
인스턴스의 사용 가능한 메모리 계산에는 다음이 포함됩니다.
- 서비스 실행 파일 실행(실행 파일이 메모리에 로드되어야 함)
- 서비스 프로세스에 메모리 할당
- 파일 시스템에 파일 쓰기
배포된 컨테이너 이미지의 크기는 사용 가능한 메모리 계산에 포함되지 않습니다.
메모리 한도 설정 및 업데이트
Cloud Run 서비스에 메모리 한도를 설정할 수 있습니다. 기본적으로 버전의 각 인스턴스에 할당된 메모리는 512MiB이고 함수에 할당된 메모리는 256MiB입니다.
필요한 최소 CPU
선택한 할당 메모리 크기는 서비스에 할당된 CPU 양에 해당합니다. 메모리 한도를 설정할 때는 다음과 같은 최소 CPU 한도가 필요합니다.
메모리 | 필요한 최소 CPU |
---|---|
128MB | .083 vCPU |
256MB | .167 vCPU |
512MB | .333 vCPU |
1GiB | .583 vCPU |
2GiB | vCPU 1개 |
4GiB 이상 | 2 vCPU |
8GiB 이상 | vCPU 4개 |
16GiB 이상 | vCPU 6개 |
24GiB 이상 | 8 vCPU |
최대 메모리 용량
구성할 수 있는 최대 메모리 양은 32기비바이트(32 Gi
)입니다.
최소 메모리
최소 메모리 설정은 1세대 또는 2세대 실행 환경에 따라 다릅니다.
- 1세대용 128MiB
- 2세대용 512MiB
필요한 역할
Cloud Run 서비스를 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Cloud Run 서비스에 대한 Cloud Run 개발자(
roles/run.developer
) 역할 -
서비스 ID에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
) 역할
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 서비스가 Cloud 클라이언트 라이브러리와 같은 Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
메모리 한도 구성
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
Cloud Run 서비스의 경우 새 서비스를 만들거나 새 버전을 배포할 때 Google Cloud 콘솔, gcloud 명령줄 또는 YAML 파일을 사용하여 메모리 한도를 설정할 수 있습니다
콘솔
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
컨테이너 배포를 클릭하고 서비스를 선택하여 새 서비스를 구성합니다. 기존 서비스를 구성하는 경우 서비스를 클릭한 후 새 버전 수정 및 배포를 클릭합니다.
새 서비스를 구성하는 경우 초기 서비스 설정 페이지를 작성한 후 컨테이너, 볼륨, 네트워킹, 보안을 클릭하여 서비스 구성 페이지를 펼칩니다.
컨테이너 탭을 클릭합니다.
- 메모리 드롭다운 목록에서 원하는 메모리 크기를 선택합니다.
만들기 또는 배포를 클릭합니다.
gcloud
다음 명령어를 사용하여 지정된 서비스의 메모리 할당을 업데이트할 수 있습니다.
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를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
입니다. - SIZE를 위에서 설명한 값으로 바꿉니다.
YAML
새 서비스를 만드는 경우에는 이 단계를 건너뜁니다. 기존 서비스를 업데이트하는 경우 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를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-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.containers.resources.limits
아래의 Terraform 구성에서 google_cloud_run_v2_service
리소스에 다음 항목을 추가합니다. 512Mi
를 원하는 서비스 메모리 한도로 바꿉니다.
서비스 메모리 최적화
Cloud Run 서비스의 경우 (스탠딩 메모리) + (요청별 메모리) * (서비스 동시 실행)을 사용하여 서비스의 최대 메모리 요구사항을 확인할 수 있습니다.
즉, 다음 사항에 주의하세요.
서비스의 동시 실행 횟수를 늘리면 최대 사용량에 고려해야 할 메모리 한도도 늘려야 합니다.
서비스의 동시 실행 횟수를 줄일 경우 메모리 사용 비용을 절약하기 위해 메모리 한도를 줄이는 것이 좋습니다.
요청별 메모리 용량 최소화에 대한 자세한 내용은 전역 변수 개발 팁을 참조하세요.
메모리 한도 설정 보기
Cloud Run 서비스의 현재 메모리 한도 설정을 보려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
관심이 있는 서비스를 클릭하여 서비스 세부정보 페이지를 엽니다.
버전 탭을 클릭합니다.
오른쪽의 세부정보 패널에서 메모리 한도 설정이 컨테이너 탭에 표시됩니다.
gcloud
다음 명령어를 사용하세요.
gcloud run services describe SERVICE
반환된 구성에서 메모리 한도 설정을 찾습니다.