Vertex AI์—์„œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ ์„ค์ •

์ด ๋ฌธ์„œ์—์„œ๋Š” ๋จผ์ € ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋กœ ๋ฐฐํฌ๋œ Vertex AI ์„œ๋น„์Šค์˜ ๋ฒ”์œ„๋ฅผ ํ™•์žฅํ•˜๋Š” ์˜ต์…˜์„ ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ˆ์ฆˆ์— ๋” ์ ํ•ฉํ•œ ๊ฒฝ์šฐ ์„œ๋น„์Šค๋ฅผ Private Service Connect ์—”๋“œํฌ์ธํŠธ์— ๋ฐฐํฌํ•˜๋Š” ์ด์œ ๋ฅผ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋Š” ๊ฐœ๋ฐœ์ž์™€ ํ”ผ์–ด๋ง๋œ ๊ด€๋ฆฌํ˜• ๋„คํŠธ์›Œํฌ์—์„œ Vertex AI ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋ฏ€๋กœ ์ด ๋ฌธ์„œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ์ฝ๊ธฐ ์ „์— VPC ํ”ผ์–ด๋ง์˜ ์ž๋ฃŒ๋ฅผ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ”ผ์–ด๋ง ๊ตฌ์„ฑ์€ ํ”ผ์–ด๋ง๋œ Vertex AI ๋„คํŠธ์›Œํฌ๋งŒ ๋กœ์ปฌ ์„œ๋ธŒ๋„ท์˜ ์—”๋“œํฌ์ธํŠธ์— ๋„๋‹ฌํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ๊ฒฝ๋กœ๋ฅผ ๋‚ด๋ณด๋‚ด ์ƒ์‚ฐ์ž ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ์— ์ •์  ๋˜๋Š” ๋™์  ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „ํ™˜ ํ”ผ์–ด๋ง์€ ์ง€์›๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ '์ปค์Šคํ…€ ๊ฒฝ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ'๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋”๋ผ๋„ Vertex AI์—์„œ ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ๋กœ ์ง์ ‘ ํ”ผ์–ด๋ง๋œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์˜ ์—”๋“œํฌ์ธํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ‘œ์‹œ๋œ ์˜ˆ์‹œ์—์„œ ํŒจํ‚ท์€ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ #1์„ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ #2๋Š” ์ˆœํšŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ „ํ™˜ ํ”ผ์–ด๋ง ์‚ฌ์šฉ

Vertex AI๊ฐ€ ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ #2์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ #2๋ฅผ VPN #2๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ „ํ™˜ ํ”ผ์–ด๋ง์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ #1์—์„œ ์ปค์Šคํ…€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด Vertex AI ๋„คํŠธ์›Œํฌ์˜ IP ํŒจํ‚ท์ด ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ #2์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ #2์˜ ์‘๋‹ต ํŒจํ‚ท์„ Vertex AI ๋„คํŠธ์›Œํฌ๋กœ ๋‹ค์‹œ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด ๋ฐ˜ํ™˜ ๊ฒฝ๋กœ๋„ ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ #2์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. VPN ๊ฒฝ๋กœ๋Š” Cloud Router์—์„œ ๊ฒฝ๊ณ„ ๊ฒŒ์ดํŠธ์›จ์ด ํ”„๋กœํ† ์ฝœ(BGP)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตํ™˜๋˜๋ฉฐ, ์‚ฌ์šฉ์ž #1์˜ BGP ๊ตฌ์„ฑ์„ ๋งž์ถค์„ค์ •ํ•˜์—ฌ 10.1.0.0/16์˜ Vertex AI ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ํ”ผ์–ด ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํฌ #2์— ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ์™€ Vertex AI ๋„คํŠธ์›Œํฌ๊ฐ€ ์„œ๋กœ์˜ ๊ฒฝ๋กœ๋ฅผ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก VPN #1 BGP ๊ตฌ์„ฑ์˜ ์–‘์ชฝ์„ ๋ชจ๋‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vertex AI ๋„คํŠธ์›Œํฌ์—์„œ ์ „๋‹ฌ ๊ฒฝ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•˜๋„๋ก ์‹œ๋„ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋ชจ๋“  ๋‹จ์ผ ๋„คํŠธ์›Œํฌ์— ๊ด€ํ•œ ์ˆœ์ฐจ์  ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์„ ํ†ตํ•œ ์‘๋‹ต ํŒจํ‚ท์„ ์ „์†กํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ „๋‹ฌ ์‹œ๋„๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Vertex AI์—์„œ ์ธํ„ฐ๋„ท์œผ๋กœ ์—ฐ๊ฒฐ ์„ค์ •

