- 클라우드 기반의 GPU 컴퓨팅 서비스
- 고성능 GPU 인스턴스를 임대 지원 플랫폼
인터페이스가 직관적이니, 화면을 보면 바로 이해할 수 있을 것이다.

Runpod의 가장 큰 장점은 저렴하다는 것이다. 비슷한 GPU 임대 플랫폼인 Lightning AI와 비교했을 때 가격이 무척 저렴하다.
더군다나 Lightning AI는 A100같은 고성능 GPU를 빌리기 위해서는 월 14$ 플랜을 가입해야 하는데, Runpod는 그냥 시간별 사용액만 내면 된다.
- Runpod 회원가입(Google 연동 추천)
- VS code 설치
※ 이 내용은 window10 Home 환경에서 실행한 것이다. 같은 window 환경이면 문제가 없겠지만, 다른 OS를 사용할 경우 내용이 상이할 수 있다.
우선 GPU 서버를 대여해보자. 로그인을 한 다음, pod 콘솔화면으로 가면, 다음과 같은 화면이 나타난다.

처음 사용하는 사람은 빈 화면이다. Deploy를 누른다.

원하는 GPU 서버를 골라주자.

여기서 Deploy On-Demand를 누르면 GPU를 대여할 수 있다. 그런데...
VS Code를 연동하고 싶으면 이 파트를 꼭 읽어주세요!!!
사실 이 부분 쓰려고 이 포스트를 발행한다. Runpod 사용법은 국내에도 해외에도 잘 정리되어있는데, 나처럼 삽질하는 사람이 없으면 좋겠다는 마음으로...
처음 Runpod에서 Deploy를 하는 사람과 내 화면에는 아주 결정적인 차이가 있다.

SSH Terminal Access 이거다!!! 처음 Runpod를 쓰는 사람은 이게 비활성화된 상태다. 그런데 VS Code 연동을 하려면 SSH 터미널 액세스 권한이 필요하다.
SSH 터미널 액세스 권한을 얻기 위해 GPU 서버 대여를 하기 전에 해야하는 작업이 있다.
로컬 컴퓨터의 Terminal 창을 연다. (나는 VS Code의 Terminal 기능을 이용했다.)
그 후 다음 명령어를 입력한다. ssh-keygen -t ed25519

Enter file in which to save the key (C:\Users\user/.ssh/id_ed25519):C:\Users\user/.ssh/id_ed25519 already exists.id_ed25519라는 이름으로 ssh키를 발급받았을 경우 나타나는 화면이다. 처음 발급받는 사람은 뜨지 않을 것이다.C:\Users\user\.ssh\id_ed25519.pub 파일을 열어서 ssh key값을 확인한다.

Linux 유저라면 cat ~/.ssh/id_ed25519.pub 명령어를 쓰면 바로 출력된다.
key 값을 그대로 전부 복사한 뒤, Runpod 콘솔 화면으로 돌아간다.

좌측의 Settings를 누르면, SSH Public Keys가 있다.
여기에 이제 위에서 복사한 shh key 값을 붙여넣은 후, Update Public Key를 누른다.
다시 1. GPU 서버 대여로 돌아가자.

이제는 SSH Terminal Access가 나타난다! Deploy On-Demand를 눌러주자.

로그들이 잔뜩 출력되고 좀 기다리면... 위처럼 나타난다. 이제 VS Code와 연동할 수 있다.
Connect를 누른다.

SSH를 누른다.

SSH over exposed TCP의 내용을 복사한 뒤, 로컬 컴퓨터의 VS Code를 연다.

F1을 누른다. 여기서 Remote-SSH: Add New SSH Host...를 누른다.

아까 전에 복사했던 SSH over exposed TCP 값을 입력한다. 그러면 config 설정에 Runpod가 등록된다.
F1을 누르고, 이번에는 Remote-SSH: Connect to Host를 선택하자.

맨 위에 방금 입력했던 Runpod의 ip가 나타난다. 클릭해서 연결해준다.

연결하고 쭉쭉 진행해주면 패스워드를 입력하라고 한다. 여기에 2.1.에서 입력한 암호를 입력해준다.

좌하단에 뜨면 연결이 완료 된거다!
GPU 서버 대여 후 SSH Public Key 업데이트를 했는지 확인한다. 크게 두 가지 케이스가 있을 것 같다.
- SSH 키 발급 전에 GPU 서버를 대여했는가?
- SSH 키 재발급을 하지 않았는가?
재발급을 받았다면 Public key를 업데이트 하더라도 기존 GPU 서버에는 재발급한 내용이 반영되지 않는 것으로 보인다. 해당 GPU 컨테이너에서 직접 수정하는 방법도 있을 것 같은데, 이 부분은 아직 지식이 미진하여 잘 모르겠다. (잘 아시는 분은 덧글로 알려주시면 감사드립니다.)
나 같은 경우는 삭제해도 문제없는 상황이어서, 재발급을 한 경우에는 기존 GPU를 삭제하고 다시 대여했다.
근래에 AI 기술이 보편화되면서 코랩이나 anaconda jupyter notebook으로 AI 학습을 시도해보는 사람이 많아졌다. 그런 경우, ssh를 잘 모른 채로 Runpod에 접근하는 경우도 충분히 발생 가능할 것 같아 적어둔다. 이건 내가 처음 클라우드에 AI 모델을 배포하면서 겪어본 문제이기도 하다.
만약에 VScode로 SSH 연결을 처음 해본다면,확장 프로그램을 깔아야한다. Remote Development 설치를 진행한다.

나는 백엔드나 다른 기초적인 프로그래밍을 이해하기 전에 AI를 시작했어서 처음에 환경세팅을 할 때 가장 힘들었다. 특히 내가 뭘 누락했는지 몰라서 헤맬 때가 제일 고통스럽기 때문에... 나와 비슷한 경험을 한 사람들이 Runpod를 사용할 때 도움이 되었으면 하고 이 포스트를 적는다.
https://docs.runpod.io/pods/configuration/use-ssh
https://docs.runpod.io/tutorials/pods/connect-to-vscode