์ž‘์—…์ž ํ’€์˜ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” Cloud Run ์ž‘์—…์ž ํ’€์˜ ์ง„์ž…์  ๋ช…๋ น์–ด ๋ฐ ์ธ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Cloud Run์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ด๋ฏธ์ง€์˜ ๊ธฐ๋ณธ ์ง„์ž…์  ๋ช…๋ น์–ด ๋ฐ ๊ธฐ๋ณธ ๋ช…๋ น์–ด ์ธ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์˜ ๊ธฐ๋ณธ ์ง„์ž…์  ๋ฐ ๋ช…๋ น์–ด ์ธ์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ์—์„œ command ๋ฐ args ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. command ํ•„๋“œ๋Š” ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•˜๋Š” ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. args ํ•„๋“œ๋Š” ํ•ด๋‹น ๋ช…๋ น์–ด๋กœ ์ „๋‹ฌ๋˜๋Š” ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ž ํ’€๋งˆ๋‹ค ์ปจํ…Œ์ด๋„ˆ๋‹น ์ตœ๋Œ€ 1,000๊ฐœ์˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ์—ญํ• 

Cloud Run ์ž‘์—…์ž ํ’€์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์–ป์œผ๋ ค๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋‹ค์Œ IAM ์—ญํ• ์„ ๋ถ€์—ฌํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์„ธ์š”.

Cloud Run๊ณผ ์—ฐ๊ฒฐ๋œ IAM ์—ญํ•  ๋ฐ ๊ถŒํ•œ ๋ชฉ๋ก์€ Cloud Run IAM ์—ญํ•  ๋ฐ Cloud Run IAM ๊ถŒํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Cloud Run ์ž‘์—…์ž ํ’€์ด Cloud ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์€Google Cloud API์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์„œ๋น„์Šค ID ๊ตฌ์„ฑ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์—ญํ•  ๋ถ€์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ๊ถŒํ•œ ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ง„์ž…์  ๋ฐ ์ธ์ˆ˜ ๊ตฌ์„ฑ

๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ƒˆ ๋ฒ„์ „์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…์‹œ์  ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์œผ๋ฉด ์ดํ›„ ๋ฒ„์ „์—๋„ ์ด ๊ตฌ์„ฑ ์„ค์ •์ด ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ง€์ •๋œ ์ปจํ…Œ์ด๋„ˆ ๋ช…๋ น์–ด ๋ฐ ์ธ์ˆ˜๋Š” ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ ENTRYPOINT ๋ฐ CMD๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ์ž‘์—…์ž ํ’€์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ƒˆ ๋ฒ„์ „์„ ๋ฐฐํฌํ•  ๋•Œ Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run ์ž‘์—…์ž ํ’€์˜ ์ง„์ž…์  ๋ช…๋ น์–ด์™€ ์ธ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud

๊ธฐ์กด ์„œ๋น„์Šค์˜ ์‹œ์ž‘ ๋ช…๋ น์–ด ๋ฐ ์ธ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • WORKER_POOL์„ ์ž‘์—…์ž ํ’€์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ COMMAND๋ฅผ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • ARG1: ์ปจํ…Œ์ด๋„ˆ ๋ช…๋ น์–ด๋กœ ์ „์†ก ์ค‘์ธ ์ธ์ˆ˜. ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ธ์ˆ˜์—๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ์ž‘์—…์ž ํ’€ ๋˜๋Š” ๊ธฐ์กด ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ ์ง„์ž…์  ๋ฐ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

IMAGE_URL์„ ์ž‘์—…์ž ํ’€์ด ํฌํ•จ๋œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค(์˜ˆ: us-docker.pkg.dev/cloudrun/container/worker-pool:latest).

์ง„์ž…์  ๋ช…๋ น์–ด ๋ฐ ์ธ์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณต์›ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋นˆ ๋ฌธ์ž์—ด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""

์‚ฌ์ด๋“œ์นด ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์ˆœ์„œ ๊ตฌ์„ฑ

์‚ฌ์ด๋“œ์นด ๋ฐฐํฌ์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ์ปจํ…Œ์ด๋„ˆ ์ข…์† ํ•ญ๋ชฉ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ข…์† ํ•ญ๋ชฉ์ด ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์ •ํ•˜๊ณ  ์ข…์†๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‚˜์—ดํ•˜์—ฌ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋จผ์ € ์‹œ์ž‘๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ข…์† ํ•ญ๋ชฉ์ด ์—†๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ํ•ญ์ƒ ๋™์‹œ์— ๋จผ์ € ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹œ์ž‘ ์ƒํƒœ ์ ๊ฒ€ ํ”„๋กœ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ํ”„๋กœ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Cloud Run์ด ์ข…์† ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ํ†ต๊ณผ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ ํ›„์— ๋‹ค์Œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ํ™•์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ข…์†๋œ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘์— ์‹คํŒจํ•˜๋”๋ผ๋„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ง€์ •๋œ ์ˆœ์„œ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ž ํ’€์—๋Š” ๊ธฐ๋ณธ ์‹œ์ž‘ ์ƒํƒœ ์ ๊ฒ€ ํ”„๋กœ๋ธŒ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud

Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์ „์— ์‹œ์ž‘ ์ƒํƒœ ์ ๊ฒ€์„ ๊ตฌ์„ฑํ•˜์„ธ์š”.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. ์ง€์ •๋œ ์‹œ์ž‘ ์ˆœ์„œ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„œ๋น„์Šค์— ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud beta run worker-pools deploy WORKER_POOL \
     --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE'
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME
  • WORKER_POOL์„ ๋ฐฐํฌํ•  ์ž‘์—…์ž ํ’€์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๋‚˜์ค‘์— ์ž‘์—…์ž ํ’€ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • IMAGE_URL์„ ์ž‘์—…์ž ํ’€์ด ํฌํ•จ๋œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ(์˜ˆ: us-docker.pkg.dev/cloudrun/container/worker-pool:latest)๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • SIDECAR_IMAGE๋ฅผ ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    ๋ฐฐํฌ ๋ช…๋ น์–ด์—์„œ ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๊ฐ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ์„ container ๋งค๊ฐœ๋ณ€์ˆ˜ ๋‹ค์Œ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ž ํ’€์˜ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ๋ณด๊ธฐ

  1. Google Cloud ์ฝ˜์†”์—์„œ Cloud Run์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    Cloud Run์œผ๋กœ ์ด๋™

  2. ์ž‘์—…์ž ํ’€์„ ํด๋ฆญํ•˜์—ฌ ๋ฐฐํฌ๋œ ์ž‘์—…์ž ํ’€ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ฒ€์‚ฌํ•  ์ž‘์—…์ž ํ’€์„ ํด๋ฆญํ•˜์—ฌ ์„ธ๋ถ€์ •๋ณด ์ฐฝ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  4. ์ปจํ…Œ์ด๋„ˆ ํƒญ์„ ํด๋ฆญํ•˜์—ฌ ์ž‘์—…์ž ํ’€ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.