VPC ๋„คํŠธ์›Œํฌ์™€ ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค

์„œ๋ฒ„๋ฆฌ์Šค VPC ์•ก์„ธ์Šค ์ปค๋„ฅํ„ฐ๊ฐ€ ํ•„์š” ์—†๋Š” ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Cloud Run ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์—์„œ VPC ๋„คํŠธ์›Œํฌ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ œํ•œ์‚ฌํ•ญ

Cloud Run ์„œ๋น„์Šค, ์ž‘์—…, ์ž‘์—…์ž ํ’€์—๋Š” ๋‹ค์Œ ์ œํ•œ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ์‹œ ์—ฐ๊ฒฐ ์„ค์ •์ด 1๋ถ„ ์ด์ƒ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๊ธฐ ์ „์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๊ทธ๋ ˆ์Šค ๋Œ€์ƒ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” HTTP ์‹œ์ž‘ ํ”„๋กœ๋ธŒ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ์ถœ๊ตฌ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๋Š” ์žฌ์‹œ๋„๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์‹œ์ž‘ ํ”„๋กœ๋ธŒ๊ฐ€ ์žฌ์‹œ๋„ ์—ญํ• ์„ ํ•˜๋„๋ก ์ ์ ˆํ•œ ๊ธฐ๊ฐ„ ๋ฐ ์ž„๊ณ„๊ฐ’ ๊ตฌ์„ฑ์œผ๋กœ ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Cloud Run์€ ๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๋Œ€ 1Gbps์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์–‘์„ ์ดˆ๊ณผํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Cloud Run ์‚ฌ์šฉ ํ• ๋‹น๋Ÿ‰์€ Direct VPC ์ด๊ทธ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ ์ˆ˜๋Š” Cloud Run ๋ฒ„์ „ ๋˜๋Š” ์ž‘์—… ์‹คํ–‰๋ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ•œ๋„๋ฅผ ๋Š˜๋ฆฌ๋ ค๋ฉด ํ• ๋‹น๋Ÿ‰์„ ๋Š˜๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • Cloud Run ์„œ๋น„์Šค, ์ž‘์—…, ์ž‘์—…์ž ํ’€์—์„œ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ ์œ ์ง€๋ณด์ˆ˜ ์ด๋ฒคํŠธ ์ค‘์— ์—ฐ๊ฒฐ ์ค‘๋‹จ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์ •๊ธฐ์ ์ธ ์—ฐ๊ฒฐ ์žฌ์„ค์ •์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๋‚ด๋ถ€ IPv6 ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ Direct VPC ์ด๊ทธ๋ ˆ์Šค ์ง€์›์€ ํ”„๋ฆฌ๋ทฐ์—์„œ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • Private NAT๋Š” ํ”„๋ฆฌ๋ทฐ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํ•ญ๋ชฉ์€ ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • VPC ํ๋ฆ„ ๋กœ๊ทธ๋Š” Cloud Run ์„œ๋น„์Šค๋‚˜ ๋ฒ„์ „์˜ ์ด๋ฆ„์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • VPC ํ๋ฆ„ ๋กœ๊ทธ๋Š” Cloud Run ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋จธ์‹ ๊ณผ ๊ฐ™์€ ๋น„VM ๋ฆฌ์†Œ์Šค์—์„œ๋Š” ๋ณด๊ณ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํŒจํ‚ท ๋ฏธ๋Ÿฌ๋ง
  • ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ Network Intelligence Center
  • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์™ธ๋ถ€ IPv6 ํŠธ๋ž˜ํ”ฝ
  • ์ธ๊ทธ๋ ˆ์Šค ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์˜ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ ๋˜๋Š” ์„œ๋น„์Šค ID
  • ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ๋Š” Cloud Run ์›Œํฌ๋กœ๋“œ์— ์—ฐ๊ฒฐ๋œ Resource Manager ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • 1์‹œ๊ฐ„ ๋„˜๊ฒŒ ์‹คํ–‰๋˜๋Š” Cloud Run ์ž‘์—…์—์„œ ์—ฐ๊ฒฐ ์ค‘๋‹จ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ž‘์—…์„ ํ•œ ๋จธ์‹ ์—์„œ ๋‹ค๋ฅธ ๋จธ์‹ ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ์œ ์ง€๋ณด์ˆ˜ ์ด๋ฒคํŠธ ์ค‘์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฒคํŠธ 10์ดˆ ์ „์— SIGTSTP ์‹ ํ˜ธ๋ฅผ ๋ฐ›๊ณ  ์ด๋ฒคํŠธ ํ›„ SIGCONT ์‹ ํ˜ธ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ SIGCONT ์‹ ํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์—ฐ๊ฒฐ์„ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

IP ์ฃผ์†Œ ํ• ๋‹น

Cloud Run ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ VPC ๋„คํŠธ์›Œํฌ์— ๋ฐฐ์น˜ํ•˜๋ ค๋ฉด VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Cloud Run์€ ์„œ๋ธŒ๋„ท์—์„œ IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

