sihyeon.train()
runpod serverless + network volume + docker 환경 구축(Z Image Turbo, Wan 2.2 I2V) - 1 본문
runpod serverless + network volume + docker 환경 구축(Z Image Turbo, Wan 2.2 I2V) - 1
sihyeonS2 2026. 3. 2. 15:45 Runpod은 24시간 돌리는 gpu server뿐 아닌, 필요할 때만 on/off하는 serverless endpoint 서비스를 제공한다.
간헐적으로 발생하거나 예측 불가능한 트래픽에는 24시간 구동하는(모델 학습 등)gpu server보다 serverless가 유리하다.
때문에 기존 comfyui에서 수동으로 만들던 이미지/동영상을 runpod에 올리고, n8n으로 실행 후 4시간마다 인스타그램에 업로드까지 하는 파이프라인을 만들고자 했다.
Network Volume 생성 및 설정
우선 runpod 접속 후 storage에 들어간다

New Network Volume 누르고, 대여할 gpu 고르고 data center 고른다
availablity가 높아서 사용량이 동날 일이 없는 곳과 s3 compatible인 곳을 추천한다.

이후 이름과 필요한 용량을 정하면 스토리지 세팅 끝(생성 후 늘릴 수도 있지만 줄일 수는 없음 주의!!)

S3 compatible이 아닌 데이터센터를 골랐다면, 필요한 모델 파일을 다운로드하기 위해 pod을 하나 고용해야 한다. pods로 들어가서, 화면 상단에서 내가 만들었던 network volume을 마운트해 주고, 해당 data center에서 사용할 수 있는 가장 저렴한 gpu로 pod을 연다.

이후 필요한 파일들을 jupyter lab, web terminal(혹은 ssh 접속 후 로컬 terminal)을 통해 다운로드 해준다. 경로는 기존 comfyui models 디렉토리 구조과 같게 한다.
나는 Wan2.2 I2V, Z Image Turbo 모델과 구동에 필요한 것들(text encoder, vae 등..)을 다운로드 받았다. (이 둘이 오픈소스 sota)
주의할 점: workspace 디렉토리가 network volume이고, 해당 디렉토리 외부 파일들은 임시 저장소에 있으므로 pod을 끄면 삭제된다
따라서.. workspace내(예:workspace/models/...)의 경로에 파일을 다운로드 해야 serverless에서도 참조 가능하다.
s3 compatible data center을 골랐다면, Gpu pod을 켜지 않고도 로컬에서 network volume에 파일을 직접 쏠 수 있다.
다시 storage 탭으로 들어가, 내가 생성한 volume에 들어가서 s3 api access 예제를 확인해 보자.

예시는 aws s3 프로토콜 활용을 들고 있지만, 안정성이나 속도 측면에서 rclone이 우위에 있으므로 무거운 모델은 rclone활용이 낫다. setting으로 들어가, 내 s3 api key를 생성해 보자.

그러면 s3 api access와 secret이 나온다. rclone 설정에 사용할 것이다.

rclone 설치
window:
choco install rclone
mac:
brew install rclone
터미널에 입력해서 다운로드 해주자.

다운로드가 완료되었다면 설정할 차례
rclone config

이제 다음을 순서대로 입력해 준다.
- New remote: n 입력
- name: runpod 입력
- Storage Type: s3 입력
- provider: Any other S3 compatible provider 선택 (번호 입력 가능)
- env_auth: false
- access_key_id: RunPod에서 발급받은 Access Key 입력
- secret_access_key: RunPod에서 발급받은 Secret Key 입력
- region: 사용 중인 데이터센터 코드(예: eur-no-1)
- endpoint: https://s3api-eur-no-1.runpod.io (region에 따라 본인의 endpoint 사용)
- acl: private (기본값)
설정이 끝났다면 다음의 명령어로 폴더 전체 동기화가 가능!!(놀라운 작업 효율)
rclone sync --progress --parallel 4 ./models(로컬 models 폴더 경로) runpod:(Bucket 아이디)/models/
--parallel 4: 4개 파일 동시에 업로드(사용 중인 대역폭에 따라 조절)
이렇게 network volume에 파일을 다운로드하면 pod을 키지 않고도 파일을 업로드할 수 있으므로 비용 극강절약가능.
다음 게시물에서는 docker 세팅 방법 및 runpod serverless 생성을 다룸
'개발&실험' 카테고리의 다른 글
| 예의 지수 시스템 설계 [1]: '손가락 살인' 악플에 대항하기 (0) | 2025.09.24 |
|---|---|
| 기타 코드 변환기 - 조옮김, 전조 (0) | 2025.09.14 |