Ollama 모델을 Fly Machines 간 공유하는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- DevOps 엔지니어, AI 앱 개발자, 클라우드 인프라 관리자
- 난이도: 중간~고급 (Docker, Fly.io, JuiceFS, Tigris 사용 경험 필요)
핵심 요약
JuiceFS + Tigris
를 통해 Fly Machines 간 모델 공유 가능fly.toml
수정과 Dockerfile 재구성으로 데이터 볼륨 지속성 확보juicefs format
및mount
명령어로 메타데이터/데이터 저장소 연동- 모델 다운로드 시간 단축 및 Ollama 레지스트리의 제한 회피
섹션별 세부 요약
1. Fly.io에서 Ollama 배포 준비
- GPU 가속을 위한
a100-40gb
VM 크기 설정 fly.toml
에mounts
섹션 추가:~/.ollama
디렉토리 볼륨 지속성 확보fly ips release
명령어로 API 접근 제한 (private network만 허용)
2. JuiceFS 및 Tigris 설정
- 메타데이터 DB: Supabase Postgres, 데이터 저장소: Tigris 사용
fly ext supabase create
및storage create
명령어로 외부 서비스 연결- AWS S3 엔드포인트 URL, 액세스 키 등 환경 변수 설정
3. Docker 이미지 재구성
- 기존
[build]
섹션 삭제 후ollama/ollama:latest
이미지 사용 juicefs_cache
볼륨 마운트 경로 변경:/var/jfsCache
Dockerfile
에 JuiceFS 설치 및setup.sh
스크립트 추가
4. `setup.sh` 스크립트 동작 방식
juicefs format
명령어로 메타데이터/데이터 저장소 초기화juicefs mount
로/root/.ollama
에 저장소 마운트 (I/O 성능 최적화)ollama serve
명령어로 Ollama 서버 실행
결론
JuiceFS + Tigris
조합으로 Fly Machines 간 모델 공유 성공- 모델 다운로드 시간 감소 및 Ollama 레지스트리의 대역폭 제한 회피 가능
fly deploy
실행 후fly vol delete
로 불필요한 볼륨 정리 권장