IP ์ฃผ์†Œ๋Š” ์ž„์‹œ ์ฃผ์†Œ์ด๋ฏ€๋กœ ๊ฐœ๋ณ„ IP์— ๋”ฐ๋ผ ์ •์ฑ…์„ ๋งŒ๋“ค์ง€ ๋งˆ์„ธ์š”. ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™๊ณผ ๊ฐ™์ด IP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •์ฑ…์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ „์ฒด ์„œ๋ธŒ๋„ท์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ƒˆ ๋„คํŠธ์›Œํฌ ๋ฐ ์„œ๋ธŒ๋„ท ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์ƒˆ ์ž‘์—… ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

์ˆ˜์ง ํ™•์žฅ ๋ฐ ์ถ•์†Œ

ํŠธ๋ž˜ํ”ฝ์ด ๊ธ‰์ฆํ•  ๋•Œ ๋” ๋น ๋ฅด๊ฒŒ ์ˆ˜์ง ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก Cloud Run์—์„œ๋Š” ํ•œ ๋ฒˆ์— 16๊ฐœ(28 ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ)์˜ ๋ธ”๋ก์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. Cloud Run์ด ํ• ๋‹นํ•œ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”. Cloud Run์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IPv4 ์ฃผ์†Œ๊ฐ€ ์ถฉ๋ถ„ํ•œ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์„œ๋ธŒ๋„ท์˜ IPv4 ์ฃผ์†Œ ๋ฒ”์œ„๊ฐ€ /26 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

IP ํ• ๋‹น ํšจ์œจ์„ฑ๊ณผ ๊ด€๋ฆฌ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. IPv4 ์ฃผ์†Œ ๊ณต๊ฐ„์ด ์ œํ•œ๋œ ๊ฒฝ์šฐ ์ง€์›๋˜๋Š” IPv4 ๋ฒ”์œ„๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋” ๋งŽ์€ ์˜ต์…˜์„ ํ™•์ธํ•˜์„ธ์š”.

์„œ๋ธŒ๋„ท์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋จผ์ € Cloud Run ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์žฌ๋ฐฐํฌํ•˜์—ฌ ์„œ๋ธŒ๋„ท ์‚ฌ์šฉ์„ ์ค‘์ง€ํ•œ ํ›„ 1~2์‹œ๊ฐ„ ์ •๋„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋ฐ ์ž‘์—…์ž ํ’€์˜ IP ์ฃผ์†Œ ์†Œ๋น„

์•ˆ์ •์ ์ธ ์ƒํƒœ์—์„œ Cloud Run์€ ์ธ์Šคํ„ด์Šค ์ˆ˜์˜ 2๋ฐฐ(2X)๋งŒํผ์˜ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์ด ์ถ•์†Œ๋˜๋ฉด Cloud Run์€ ์ตœ๋Œ€ 20๋ถ„ ๋™์•ˆ IP ์ฃผ์†Œ๋ฅผ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ํ•ฉํ•ด์„œ 2๋ฐฐ ์ด์ƒ์˜ IP ์ฃผ์†Œ์™€ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณ ๋ คํ•œ ๋ฒ„ํผ๋ฅผ ์˜ˆ์•ฝํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด revision 1์ด ์ธ์Šคํ„ด์Šค 100๊ฐœ์—์„œ 0์œผ๋กœ ์ถ•์†Œ๋˜๊ณ  revision 2๊ฐ€ 0์—์„œ ์ตœ๋Œ€ 100๊ฐœ๋กœ ํ™•์žฅ๋˜๋„๋ก ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด Cloud Run์€ ์ถ•์†Œ ํ›„ ์ตœ๋Œ€ 20๋ถ„ ๋™์•ˆ revision 1 IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. 20๋ถ„์˜ ๋ณด๊ด€ ๊ธฐ๊ฐ„ ๋™์•ˆ IP ์ฃผ์†Œ((100 + 100) * 2)๋ฅผ ์ตœ์†Œ 400๊ฐœ ์ด์ƒ ์˜ˆ์•ฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์˜ IP ์†Œ๋น„

Cloud Run ์ž‘์—…์˜ ๊ฒฝ์šฐ ๊ฐ ํƒœ์Šคํฌ๋Š” ์‹คํ–‰ ๊ธฐ๊ฐ„ ๋™์•ˆ 1๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์†Œ๋น„ํ•˜๋ฉฐ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ์ถ”๊ฐ€ 7๋ถ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ์„œ๋ธŒ๋„ท์ด ๋ชจ๋“  ๋™์‹œ ์ž‘์—… ํƒœ์Šคํฌ ์‹คํ–‰์„ ์ˆ˜์šฉํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฐ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œ ์˜ˆ์•ฝ /26 ์„œ๋ธŒ๋„ท์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋งค์ผ ์‹คํ–‰๋˜๊ณ  ํ•ญ์ƒ ๋‹ค์Œ ์‹คํ–‰ ์ตœ์†Œ 7๋ถ„ ์ „์— ์™„๋ฃŒ๋˜๋Š” ๋‹จ์ผ ํƒœ์Šคํฌ ์ž‘์—…์€ ์„œ๋ธŒ๋„ท์—์„œ ์ตœ๋Œ€ 1๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.
  • 10๋ถ„๋งˆ๋‹ค ์‹คํ–‰๋˜๊ณ  ๊ฐ ํƒœ์Šคํฌ๊ฐ€ 15๋ถ„ ๋™์•ˆ ์‹คํ–‰๋˜๋Š” 10๊ฐœ ํƒœ์Šคํฌ ์ž‘์—…์€ ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด ํƒœ์Šคํฌ๋‹น 22๋ถ„ ๋™์•ˆ 1๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์‹คํ–‰ 3๊ฐœ๊ฐ€ ๋™์‹œ์— IP ์ฃผ์†Œ๋ฅผ ์†Œ๋น„ํ•จ). ๋”ฐ๋ผ์„œ ์ž‘์—…์€ ์•ˆ์ •์ ์ธ ์ƒํƒœ์—์„œ 30๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ํ•˜๋Š” ๋ฐ 1๋ถ„์ด ๊ฑธ๋ฆฌ๊ณ  ๋ถ„๋‹น 100๋ฒˆ ์‹คํ–‰๋˜๋Š” ๋‹จ์ผ ํƒœ์Šคํฌ ์ž‘์—…์—๋Š” ์‹คํ–‰์˜ ์ •ํ™•ํ•œ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์•ฝ 800๊ฐœ์˜ IP ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” IPv4 ๋ฒ”์œ„