์›Œํฌ๋กœ๋“œ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ง€์ •๋œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์—†์œผ๋ฉด ์›Œํฌ๋กœ๋“œ๋Š” ๋ณ„๋„์˜ Google ๊ด€๋ฆฌ ์ œ์ž‘์ž ํ”„๋กœ์ ํŠธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ๊ฐ€ ์ง€์ •๋˜๋ฉด ์›Œํฌ๋กœ๋“œ๋Š” ์†Œ๋น„์ž ํ”„๋กœ์ ํŠธ์™€ ํ”ผ์–ด๋ง๋œ ์ œ์ž‘์ž ํ”„๋กœ์ ํŠธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Vertex AI ๋„คํŠธ์›Œํฌ๋Š” ์ธํ„ฐ๋„ท์— ๋Œ€ํ•œ ์ž์ฒด ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ง€๊ณ , ์ƒ์‚ฐ์ž ๋„คํŠธ์›Œํฌ๋Š” ์ธํ„ฐ๋„ท์— ๋Œ€ํ•œ ์ž์ฒด ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

์ƒ์‚ฐ์ž ๋„คํŠธ์›Œํฌ์—์„œ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์„ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ํ”ผ์–ด๋ง์— VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” VPC ์„œ๋น„์Šค ์ œ์–ด์™€๋Š” ๋‹ค๋ฅธ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.

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

  • ๊ธฐ๋ณธ ์ธํ„ฐ๋„ท ๊ฒฝ๋กœ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ๋‹ค์Œ ํ™‰์„ ์‚ฌ์šฉํ•˜์—ฌ 199.36.153.4/30 ๋Œ€์ƒ์˜ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ 4๊ฐœ์˜ ์ฃผ์†Œ ์ค‘ ํ•˜๋‚˜์— ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ๋ ˆ์ฝ”๋“œ๋กœ *.googleapis.com์— ๋Œ€ํ•œ Cloud DNS ๊ด€๋ฆฌํ˜• ๋น„๊ณต๊ฐœ ์˜์—ญ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • servicenetworking VPC ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉํ•  ์˜์—ญ์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ณ€๊ฒฝ์ด ์ ์šฉ๋˜๋ฉด ๋„คํŠธ์›Œํฌ์—์„œ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋ฅผ ๋‚ด๋ณด๋‚ด ์ธํ„ฐ๋„ท์— ๋Œ€ํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์ด VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋ฉด Vertex AI์—์„œ ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์— ํ•„์š”ํ•œ ์ •์ฑ…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ”ผ์–ด๋ง์˜ VPC ์„œ๋น„์Šค ์ œ์–ด ์ƒํƒœ๋ฅผ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud services vpc-peerings get-vpc-service-controls \
  --network YOUR_NETWORK

๊ทธ๋Ÿฌ๋ฉด ๊ตฌ์„ฑ์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ enabled: true๊ฐ€ ๋ฐ˜ํ™˜๋˜๊ณ , ์‚ฌ์šฉ ์ค‘์ง€๋˜์—ˆ์œผ๋ฉด ๋นˆ ๋ชฉ๋ก({})์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด ์‚ฌ์šฉ

๋„คํŠธ์›Œํฌ๊ฐ€ ์›Œํฌ๋กœ๋“œ์— ์ง€์ •๋˜๊ณ  VPC ์„œ๋น„์Šค ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ์›Œํฌ๋กœ๋“œ๋Š” ์†Œ๋น„์ž ํ”„๋กœ์ ํŠธ์— ํ”ผ์–ด๋ง๋˜๊ณ  ์†Œ๋น„์ž ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•œ ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ์ œ์ž‘์ž ๋„คํŠธ์›Œํฌ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ •์ฑ…์ด ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๋ฉด ์›Œํฌ๋กœ๋“œ๋„ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด์ „ ์„น์…˜์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ์˜ ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์ด VPC ๋„คํŠธ์›Œํฌ์˜ NAT ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Vertex AI์—์„œ ์—ฐ๊ฒฐ ์„ค์ •

