์ด ํ์ด์ง์์๋ Vertex AI Workbench ์ฌ์ฉ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋์์ด ๋ ์ ์๋ ๋ฌธ์ ํด๊ฒฐ ๋จ๊ณ๋ฅผ ์ค๋ช ํฉ๋๋ค.
Vertex AI์ ๋ค๋ฅธ ๊ตฌ์ฑ์์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋์์ด ํ์ํ๋ฉด Vertex AI ๋ฌธ์ ํด๊ฒฐ๋ ์ฐธ์กฐํ์ธ์.
์ด ํ์ด์ง์ ์ฝํ ์ธ ๋ฅผ ํํฐ๋งํ๋ ค๋ฉด ์ฃผ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ฉํ ์ ์ฐจ
์ด ์น์ ์์๋ ์ ์ฉํ ์ ์ฐจ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
SSH๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐ
Cloud Shell์์ ๋๋ Google Cloud CLI๊ฐ ์ค์น๋ ํ๊ฒฝ์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ssh๋ฅผ ํตํด ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
gcloud compute ssh --project PROJECT_ID \
--zone ZONE \
INSTANCE_NAME -- -L 8080:localhost:8080
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ํ๋ก์ ํธ IDZONE
: ์ธ์คํด์ค๊ฐ ์๋ Google Cloud ์์ญINSTANCE_NAME
: ์ธ์คํด์ค์ ์ด๋ฆ
์ธ์คํด์ค์ Compute Engine ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ์ด๊ณ SSH ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์๋ ์์ต๋๋ค.
์ญ๋ฐฉํฅ ํ๋ก์ ์๋ฒ์ ๋ค์ ๋ฑ๋ก
์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค๋ฅผ ๋ด๋ถ ์ญ๋ฐฉํฅ ํ๋ก์ ์๋ฒ์ ๋ค์ ๋ฑ๋กํ๋ ค๋ฉด ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ํ์ด์ง์์ VM์ ์ค์งํ๊ณ ์์ํ๊ฑฐ๋ ssh๋ฅผ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
cd /opt/deeplearning/bin sudo ./attempt-register-vm-on-proxy.sh
Docker ์๋น์ค ์ํ ํ์ธ
Docker ์๋น์ค ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉด ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo service docker status
์ญ๋ฐฉํฅ ํ๋ก์ ์์ด์ ํธ๊ฐ ์คํ ์ค์ธ์ง ํ์ธ
๋ ธํธ๋ถ ์ญ๋ฐฉํฅ ์์ด์ ํธ๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ๋ ค๋ฉด ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
# Confirm Inverting Proxy agent Docker container is running (proxy-agent) sudo docker ps # Verify State.Status is running and State.Running is true. sudo docker inspect proxy-agent # Grab logs sudo docker logs proxy-agent
Jupyter ์๋น์ค ์ํ ํ์ธ ๋ฐ ๋ก๊ทธ ์์ง
Jupyter ์๋น์ค ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉด ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo service jupyter status
Jupyter ์๋น์ค ๋ก๊ทธ๋ฅผ ์์งํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.
sudo journalctl -u jupyter.service --no-pager
Jupyter ๋ด๋ถ API๊ฐ ํ์ฑ ์ํ์ธ์ง ํ์ธ
Jupyter API๋ ํญ์ ํฌํธ 8080์์ ์คํ๋์ด์ผ ํฉ๋๋ค. ์ธ์คํด์ค์ syslog์์ ๋ค์๊ณผ ์ ์ฌํ ํญ๋ชฉ์ด ์๋์ง ํ์ธํ์ฌ ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Jupyter Server ... running at: http://localhost:8080
๋ํ Jupyter ๋ด๋ถ API๊ฐ ํ์ฑ ์ํ์ธ์ง ํ์ธํ๋ ค๋ฉด ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
curl http://127.0.0.1:8080/api/kernelspecs
์์ฒญ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ API๊ฐ ์๋ตํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํ ์๋ ์์ต๋๋ค.
time curl -V http://127.0.0.1:8080/api/status
time curl -V http://127.0.0.1:8080/api/kernels
time curl -V http://127.0.0.1:8080/api/connections
Vertex AI Workbench ์ธ์คํด์ค์์ ์ด๋ฌํ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด JupyterLab์ ์ด๊ณ ์ ํฐ๋ฏธ๋์ ๋ง๋ญ๋๋ค.
Docker ์๋น์ค ๋ค์ ์์
Docker ์๋น์ค๋ฅผ ๋ค์ ์์ํ๋ ค๋ฉด ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ํ์ด์ง์์ VM์ ์ค์งํ๊ณ ์์ํ๊ฑฐ๋ ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo service docker restart
์ญ๋ฐฉํฅ ํ๋ก์ ์์ด์ ํธ ๋ค์ ์์
์ญ๋ฐฉํฅ ํ๋ก์ ์์ด์ ํธ๋ฅผ ๋ค์ ์์ํ๋ ค๋ฉด ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ํ์ด์ง์์ VM์ ์ค์งํ๊ณ ์์ํ๊ฑฐ๋ ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo docker restart proxy-agent
Jupyter ์๋น์ค ๋ค์ ์์
Jupyter ์๋น์ค๋ฅผ ๋ค์ ์์ํ๋ ค๋ฉด ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ํ์ด์ง์์ VM์ ์ค์งํ๊ณ ์์ํ๊ฑฐ๋ ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo service jupyter restart
Notebooks ์์ง ์์ด์ ํธ ๋ค์ ์์
Notebooks ์์ง ์์ด์ ํธ ์๋น์ค๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ Vertex AI Workbench ์ธ์คํด์ค์ ํต์ฌ ์๋น์ค ์ํ๋ฅผ ํ์ธํ๋ Python ํ๋ก์ธ์ค๋ฅผ ์คํํฉ๋๋ค.
Notebooks ์์ง ์์ด์ ํธ ์๋น์ค๋ฅผ ๋ค์ ์์ํ๋ ค๋ฉด Google Cloud ์ฝ์์์ VM์ ์ค์งํ๊ณ ์์ํ๊ฑฐ๋ ssh๋ฅผ ์ฌ์ฉํ์ฌ Vertex AI Workbench ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
sudo systemctl stop notebooks-collection-agent.service
๋ค์์ ์ํํฉ๋๋ค.
sudo systemctl start notebooks-collection-agent.service
Vertex AI Workbench ์ธ์คํด์ค์์ ์ด๋ฌํ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด JupyterLab์ ์ด๊ณ ์ ํฐ๋ฏธ๋์ ๋ง๋ญ๋๋ค.
Notebooks ์์ง ์์ด์ ํธ ์คํฌ๋ฆฝํธ ์์
์คํฌ๋ฆฝํธ์ ์ก์ธ์คํ๊ณ ์์ ํ๋ ค๋ฉด ์ธ์คํด์ค์์ ํฐ๋ฏธ๋์ ์ด๊ฑฐ๋ ssh๋ฅผ ์ฌ์ฉํ์ฌ Vertex AI Workbench ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
nano /opt/deeplearning/bin/notebooks_collection_agent.py
ํ์ผ์ ์์ ํ ํ์๋ ์ ์ฅํด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ Notebooks ์์ง ์์ด์ ํธ ์๋น์ค๋ฅผ ๋ค์ ์์ํด์ผ ํฉ๋๋ค.
์ธ์คํด์ค์์ ํ์ํ DNS ๋๋ฉ์ธ์ ํ์ธํ ์ ์๋์ง ํ์ธ
์ธ์คํด์ค์์ ํ์ํ DNS ๋๋ฉ์ธ์ ํ์ธํ ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com
๋๋
curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?
์ธ์คํด์ค์ Dataproc์ด ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ ๋ค์์ ์คํํ์ฌ ์ธ์คํด์ค์์ *.kernels.googleusercontent.com
์ ํ์ธํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .
Vertex AI Workbench ์ธ์คํด์ค์์ ์ด๋ฌํ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด JupyterLab์ ์ด๊ณ ์ ํฐ๋ฏธ๋์ ๋ง๋ญ๋๋ค.
์ธ์คํด์ค์ ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ฌ๋ณธ ๋ง๋ค๊ธฐ
์ธ์คํด์ค์ ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ฌ๋ณธ์ Cloud Storage์ ์ ์ฅํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
Cloud Storage ๋ฒํท ๋ง๋ค๊ธฐ(์ ํ์ฌํญ)
์ธ์คํด์ค๊ฐ ์๋ ๋์ผํ ํ๋ก์ ํธ์์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ Cloud Storage ๋ฒํท์ ๋ง๋ญ๋๋ค. Cloud Storage ๋ฒํท์ด ์ด๋ฏธ ์์ผ๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.
-
Create a Cloud Storage bucket:
Replacegcloud storage buckets create gs://BUCKET_NAME
BUCKET_NAME
with a bucket name that meets the bucket naming requirements.
์ฌ์ฉ์ ๋ฐ์ดํฐ ๋ณต์ฌ
์ธ์คํด์ค์ JupyterLab ์ธํฐํ์ด์ค์์ ํ์ผ > ์๋ก ๋ง๋ค๊ธฐ > ํฐ๋ฏธ๋์ ์ ํํ์ฌ ํฐ๋ฏธ๋ ์ฐฝ์ ์ฝ๋๋ค. ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ ธํธ๋ถ ์ธ์คํด์ค์ ๊ฒฝ์ฐ ๋์ SSH๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค ํฐ๋ฏธ๋์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ Cloud Storage ๋ฒํท์ ๋ณต์ฌํฉ๋๋ค. ๋ค์ ์์ ๋ช ๋ น์ด๋ ์ธ์คํด์ค์
/home/jupyter/
๋๋ ํฐ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ์ Cloud Storage ๋ฒํท์ ๋๋ ํฐ๋ฆฌ์ ๋ณต์ฌํฉ๋๋ค.gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
๋ค์์ ๋ฐ๊ฟ๋๋ค.
BUCKET_NAME
: Cloud Storage ๋ฒํท ์ด๋ฆPATH
: ํ์ผ์ ๋ณต์ฌํ ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ๋ก(์:/copy/jupyter/
)
gcpdiag๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๋น์ ๋ ์ค์ ์ค๋จ๋ ์ธ์คํด์ค ์กฐ์ฌ
gcpdiag
๋ ์คํ์์ค ๋๊ตฌ์
๋๋ค. ๊ณต์์ ์ผ๋ก ์ง์๋๋ Google Cloud ์ ํ์ด ์๋๋๋ค.
gcpdiag
๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ Google Cloudํ๋ก์ ํธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub์ gcpdiag ํ๋ก์ ํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
gcpdiag
๋ฐ๋ถ์์๋ ๋ค์ ์์ญ์ ํฌํจํ์ฌ Vertex AI Workbench ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋ ์ํ์์ ์ค๋จ๋๋ ์ ์ฌ์ ์์ธ์ ์กฐ์ฌํฉ๋๋ค.
- ์ํ: ํ์ฌ ์ธ์คํด์ค ์ํ๋ฅผ ํ์ธํ์ฌ ํ๋ก๋น์ ๋ ์ค์ ์ค๋จ๋๊ฑฐ๋ ํ์ฑ ์ํ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
- ์ธ์คํด์ค์ Compute Engine VM ๋ถํ
๋์คํฌ ์ด๋ฏธ์ง: ์ธ์คํด์ค๊ฐ ์ปค์คํ
์ปจํ
์ด๋, ๊ณต์
workbench-instances
์ด๋ฏธ์ง, Deep Learning VM ์ด๋ฏธ์ง ๋๋ ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋ ์ํ์์ ์ค๋จ๋ ์ ์๋ ์ง์๋์ง ์๋ ์ด๋ฏธ์ง๋ก ์์ฑ๋์๋์ง ํ์ธํฉ๋๋ค. - ์ปค์คํ ์คํฌ๋ฆฝํธ: ๊ธฐ๋ณธ Jupyter ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋ ์ํ์์ ์ค๋จ๋ ์ ์๋ ์ข ์ ํญ๋ชฉ์ ์ค๋จํ๋ ์ปค์คํ ์์ ์คํฌ๋ฆฝํธ ๋๋ ์์ ํ ์คํฌ๋ฆฝํธ๋ฅผ ์ธ์คํด์ค์์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
- ํ๊ฒฝ ๋ฒ์ : ์ ๊ทธ๋ ์ด๋ ๊ฐ๋ฅ์ฑ์ ํ์ธํ์ฌ ์ธ์คํด์ค์์ ์ต์ ํ๊ฒฝ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค. ์ด์ ๋ฒ์ ์์๋ ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋ ์ํ์์ ์ค๋จ๋ ์ ์์ต๋๋ค.
- ์ธ์คํด์ค์ Compute Engine VM ์ฑ๋ฅ: ํ์ฌ VM ์ฑ๋ฅ์ ๊ฒ์ฌํ์ฌ ๋์ CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋๋ ๋์คํฌ ๊ณต๊ฐ ๋ฌธ์ ๋ก ์ธํด ์ ์์ ์ธ ์์ ์ด ์ค๋จ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค.
- ์ธ์คํด์ค์ Compute Engine ์ง๋ ฌ ํฌํธ ๋๋ ์์คํ
๋ก๊น
: ์ธ์คํด์ค์ ์ง๋ ฌ ํฌํธ ๋ก๊ทธ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ด ๋ก๊ทธ๋ Jupyter๊ฐ ํฌํธ
127.0.0.1:8080
์์ ์คํ ์ค์ธ์ง ํ์ธํ๊ธฐ ์ํด ๋ถ์๋ฉ๋๋ค. - ์ธ์คํด์ค์ Compute Engine SSH ๋ฐ ํฐ๋ฏธ๋ ์ก์ธ์ค: ์ฌ์ฉ์๊ฐ SSH๋ฅผ ํตํด ํฐ๋ฏธ๋์ ์ด์ด 'home/jupyter'์ ๊ณต๊ฐ ์ฌ์ฉ๋์ด 85% ๋ฏธ๋ง์ธ์ง ํ์ธํ ์ ์๋๋ก ์ธ์คํด์ค์ Compute Engine VM์ด ์คํ ์ค์ธ์ง ํ์ธํฉ๋๋ค. ์ฌ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋ ์ํ์์ ์ค๋จ๋ ์ ์์ต๋๋ค.
- ์ธ๋ถ IP๊ฐ ์ฌ์ฉ ์ค์ง๋จ: ์ธ๋ถ IP ์ก์ธ์ค๊ฐ ์ฌ์ฉ ์ค์ง๋์๋์ง ํ์ธํฉ๋๋ค. ์๋ชป๋ ๋คํธ์ํน ๊ตฌ์ฑ์ผ๋ก ์ธํด ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋ ์ํ์์ ์ค๋จ๋ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์
- ๋ค์ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๊ณ ๋ณต์ฌํฉ๋๋ค.
- Google Cloud ์ฝ์์ ์ด๊ณ Cloud Shell์ ํ์ฑํํฉ๋๋ค. Cloud ์ฝ์ ์ด๊ธฐ
- ๋ณต์ฌํ ๋ช ๋ น์ด๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.
gcpdiag
๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉดgcpdiag
Docker ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ ํ ์ง๋จ ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค. ํด๋นํ๋ ๊ฒฝ์ฐ ์ถ๋ ฅ ์๋ด์ ๋ฐ๋ผ ์คํจํ ๊ฒ์ฌ๋ฅผ ์์ ํฉ๋๋ค.
gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
--parameter project_id=PROJECT_ID \
--parameter instance_name=INSTANCE_NAME \
--parameter zone=ZONE
Docker
Docker ์ปจํ
์ด๋์์ gcpdiag
๋ฅผ ์์ํ๋ ๋ํผ๋ฅผ ์ฌ์ฉํ์ฌ gcpdiag
๋ฅผ ์คํํ ์ ์์ต๋๋ค. Docker ๋๋ Podman์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
- ๋ก์ปฌ ์ํฌ์คํ
์ด์
์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ๋ณต์ฌํ๊ณ ์คํํฉ๋๋ค.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
-
gcpdiag
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค../gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \ --parameter project_id=PROJECT_ID \ --parameter instance_name=INSTANCE_NAME \ --parameter zone=ZONE
์ด ๋ฐ๋ถ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋งค๊ฐ๋ณ์๋ฅผ ๋ด ๋๋ค.
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ ID์ ๋๋ค.
- INSTANCE_NAME: ํ๋ก์ ํธ ๋ด ๋์ Vertex AI Workbench ์ธ์คํด์ค์ ์ด๋ฆ์ ๋๋ค.
- ZONE: ๋์ Vertex AI Workbench ์ธ์คํด์ค๊ฐ ์๋ ์์ญ์ ๋๋ค.
์ ์ฉํ ํ๋๊ทธ:
--universe-domain
: ํด๋น๋๋ ๊ฒฝ์ฐ ๋ฆฌ์์ค๋ฅผ ํธ์คํ ํ๋ ์ ๋ขฐํ ์ ์๋ ํํธ๋ ์ฃผ๊ถ ํด๋ผ์ฐ๋ ๋๋ฉ์ธ--parameter
๋๋-p
: ๋ฐ๋ถ ํ๋ผ๋ฏธํฐ
๋ชจ๋ gcpdiag
๋๊ตฌ ํ๋๊ทธ์ ๋ชฉ๋ก๊ณผ ์ค๋ช
์ gcpdiag
์ฌ์ฉ ์๋ด๋ฅผ ์ฐธ์กฐํ์ธ์.
Vertex AI์์ ์๋น์ค ๊ณ์ ์ญํ ์ ์ฌ์ฉํ ๋ ๊ถํ ์ค๋ฅ ๋ฐ์
๋ฌธ์
Vertex AI์์ ์๋น์ค ๊ณ์ ์ญํ ์ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ ๊ถํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด๋ฌํ ์ค๋ฅ๋ Cloud Logging์ ์ ํ ๊ตฌ์ฑ์์ ๋ก๊ทธ๋ ๊ฐ์ฌ ๋ก๊ทธ์ ํ์๋ ์ ์์ต๋๋ค. ์ํฅ์ ๋ฐ๋ ํ๋ก์ ํธ์ ์กฐํฉ์ผ๋ก ํ์๋ ์๋ ์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ ๋ค์ ์ค ํ๋ ๋๋ ๋ ๋ค๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค.
Service Account User
์ญํ ์ ์ฌ์ฉํด์ผ ํ ๋Service Account Token Creator
์ญํ ์ ์ฌ์ฉํ๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ. ์ด๋ฌํ ์ญํ ์ ์๋น์ค ๊ณ์ ์ ์๋ก ๋ค๋ฅธ ๊ถํ์ ๋ถ์ฌํ๋ฉฐ ์ํธ ๊ตํ๋ ์ ์์ต๋๋ค.Service Account Token Creator
๋ฐService Account User
์ญํ ์ ์ฐจ์ด์ ์ ์๋น์ค ๊ณ์ ์ญํ ์ ์ฐธ์กฐํ์ธ์.๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฉ๋์ง ์๋ ์ฌ๋ฌ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ๊ถํ์ ๋ถ์ฌํ์ต๋๋ค.
ํด๊ฒฐ์ฑ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์ ์ค ํ๋ ์ด์์ ์ฌ์ฉํด ๋ณด์ธ์.
Service Account Token Creator
๋๋Service Account User
์ญํ ์ด ํ์ํ์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ์ค์ธ Vertex AI ์๋น์ค ๋ฐ ์ฌ์ฉ ์ค์ธ ๊ธฐํ ์ ํ ํตํฉ์ ๋ํ IAM ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.์ฌ๋ฌ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ๊ถํ์ ๋ถ์ฌํ ๊ฒฝ์ฐ
iam.disableCrossProjectServiceAccountUsage
๊ฐ ์ ์ฉ๋์ง ์๋์ง ํ์ธํ์ฌ ํ๋ก์ ํธ ๊ฐ์ ์ฐ๊ฒฐํ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.iam.disableCrossProjectServiceAccountUsage
๊ฐ ์ ์ฉ๋์ง ์๊ฒ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=PROJECT_ID