Cloud Run์€ ์„œ๋ธŒ๋„ท์— ๋Œ€ํ•ด ๋‹ค์Œ IPv4 ๋ฒ”์œ„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • RFC 1918
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • ํด๋ž˜์Šค E
    • 240.0.0.0/4

IAM ๊ถŒํ•œ ์„ค์ •

๋‹ค์Œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run์—์„œ VPC ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • Cloud Run ์„œ๋น„์Šค ์—์ด์ „ํŠธ ์—ญํ• : ๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Run ์„œ๋น„์Šค ์—์ด์ „ํŠธ์—๋Š” ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” Cloud Run ์„œ๋น„์Šค ์—์ด์ „ํŠธ ์—ญํ• (roles/run.serviceAgent)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ปค์Šคํ…€ ๊ถŒํ•œ: ๋ณด๋‹ค ์„ธ๋ถ€์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‹ค์Œ ์ถ”๊ฐ€ ๊ถŒํ•œ์„ Cloud Run ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    • compute.networks.get
    • compute.subnetworks.get
    • ํ”„๋กœ์ ํŠธ ๋˜๋Š” ํŠน์ • ์„œ๋ธŒ๋„ท์— ๋Œ€ํ•œ compute.subnetworks.use ๊ถŒํ•œ
    • compute.addresses.get
    • compute.addresses.list
    • compute.addresses.createInternal
    • compute.addresses.deleteInternal
    • compute.regionOperations.get
  • Compute ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ์ž ์—ญํ• : ๊ธฐ๋ณธ Cloud Run ์„œ๋น„์Šค ์—์ด์ „ํŠธ ์—ญํ• ์ด๋‚˜ ์ปค์Šคํ…€ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Cloud Run ์„œ๋น„์Šค ์—์ด์ „ํŠธ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ Compute ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ์ž ์—ญํ• (roles/compute.networkUser)์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
    --role "roles/compute.networkUser"

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • PROJECT_ID: ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.
    • PROJECT_NUMBER: Cloud Run ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ

Cloud Run ๋ฆฌ์†Œ์Šค ๋ฐฐํฌ

๋ณด์œ ํ•œ Cloud Run ๋ฆฌ์†Œ์Šค์— ๋”ฐ๋ผ ๋‹ค์Œ ์„น์…˜ ์ค‘ ํ•˜๋‚˜์˜ ์•ˆ๋‚ด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์„œ๋น„์Šค ๋ฐฐํฌ

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

Google Cloud ์ฝ˜์†”, Google Cloud CLI, YAML ๋˜๋Š” Terraform์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ Direct VPC ์ด๊ทธ๋ ˆ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

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

  2. ๋ฐฐํฌํ•  ์ƒˆ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•œ ํ›„ ์ƒˆ ๋ฒ„์ „ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ƒˆ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์š”์— ๋”ฐ๋ผ ์ดˆ๊ธฐ ์„œ๋น„์Šค ์„ค์ • ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•œ ํ›„ ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ, ๋„คํŠธ์›Œํ‚น, ๋ณด์•ˆ์„ ํด๋ฆญํ•˜์—ฌ ์„œ๋น„์Šค ๊ตฌ์„ฑ ํŽ˜์ด์ง€๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

  4. ๋„คํŠธ์›Œํ‚น ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์œ„ํ•ด VPC์— ์—ฐ๊ฒฐ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. VPC๋กœ ์ง์ ‘ ํŠธ๋ž˜ํ”ฝ ์ „์†ก์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ๋„คํŠธ์›Œํฌ ํ•„๋“œ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•  VPC ๋„คํŠธ์›Œํฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์„œ๋ธŒ๋„ท ํ•„๋“œ์—์„œ ์„œ๋น„์Šค๊ฐ€ IP ์ฃผ์†Œ๋ฅผ ์ˆ˜์‹ ํ•  ์„œ๋ธŒ๋„ท์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  9. (์„ ํƒ์‚ฌํ•ญ) ์„œ๋น„์Šค ๋˜๋Š” ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋Š” ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค ๋ฒ„์ „์€ network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  10. ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…์— ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜๋„๋ก ๋น„๊ณต๊ฐœ IP์— ๋Œ€ํ•œ ์š”์ฒญ๋งŒ VPC๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
    • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜๋ ค๋ฉด ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ VPC๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
  11. ๋งŒ๋“ค๊ธฐ ๋˜๋Š” ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  12. ์„œ๋น„์Šค๊ฐ€ VPC ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋„คํŠธ์›Œํ‚น ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ์™€ ์„œ๋ธŒ๋„ท์€ VPC ์นด๋“œ์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

    ์ด์ œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ Cloud Run ์„œ๋น„์Šค์—์„œ VPC ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋กœ ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud

