이 페이지에서는 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 Collection Agent 서비스를 다시 시작하려면 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을 열고 새 터미널을 만듭니다.
노트북 수집 에이전트 스크립트 수정
스크립트에 액세스하고 수정하려면 인스턴스에서 터미널을 열거나 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
사용 안내를 참조하세요.