국문과 유목민

[RunPod] RunPod (비용 및 Pycharm SSH 연결 방법) 본문

기술 견문록/MLOps

[RunPod] RunPod (비용 및 Pycharm SSH 연결 방법)

논곰 2024. 11. 24. 23:07

runpod

개요

집에서 AI 모델을 돌려보려고 하는 개발자들은 이런 고민은 한 번쯤 있었을 것 같다. 집에 있는 로컬 PC의 경우 GPU 사양이 충분히 높지 않아서 원하는 모델보다 작은 모델을 테스트 해야 하는지, 다른 방법을 찾아봐야 하는지 말이다. 코랩을 통해서 활용하려고 했지만, 비용적인 이슈도 있고 월 9.9$의 colab pro 요금제로는 원하는 모델을 원하는 만큼 돌릴 수도 없다는 것도 좀 단점이었다. 그렇다고 AWS와 같은 클라우드 서비스를 활용하자고 하니, EC2 자원을 띄우기 위한 초기 설정부터 비용까지 코랩보다 더 신경쓸 게 많아진다. 그런 상황에서, GPU 서버가 필요한 개발자들에게 RunPod는 좋은 선택지가 될 수 있다.  

RunPod?

그렇다면 RunPod가 뭘까? RunPod는 인공지능(AI) 및 머신러닝 애플리케이션을 위한 클라우드 컴퓨팅 플랫폼으로, GPU 클라우드 서비스, 서버리스 GPU 컴퓨팅, AI 엔드포인트 등을 제공하여, 사용자가 AI 모델을 개발, 훈련 및 확장할 수 있도록 지원한다. 

 

RunPod - The Cloud Built for AI

Develop, train, and scale AI models in one cloud. Spin up on-demand GPUs with GPU Cloud, scale ML inference with Serverless.

www.runpod.io

 

RunPod의 장점으로 3가지 정도를 꼽아볼 수 있을 것 같은데, 크게 접근성, 사용성, 비용 효율성이다. 따라서 빠르고, 저렴하게 GPU를 사용해보고 싶은 개인 개발자들에게는 좋은 선택지가 될 수 있을 것이다. (단점으로는 초기 결제 비용이 $25이상이다...)

  • 접근성: 결제만 하면, 적은 설정만으로도 GPU 서버를 쉽게 사용할 수 있다 (카드 등록 후 서버 뜨는 데까지 3분도 안 걸린다!)
  • 사용성: 다른 클라우드 서버를 활용하는 것 대비 자원이 매우 빠르게 생성 및 실행됨 
  • 비용효율성: 다른 서비스 대비 비용이 저렴하다
비슷한 자원인 runpod의 V100 16GB와 Colab Pro의 T4의 시간당 비용도 대략적으로 비교 시 가격이 거의 비슷하다!

runpod를 보면, GCP보다 시간당 비용이 훨씬 싸다고 얘기하고 있다

RunPod 서버 실행방법

RunPod 가입 및 결제 등의 경우 진행하셨다고 알고 설명하겠습니다.

 

RunPod 서버를 실행하는 매우매우 쉬우며, 5가지 단계만으로 3분 이내에 서버를 띄워볼 수 있다

  1. 로그인 후 메인 화면 진입 후 'Deploy' 선택
  2. 서버 자원 선택 (Community Cloud의 경우 조금 더 범용적이며, 추후 SSH 연결 시 해당 항목 선택)
  3. GPU 개수 및 Image Template  선택 후 'Deploy On-Demand' 버튼 클릭
  4. 잠시 로딩 후 Pod 정보 확인 가능
  5. 'Connect' 버튼 클릭 후 Jupyter notebook server 접속 확인

메인 화면
GPU Deploy 설정
원하는 모델(예시: V100 16GB) 선택 후 deploy 진행
잠시 로딩 후 새로 올라온 이미지 정보 확인
'Connect' 버튼 진입 후 Jupyter Lab 서버 접속

 

 

Pycharm SSH 실행 방법

Jupyter Lab을 그냥 사용하는 것도 좋기는 하지만, Lint의 노예이거나 아니면 Copilot과 같은 기능을 활용하고 싶을 수 있다. 이때, 기존에는 활용하는 IDE에 SSH를 통해서 서버를 연결해 줄 수가 있다. Runpod의 경우 몇 가지 설정이 필요하기는 하지만 그렇게 어렵지 않을 것이라고 생각한다. github나 다른 클라우드 서비스를 사용해 본 사용자라면 더 쉽게 사용할 수 있을 것이다.

RunPod SSH 연결 설정 

  1. 우선, 로컬 PC에서 public/private SSH 키페어를 생성해야 한다. (ed25519는 고정해주자 [디지털 서명 알고리즘])
ssh-keygen -t ed25519 -C "your_email@example.com"

# 정보 확인 (~/.ssh 하위에 저장됨)
cat ~/.ssh/id_ed25519.pub

2. runpod user settings에 pub 키 입력 (위에서 cat ~/.ssh/id_ed25519.pub 암호 복사 후 붙여넣기)

Settings - SSH public Keys

3. 이후 SSH 연결을 하고 싶은 Pod에서 'Connect'버튼 클릭 후, 하단 SSH 주소 복사 후 접속

  • 만약, SSH 접근 시 암호를 입력하라는 창이 뜨는 경우 문제가 있음
  • 다음 Document를 참고해보거나, Pod를 새로 만들어서 접근해보는 것을 추천

SSH 주소 복사
shell에 해당 명령어 입력 후 접근 상태 확인

Pycharm SSH 연결 설정 

1. Pycharm 연결 후 'settings - Project - Python Interpreter - Add interpreter' 접근

2. runpod의 ssh 주소에서 정보를 확인해 입력

ssh root@78.130.201.2 -p 10363 -i ~/.ssh/id_ed25519

 

  • root@78.130.201.2 중 '@'를 기준으로 오른쪽을 'Host'에 왼쪽을 'Username'에 입력 
  • 'port'에 -p 뒤에 번호 입력
  • 예시 Host: 78.130.201.2 / port: 10363, Username: root

3. 서버가 정상적으로 연결된다면, 'Next'버튼이 활성화 됨

 

3-1. 만약 정상적으로 접근이 안 됐을 시, private key file 경로 설정 필요

  • 앞서서 만든 SSH key 파일 중 private key의 경로를 설정

ssh configure 예시

 

4. 연결이 정상적으로 됐으면, Python Interpreter 설정 및 sync를 진행할 폴더 설정

  • 이때, Interpreter와 Sync folder는 runpod 서버를 기준으로 설정 가능
  • Interpreter 경로 예시: /usr/bin/python3

Interpreter 경로 및 LocalPC와 연결할 경로 설정 후 생성

 

결론

RunPod의 경우 예전에 키워드만 알고, '나중에 해봐야지'라는 생각만 가지고 있었는데 최근에 GPU 서버가 필요한 상황이 생겨서 사용해보게 되었다. 회사에서는 EC2서버를 SSH로 연결해서 사용하고 있었기 때문에 RunPod에도 이를 설정하려고 하다 가이드가 없어서 조금 애를 먹었었던 것 같다. 그렇다보니 가이드를 작성해보면 좋을 것 같아서 작성하게 되었다. 개인 사용자가 가장 접근하기 쉬웠던 colab의 경우 유료 플랜을 사용하려면, 구독제이다 보니까 가격적인 부분이 조금 이슈가 있었는데 앞으로는 RunPod를 사용하면 좋을 것 같다고 생각한다. 

Comments