Google Cloud CLI์—์„œ ์ปค๋„ฅํ„ฐ ์—†์ด Cloud Run ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. gcloud ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud components update
  2. ํ”„๋กœ์ ํŠธ์— Compute Engine API๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gcloud services enable compute.googleapis.com
    
  3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud run deploy SERVICE_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION

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

    • SERVICE_NAME: 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 ํ˜•์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) NETWORK: VPC ๋„คํŠธ์›Œํฌ ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท, ๋˜๋Š” ๋‘˜ ๋‹ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„ ํƒ์‚ฌํ•ญ: NETWORK_TAG_NAMES๋ฅผ ์„œ๋น„์Šค์™€ ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค ๋ฒ„์ „์€ network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • EGRESS_SETTING: ์ด๊ทธ๋ ˆ์Šค ์„ค์ • ๊ฐ’
      • all-traffic: ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก
      • private-ranges-only: VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†ก
    • REGION: ์„œ๋น„์Šค ๋ฆฌ์ „
  4. ์„œ๋น„์Šค๊ฐ€ VPC ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud run services describe SERVICE_NAME \
    --region=REGION

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

    • SERVICE_NAME: ์„œ๋น„์Šค ์ด๋ฆ„
    • REGION: ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ง€์ •ํ•œ ์„œ๋น„์Šค์˜ ๋ฆฌ์ „

    ์ถœ๋ ฅ์—๋Š” ๋„คํŠธ์›Œํฌ, ์„œ๋ธŒ๋„ท, ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์˜ ์ด๋ฆ„์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

์ด์ œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ Cloud Run ์„œ๋น„์Šค์—์„œ VPC ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋กœ ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YAML

  1. ์ƒˆ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๊ธฐ์กด ์„œ๋น„์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ YAML ๊ตฌ์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

    gcloud run services describe SERVICE --format export > service.yaml
  2. ๋‹ค์Œ ์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

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

    • SERVICE_NAME: Cloud Run ์„œ๋น„์Šค ์ด๋ฆ„ ์„œ๋น„์Šค ์ด๋ฆ„์€ 49์ž ์ดํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ ๋ฆฌ์ „ ๋ฐ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • REGION: Cloud Run ์„œ๋น„์Šค์˜ ๋ฆฌ์ „. ์ด ๋ฆฌ์ „์€ ์„œ๋ธŒ๋„ท ๋ฆฌ์ „๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) NETWORK: VPC ๋„คํŠธ์›Œํฌ ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท, ๋˜๋Š” ๋‘˜ ๋‹ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) NETWORK_TAG_NAMES๋ฅผ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค ๋ฒ„์ „์€ network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • EGRESS_SETTING: ์ด๊ทธ๋ ˆ์Šค ์„ค์ • ๊ฐ’
      • all-traffic: ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก
      • private-ranges-only: VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†ก
    • IMAGE: ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ URL

    ๋˜ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ๊ตฌ์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud run services replace service.yaml

Terraform

Terraform ๊ตฌ์„ฑ์„ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ธฐ๋ณธ Terraform ๋ช…๋ น์–ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. main.tf ํŒŒ์ผ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      deletion_protection = false # set to "true" in production
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

์„ ํƒ์ ์œผ๋กœ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ธ์ฆ๋˜์ง€ ์•Š์€ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์„œ๋น„์Šค๋ฅผ ๊ณต๊ฐœ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—… ๋งŒ๋“ค๊ธฐ

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

