์ด ๋ฌธ์์์๋ ๋จผ์ ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค๋ก ๋ฐฐํฌ๋ 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๋ ์์ฒด ๋คํธ์ํฌ์ ์์ผ๋ฏ๋ก ์ฐ๊ฒฐ ํ ์คํธ๋ฅผ ๋ง๋ค๊ณ ์คํํ์ฌ ํ๊ฒฝ์ ๋ค๋ฅธ ์์น์์ ์ฐ๊ฒฐ ๊ฐ๋ฅ์ฑ์ ํ๊ฐํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.