Vertex AI์˜ ์•„์›ƒ๋ฐ”์šด๋“œ IP๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ํŒจํ„ด์€ ์›Œํฌ๋กœ๋“œ์˜ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” ์›น ํ”„๋ก์‹œ๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์˜ ๊ทœ์ • ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์„œ๋“œ ํŒŒํ‹ฐ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ ๋ถˆ๋งŒ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ํ”„๋ก์‹œ์˜ ์ธ์ฆ์„œ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ํ”„๋ก์‹œ๋Š” Vertex AI SDK ๋ฐ API๊ฐ€ ์˜ˆ์ƒํ•˜๋Š” ๊ฒƒ๊ณผ ๊ต์ฐจํ•˜๋Š” ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ ๋ชฉ๋ก์„ ์ œ์•ˆํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Cloud ์—์„œ๋Š” ์ด ํŒจํ„ด์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ธ์Šคํ„ด์Šค ๋ฐฐํฌ ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์— ์‚ฌ์šฉํ•˜๋„๋ก ์›Œํฌ๋กœ๋“œ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ์€ ํ”„๋ก์‹œ์˜ ์†Œ์Šค IP ์ฃผ์†Œ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

KFP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ์š”์†Œ ์ด๋ฏธ์ง€์— ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์•˜์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋ก์‹œ๋ฅผ ์ง€์ •ํ–ˆ์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํŒŒ์ดํ”„๋ผ์ธ์ด ์ด๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

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

Could not find a version that satisfies the requirement kfp==2.7.0

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์ฝ”๋“œ ์‹คํ–‰ ์ „ KFP๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์œผ๋ฉด KFP๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

KFP๋ฅผ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ด๋ฅผ ์ €์žฅ์†Œ์— ํ‘ธ์‹œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ Dockerfile ์˜ˆ์‹œ๋Š” KFP๋ฅผ python:3.8 ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

FROM python:3.8
RUN pip install kfp==2.7.0

๊ทธ๋Ÿฐ ํ›„ ์ด ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก @component ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@component(base_image="$PATH_TO_YOUR_REPOSITORY:YOUR_IMAGE")

ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ”„๋ก์‹œ๋ฅผ ํ†ต๊ณผํ•˜์—ฌ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋Š” https://10.10.10.10:443์—์„œ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ numpy๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

import subprocess
subprocess.call(['pip', 'install', '--proxy', 'https://10.10.10.10:443', 'numpy'])`

API ์•ก์„ธ์Šค ํ—ˆ์šฉ ๋ชฉ๋ก ์„ค์ •

Vertex AI ์›Œํฌ๋กœ๋“œ์™€ Google API ๊ฐ„์˜ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฝ์šฐ ์›Œํฌ๋กœ๋“œ๋กœ๋ถ€ํ„ฐ Google API์—์„œ ์‚ฌ์šฉํ•˜๋Š” IP ๋ฒ”์œ„๋กœ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ œ๊ณต๋œ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์˜ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Private Service Connect๋ฅผ ํ†ตํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์—ฐ๊ฒฐ ์ œ๊ณต

๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Vertex AI ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ œํ•œ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • VPC ์ฃผ์†Œ ์ง€์ •๊ณผ์˜ ์ถฉ๋Œ์„ ํ”ผํ•˜๋ฉด์„œ ์›Œํฌ๋กœ๋“œ๋ณ„๋กœ ๋Œ€๊ทœ๋ชจ ๋น„๊ณต๊ฐœ IP ์ฃผ์†Œ ํ’€์„ ์˜ˆ์•ฝํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์›Œํฌ๋กœ๋“œ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ ์ดˆ๊ธฐ ๊ตฌ์„ฑ ํ›„์—๋„ RANGES_EXHAUSTED๊ฐ€ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํ‚น ๋ฐฐํฌ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ์˜ ๋ณต์žก์„ฑ:
    • ์ „์ด ํ”ผ์–ด๋ง์€ ์ง€์›๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ VPC ๋„คํŠธ์›Œํฌ์— ํ”ผ์–ด๋ง๋œ ์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ ๊ฐ„์— ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด ๋ณต์žกํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํ”„๋กœ๋“€์„œ ํ™˜๊ฒฝ์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์ƒํƒœ๋Š” ์ฆ‰์‹œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…Œ๋„ŒํŠธ ํ”„๋กœ์ ํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  Vertex AI ์›Œํฌ๋กœ๋“œ๊ฐ€ ์‹ค์ œ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€๊ฒŸ์„ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํŒจํ„ด์œผ๋กœ๋Š” ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ Private Service Connect ์—”๋“œํฌ์ธํŠธ์— ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด ์„œ๋น„์Šค๋Š” VPC ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ๋‹จ์ผ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ž์ฒด ์‚ฌ์šฉ์„ ์œ„ํ•ด ๋น„๊ณต๊ฐœ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋ณด์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Vertex AI ์„œ๋น„์Šค IP๋Š” ์ž์ฒด ๋„คํŠธ์›Œํฌ์— ์žˆ์œผ๋ฏ€๋กœ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•˜์—ฌ ํ™˜๊ฒฝ์˜ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ์„ฑ์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.