Google Cloud ์ฝ˜์†”, Google Cloud CLI, YAML์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…๊ณผ ํ•จ๊ป˜ Direct VPC ์ด๊ทธ๋ ˆ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

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

  2. ์ƒˆ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์—… ํƒญ์„ ํด๋ฆญํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ดˆ๊ธฐ ์ž‘์—… ์„ค์ • ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์—…์„ ํด๋ฆญํ•œ ํ›„ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ปจํ…Œ์ด๋„ˆ, ๋ณ€์ˆ˜ ๋ฐ ๋ณด์•ˆ ๋น„๋ฐ€, ์—ฐ๊ฒฐ, ๋ณด์•ˆ์„ ํด๋ฆญํ•˜์—ฌ ์ž‘์—… ์†์„ฑ ํŽ˜์ด์ง€๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

  4. ์—ฐ๊ฒฐ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์œ„ํ•ด VPC์— ์—ฐ๊ฒฐ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. VPC๋กœ ์ง์ ‘ ํŠธ๋ž˜ํ”ฝ ์ „์†ก์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ๋„คํŠธ์›Œํฌ ํ•„๋“œ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•  VPC ๋„คํŠธ์›Œํฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์„œ๋ธŒ๋„ท ํ•„๋“œ์—์„œ ์ž‘์—…์ด IP ์ฃผ์†Œ๋ฅผ ์ˆ˜์‹ ํ•  ์„œ๋ธŒ๋„ท์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  9. ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…์— ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜๋„๋ก ๋น„๊ณต๊ฐœ IP์— ๋Œ€ํ•œ ์š”์ฒญ๋งŒ VPC๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
    • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜๋ ค๋ฉด ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ VPC๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
  10. (์„ ํƒ์‚ฌํ•ญ) ์„œ๋น„์Šค ๋˜๋Š” ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋Š” ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค ๋ฒ„์ „์€ network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  11. (์„ ํƒ์‚ฌํ•ญ) ์ž‘์—…์— ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋Š” ์‹คํ–‰ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—… ์‹คํ–‰์—๋Š” network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  12. ๋งŒ๋“ค๊ธฐ ๋˜๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  13. ์ž‘์—…์ด VPC ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์ž‘์—…์„ ํด๋ฆญํ•œ ๋‹ค์Œ ๊ตฌ์„ฑ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ์™€ ์„œ๋ธŒ๋„ท์€ VPC ์นด๋“œ์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

    ์ด์ œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ Cloud Run ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ณ  VPC ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋กœ ์ž‘์—…์˜ ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud

Google Cloud CLI์—์„œ ์ปค๋„ฅํ„ฐ ์—†์ด Cloud Run ์ž‘์—…์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. gcloud ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud components update
  2. ํ”„๋กœ์ ํŠธ์— Compute Engine API๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gcloud services enable compute.googleapis.com
    
  3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run ์ž‘์—…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud run jobs create JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION

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

    • JOB_NAME: Cloud Run ์ž‘์—… ์ด๋ฆ„
    • IMAGE_URL: ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ(์˜ˆ: us-docker.pkg.dev/cloudrun/container/job:latest)
    • (์„ ํƒ์‚ฌํ•ญ) NETWORK: VPC ๋„คํŠธ์›Œํฌ ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„ ํƒ์‚ฌํ•ญ: NETWORK_TAG_NAMES๋ฅผ ์ž‘์—…์— ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋Š” ์‹คํ–‰ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—… ์‹คํ–‰์—๋Š” network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • EGRESS_SETTING: ์ด๊ทธ๋ ˆ์Šค ์„ค์ • ๊ฐ’
      • all-traffic: ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก
      • private-ranges-only: VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†ก
    • REGION: ์ž‘์—…์˜ ๋ฆฌ์ „
  4. ์ž‘์—…์ด VPC ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud run jobs describe JOB_NAME \
      --region=REGION
      

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

    • JOB_NAME: ์ž‘์—… ์ด๋ฆ„
    • REGION: ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ง€์ •ํ•œ ์ž‘์—…์˜ ๋ฆฌ์ „

    ์ถœ๋ ฅ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„คํŠธ์›Œํฌ์™€ ์„œ๋ธŒ๋„ท์˜ ์ด๋ฆ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    VPC network:
      Network:       default
      Subnet:        default
    

์ด์ œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ Cloud Run ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ณ  VPC ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋กœ ์ž‘์—…์˜ ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YAML

  1. ์ƒˆ ์ž‘์—…์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ž‘์—…์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ YAML ๊ตฌ์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. ๋‹ค์Œ ์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    apiVersion: run.googleapis.com/v1
      kind: Job
      metadata:
        name: JOB_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

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

    • JOB_NAME: Cloud Run ์ž‘์—… ์ด๋ฆ„ ์ž‘์—… ์ด๋ฆ„์€ 49์ž ์ดํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ ๋ฆฌ์ „ ๋ฐ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • REGION: Cloud Run ์ž‘์—…์˜ ๋ฆฌ์ „. ์ด ๋ฆฌ์ „์€ ์„œ๋ธŒ๋„ท์˜ ๋ฆฌ์ „๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) NETWORK: VPC ๋„คํŠธ์›Œํฌ ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท, ๋˜๋Š” ๋‘˜ ๋‹ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„ ํƒ์‚ฌํ•ญ: NETWORK_TAG_NAMES๋ฅผ ์ž‘์—…์— ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋Š” ์‹คํ–‰ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—… ์‹คํ–‰์—๋Š” network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • EGRESS_SETTING: ์ด๊ทธ๋ ˆ์Šค ์„ค์ • ๊ฐ’
      • all-traffic: ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก
      • private-ranges-only: VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†ก
    • IMAGE: ์ž‘์—… ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ URL
  3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud run jobs replace job.yaml

์ž‘์—…์ž ํ’€ ๋ฐฐํฌ

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

Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์ž ํ’€๊ณผ ํ•จ๊ป˜ ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud

