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 ๋ช ๋ น์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
Terraform ๊ตฌ์ฑ์์ ๋ค์์google_cloud_run_v2_service
๋ฆฌ์์ค์ ์ถ๊ฐํฉ๋๋ค.template.containers.resources.limits
์์ 512Mi
๋ฅผ ์ํ๋ ์๋น์ค ๋ฉ๋ชจ๋ฆฌ ํ๋๋ก ๋ฐ๊ฟ๋๋ค.
์๋น์ค ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ
Cloud Run ์๋น์ค์ ๊ฒฝ์ฐ (์คํ ๋ฉ ๋ฉ๋ชจ๋ฆฌ) + (์์ฒญ๋ณ ๋ฉ๋ชจ๋ฆฌ) * (์๋น์ค ๋์ ์คํ)์ ์ฌ์ฉํ์ฌ ์๋น์ค์ ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฆ, ๋ค์ ์ฌํญ์ ์ฃผ์ํ์ธ์.
์๋น์ค์ ๋์ ์คํ ํ์๋ฅผ ๋๋ฆฌ๋ฉด ์ต๋ ์ฌ์ฉ๋์ ๊ณ ๋ คํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ํ๋๋ ๋๋ ค์ผ ํฉ๋๋ค.
์๋น์ค์ ๋์ ์คํ ํ์๋ฅผ ์ค์ผ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๋น์ฉ์ ์ ์ฝํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ํ๋๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ฒญ๋ณ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋ ์ต์ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์ญ ๋ณ์ ๊ฐ๋ฐ ํ์ ์ฐธ์กฐํ์ธ์.
๋ฉ๋ชจ๋ฆฌ ํ๋ ์ค์ ๋ณด๊ธฐ
Cloud Run ์๋น์ค์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํ๋ ์ค์ ์ ๋ณด๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ Cloud Run์ผ๋ก ์ด๋ํฉ๋๋ค.
๊ด์ฌ์ด ์๋ ์๋น์ค๋ฅผ ํด๋ฆญํ์ฌ ์๋น์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
๋ฒ์ ํญ์ ํด๋ฆญํฉ๋๋ค.
์ค๋ฅธ์ชฝ์ ์ธ๋ถ์ ๋ณด ํจ๋์์ ๋ฉ๋ชจ๋ฆฌ ํ๋ ์ค์ ์ด ์ปจํ ์ด๋ ํญ์ ํ์๋ฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
gcloud run services describe SERVICE
๋ฐํ๋ ๊ตฌ์ฑ์์ ๋ฉ๋ชจ๋ฆฌ ํ๋ ์ค์ ์ ์ฐพ์ต๋๋ค.