Google Cloud CLI์—์„œ ์ปค๋„ฅํ„ฐ ์—†์ด Cloud Run ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. gcloud ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud components update
  2. ํ”„๋กœ์ ํŠธ์— Compute Engine API๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gcloud services enable compute.googleapis.com
    
  3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta run worker-pools deploy WORKER_POOL \
        --image=IMAGE_URL \
        --network=NETWORK \
        --subnet=SUBNET \
        --network-tags=NETWORK_TAG_NAMES \
        --vpc-egress=EGRESS_SETTING \
        --region=REGION

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

    • WORKER_POOL์„ Cloud Run ์ž‘์—…์ž ํ’€ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ž‘์—…์ž ํ’€ ์ด๋ฆ„์€ 49์ž(์˜๋ฌธ ๊ธฐ์ค€) ์ดํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ๋ฆฌ์ „ ๋ฐ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ์กด ์„œ๋น„์Šค ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ณต์œ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์ž ํ’€์ด ์•„์ง ์—†์œผ๋ฉด ๋ฐฐํฌ ์ค‘์— ์ด ๋ช…๋ น์–ด๋กœ ์ž‘์—…์ž ํ’€์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์™„์ „ํžˆ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ƒ๋žตํ•˜๋ฉด ์ž‘์—…์ž ํ’€ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    • IMAGE_URL์„ ์ž‘์—…์ž ํ’€์ด ํฌํ•จ๋œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค(์˜ˆ: us-docker.pkg.dev/cloudrun/container/worker-pool:latest).
    • ์„ ํƒ์‚ฌํ•ญ:NETWORK์„ VPC ๋„คํŠธ์›Œํฌ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท, ๋˜๋Š” ๋‘˜ ๋‹ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์„ ํƒ์‚ฌํ•ญ: SUBNET์„ ์„œ๋ธŒ๋„ท ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • (์„ ํƒ์‚ฌํ•ญ) NETWORK_TAG_NAMES๋ฅผ ์ž‘์—…์ž ํ’€๊ณผ ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์ž ํ’€ ๋ฒ„์ „์€ network-tag-2์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • EGRESS_SETTING: ์ด๊ทธ๋ ˆ์Šค ์„ค์ • ๊ฐ’
      • all-traffic: ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก
      • private-ranges-only: VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ๋งŒ ํŠธ๋ž˜ํ”ฝ ์ „์†ก
    • REGION์„ ์ž‘์—…์ž ํ’€์˜ ๋ฆฌ์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  4. ์ž‘์—…์ž ํ’€์ด VPC ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta run worker-pools describe WORKER_POOL \
        --region=REGION

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

    • WORKER_POOL์„ ์ž‘์—…์ž ํ’€ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    • REGION์„ ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ง€์ •ํ•œ ์ž‘์—…์ž ํ’€์˜ ๋ฆฌ์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    ์ถœ๋ ฅ์—๋Š” ๋„คํŠธ์›Œํฌ, ์„œ๋ธŒ๋„ท, ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์˜ ์ด๋ฆ„์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

์ด์ œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ Cloud Run ์ž‘์—…์ž ํ’€์—์„œ VPC ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋กœ ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ค‘ ์Šคํƒ ์„œ๋น„์Šค ๋ฐ ์ž‘์—… ์„ค์ •

Cloud Run ์„œ๋น„์Šค๋‚˜ ์ž‘์—…์— ๋‚ด๋ถ€ IPv6 ๋ฒ”์œ„๊ฐ€ ์žˆ๋Š” ์ด์ค‘ ์Šคํƒ ์„œ๋ธŒ๋„ท์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์ด์ค‘ ์Šคํƒ ์„œ๋น„์Šค ๋ฐ ์ž‘์—… ์„ค์ •์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์œผ๋กœ ์•ก์„ธ์Šค ์ œํ•œ

VPC ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ VPC ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ „๋žต ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ œํ•œ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋ธŒ๋„ท IP ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—…์„ ์ฐธ์กฐํ•˜๋Š” ์ธ๊ทธ๋ ˆ์Šค ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—…์„ ์ฐธ์กฐํ•˜๋Š” ์ด๊ทธ๋ ˆ์Šค ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ์ด๊ทธ๋ ˆ์Šค ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ๋Š” ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค ๊ณ„์ • ์„œ๋น„์Šค ID, ์„œ๋ธŒ๋„ท IP ๋ฒ”์œ„ ๋˜๋Š” ์—ฐ๊ฒฐ๋œ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋‚˜ ์ž‘์—…์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ทธ๋ ˆ์Šค์šฉ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ

์ด๊ทธ๋ ˆ์Šค ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ์„œ๋น„์Šค๋‚˜ ์ž‘์—…๊ณผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

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

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

  2. ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ์—ฐ๊ฒฐํ•  ์„œ๋น„์Šค๋‚˜ ์ž‘์—…์„ ํด๋ฆญํ•œ ํ›„ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ์ƒˆ ๋ฒ„์ „ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ๋ฅผ, ์ž‘์—…์˜ ๊ฒฝ์šฐ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํ‚น ํƒญ์„, ์ž‘์—…์˜ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์œ„ํ•ด VPC์— ์—ฐ๊ฒฐ ๋ฐ VPC๋กœ ์ง์ ‘ ํŠธ๋ž˜ํ”ฝ ์ „์†ก์„ ์„ ํƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  5. ์„œ๋ธŒ๋„ท ํ•„๋“œ์—์„œ ์„œ๋น„์Šค๊ฐ€ IP ์ฃผ์†Œ๋ฅผ ์ˆ˜์‹ ํ•  ์„œ๋ธŒ๋„ท์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—…์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  6. ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ ํ•„๋“œ์— ์„œ๋น„์Šค๋‚˜ ์ž‘์—…๊ณผ ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  7. ๋ฐฐํฌ ๋˜๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋˜๋ฏ€๋กœ ์„œ๋น„์Šค ๋ฒ„์ „๋งˆ๋‹ค ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ ์ง‘ํ•ฉ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์˜ ๊ฒฝ์šฐ ์ž‘์—… ์‹คํ–‰์ด ์ƒ์„ฑ๋  ๋•Œ ์ž‘์—…์— ํฌํ•จ๋œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์™€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ์ž‘์—… ์‹คํ–‰์— ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud

๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋ฅผ ์„œ๋น„์Šค๋‚˜ ์ž‘์—…๊ณผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด gcloud run deploy ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud run deploy SERVICE_JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --region=REGION

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • SERVICE_JOB_NAME์„ ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—…์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • IMAGE_URL์„ ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—…์˜ ์ด๋ฏธ์ง€ URL๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • NETWORK๋ฅผ VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • SUBNET์„ ์„œ๋ธŒ๋„ท ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. VPC ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋งŒ ์ง€์ •ํ•˜๋ฉด ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์— ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์ž‘์—… ๋˜๋Š” ์ž‘์—…์ž ํ’€์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • NETWORK_TAG_NAMES๋ฅผ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ ์ด๋ฆ„ ๋˜๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ ๋ชฉ๋ก์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • REGION: ๋ฆฌ์ „์˜ ์ด๋ฆ„

์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ง€์ •๋˜๋ฏ€๋กœ ์„œ๋น„์Šค ๋ฒ„์ „๋งˆ๋‹ค ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ ์ง‘ํ•ฉ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์˜ ๊ฒฝ์šฐ ์ž‘์—… ์‹คํ–‰์ด ์ƒ์„ฑ๋  ๋•Œ ์ž‘์—…์— ํฌํ•จ๋œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์™€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ์ž‘์—… ์‹คํ–‰์— ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Run ๋ฆฌ์†Œ์Šค ์—ฐ๊ฒฐ ํ•ด์ œ

๋ณด์œ ํ•œ Cloud Run ๋ฆฌ์†Œ์Šค์— ๋”ฐ๋ผ ๋‹ค์Œ ์„น์…˜ ์ค‘ ํ•˜๋‚˜์˜ ์•ˆ๋‚ด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์„œ๋น„์Šค ์—ฐ๊ฒฐ ํ•ด์ œ

์ฝ˜์†”

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

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

    2. ์‚ญ์ œํ•  ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•œ ํ›„ ์ƒˆ ๋ฒ„์ „ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. ๋„คํŠธ์›Œํ‚น ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    4. ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์œ„ํ•ด VPC์— ์—ฐ๊ฒฐ์„ ์„ ํƒ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.

    5. ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    6. ์„œ๋น„์Šค๊ฐ€ ๋” ์ด์ƒ VPC ๋„คํŠธ์›Œํฌ์— ์—†๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋„คํŠธ์›Œํ‚น ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋ฐ ์„œ๋ธŒ๋„ท์ด VPC ์นด๋“œ์— ๋” ์ด์ƒ ๋‚˜์—ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค๋ฅผ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ์‚ญ์ œํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋œ ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•œ ํ›„ ์ƒˆ ๋ฒ„์ „ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    2. ๋„คํŠธ์›Œํ‚น ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. ์„œ๋น„์Šค์™€ ๋” ์ด์ƒ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ์„ ํƒ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.

    4. ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
  • ์„œ๋น„์Šค๋ฅผ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network-tags

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • SERVICE_NAME: Cloud Run ์„œ๋น„์Šค์˜ ์ด๋ฆ„
    • REGION: Cloud Run ์„œ๋น„์Šค์˜ ๋ฆฌ์ „

YAML

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ์„œ๋น„์Šค์˜ YAML ๊ตฌ์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. service.yaml ํŒŒ์ผ์—์„œ ๋‹ค์Œ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      ๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      • NETWORK: VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„
      • SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„
      • (์„ ํƒ์‚ฌํ•ญ) NETWORK_TAG_NAMES: ์„œ๋น„์Šค์™€ ์—ฐ๊ฒฐํ•œ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„œ๋น„์Šค ๋ฒ„์ „์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

      gcloud run services replace service.yaml
  • ์„œ๋น„์Šค๋ฅผ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ์„œ๋น„์Šค์˜ YAML ๊ตฌ์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด network ๋ฐ subnetwork ๋ณ€์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘” ์ƒํƒœ๋กœ service.yaml ํŒŒ์ผ์˜ ์ฝ˜ํ…์ธ ์—์„œ tags ๋ณ€์ˆ˜๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      ๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      • NETWORK: VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„
      • SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„
    3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„œ๋น„์Šค ๋ฒ„์ „์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

      gcloud run services replace service.yaml

์ž‘์—… ์—ฐ๊ฒฐ ํ•ด์ œ

์ฝ˜์†”

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘์—…์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

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

    2. ์‚ญ์ œํ•  ์ž‘์—…์„ ํด๋ฆญํ•œ ํ›„ ์ƒˆ ๋ฒ„์ „ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. ์—ฐ๊ฒฐ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    4. ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์œ„ํ•ด VPC์— ์—ฐ๊ฒฐ์„ ์„ ํƒ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.

    5. ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    6. ์ž‘์—…์ด ๋” ์ด์ƒ VPC ๋„คํŠธ์›Œํฌ์— ์—†๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋ฐ ์„œ๋ธŒ๋„ท์ด VPC ์นด๋“œ์— ๋” ์ด์ƒ ๋‚˜์—ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ž‘์—…์„ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ์‚ญ์ œํ•  ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋œ ์ž‘์—…์„ ํด๋ฆญํ•œ ํ›„ ์ƒˆ ๋ฒ„์ „ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    2. ์—ฐ๊ฒฐ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. ๋” ์ด์ƒ ์ž‘์—…๊ณผ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ์„ ํƒ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.

    4. ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘์—…์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • ์ž‘์—…์„ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network-tags
      

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • JOB_NAME: Cloud Run ์ž‘์—…์˜ ์ด๋ฆ„
    • REGION: Cloud Run ์ž‘์—…์˜ ๋ฆฌ์ „

YAML

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘์—…์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ์ž‘์—…์˜ YAML ๊ตฌ์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. job.yaml ํŒŒ์ผ์—์„œ ๋‹ค์Œ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • NETWORK: VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„
      • SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„
      • (์„ ํƒ์‚ฌํ•ญ) NETWORK_TAG_NAMES๋ฅผ ์ž‘์—…๊ณผ ์—ฐ๊ฒฐํ•œ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—…์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

      gcloud run jobs replace job.yaml
  • ์ž‘์—…์„ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ์ž‘์—…์˜ YAML ๊ตฌ์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด network ๋ฐ subnetwork ๋ณ€์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘” ์ƒํƒœ๋กœ job.yaml ํŒŒ์ผ์˜ ์ฝ˜ํ…์ธ ์—์„œ tags ๋ณ€์ˆ˜๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • NETWORK: VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„
      • SUBNET: ์„œ๋ธŒ๋„ท ์ด๋ฆ„
    3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—…์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

      gcloud run jobs replace job.yaml

์ž‘์—…์ž ํ’€ ์—ฐ๊ฒฐ ํ•ด์ œ

gcloud

  • VPC ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘์—…์ž ํ’€์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta run worker-pools update WORKER_POOL --region=REGION \
    --clear-network
  • ์ž‘์—…์ž ํ’€์„ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ ํƒœ๊ทธ๋งŒ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta run worker-pools update WORKER_POOL --region=REGION \
    --clear-network-tags

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • WORKER_POOL: Cloud Run ์ž‘์—…์ž ํ’€์˜ ์ด๋ฆ„
    • REGION: Cloud Run ์ž‘์—…์ž ํ’€์˜ ๋ฆฌ์ „

๋ฌธ์ œ ํ•ด๊ฒฐ

์„œ๋ธŒ๋„ท์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Œ

์„œ๋ธŒ๋„ท์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋จผ์ € ์„œ๋ธŒ๋„ท์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Cloud Run์ด ์„œ๋ธŒ๋„ท์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋ธŒ๋„ท์„ ์‚ญ์ œํ•˜๊ธฐ ์ „์— VPC ๋„คํŠธ์›Œํฌ์—์„œ Cloud Run ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—…์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค ์„œ๋ธŒ๋„ท์— IPv4 ์ฃผ์†Œ ๋ถ€์กฑ

๋ฐฐํฌ๋ฅผ ์‹œ๋„ํ•  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Instance failed to start because of insufficient free IP addresses in the
subnetwork SUBNET_ID when attempting to create an address in the
subnetwork. Please consider moving to a subnetwork with more available IP
addresses.

VPC ๋„คํŠธ์›Œํฌ์˜ ์„œ๋ธŒ๋„ท์— IPv4 ์ฃผ์†Œ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด Cloud Logging์— ๋กœ๊น…๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ IPv4 ์ฃผ์†Œ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์งˆ ๋•Œ๊นŒ์ง€ Cloud Run์—์„œ ๋” ์ด์ƒ ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค ๋˜๋Š” ์ž‘์—… ํƒœ์Šคํฌ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด IP ์ฃผ์†Œ ์†Œ์ง„ ์ „๋žต์„ ๋”ฐ๋ฅด์„ธ์š”.

ํ• ๋‹น๋œ IP ์ฃผ์†Œ ๋ณด๊ธฐ

Cloud Run์ด ํ• ๋‹นํ•œ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด Google Cloud ์ฝ˜์†”์˜ IP ์ฃผ์†Œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ Google Cloud CLI์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud compute addresses list

์ปค์Šคํ…€ MTU ๊ด€๋ จ ๋ฌธ์ œ

์ปค์Šคํ…€ MTU์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Cloud Run์˜ ๊ธฐ๋ณธ MTU ์„ค์ •์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.