RunPod
AI, 머신러닝 및 일반 컴퓨팅 요구 사항을 위해 구축된 클라우드 컴퓨팅 플랫폼
시간당 0.29달러 (400원) 정도에 최상급 GPU를 빌려 쓰는 가성비
간편한 세팅
가벼운 작업은 저렴한 GPU, 고해상도 영상생성은 RTX 4090이나 5090같은 괴물 성능의 GPU로 바꿔가며 쓸 수 있다.
(선택) ssh 키 등록. 하려면 pod만들기 전에 수행한다.
ssh -V
OpenSSH_for_Windows_9.x등으로 출력되면 SSH를 사용할 수 있다.

cd $HOME
mkdir .ssh -Force
cd .ssh
pwd
ssh-keygen -t ed25519 -C "sanghee2411@gmail.com"
enter
enter
enter


Get-Content $HOME\.ssh\id_ed25519.pub

runpod 접속 - settings - ssh - 등록


본격적으로 시작해보자. Pod 메뉴에 접속 각 아코디언메뉴는 아래를 의미한다 .
Workload 어떤 소프트웨어 환경으로 실행할 것인가?
Compute (GPU) 어떤 하드웨어를 사용할 것인가?
Region 어느 데이터센터에서 돌릴 것인가?
Storage 얼마나 저장할 것인가?

(선택) workload는 탬플릿과 같다. 이해를 하고싶다면 읽어보자.------------------------------------------- start
템플릿: Pod가 실행될 컨테이너 이미지를 선택
RunPod
│
├── 공식 Workload
│ ├── RunPod PyTorch
│ ├── TensorFlow
│ └── vLLM
│
└── Community Workload
├── 사용자가 만든 PyTorch 환경
├── 특정 LLM용 환경
├── 특정 WebUI 환경
└── 특정 라이브러리 포함 환경
| 공식 | Community | |
| 제작 | RunPod | 사용자 |
| 안정성 | 높음 | 편차 있음 |
| 설정 | 기본 제공 | 목적별 커스텀 |
| 추천 | 처음 시작 | 특정 작업 |
| 예 | PyTorch | vLLM, ComfyUI, 특수 환경 |


공식 플랫폼을 선택하면 추가옵션이 보이고 커뮤니티( 누군가 만들어둔 Docker 환경 설정 )의 경우 옵션이 표시되지않는다.




처음부터 배우거나 직접 구성할 때는 공식 Workload 추천된다.
Ubuntu+ CUDA+ PyTorch+ Python+ Jupyter 정도만 준비된 깨끗한 환경에서 시작하며 위에 내가 여러가지를 설치하며 원하는 환경을 만들어가는 방식이다 .
pip install transformers
pip install peft
pip install accelerate
pip install datasets

누군가가 나는 Llama + vLLM 서버를 바로 실행하고 싶다라 해서 환경을 만들어 공개했다면 그저 선택해 deploy후 바로 실행이 가능하다. 다만 어떤 패키지가 설치되었는지 버전충돌은 안나는지 오래된 이미지는 아닌지, 보안은 어떠한지검토가 필요하다 .
이 허술함을 이해해보려면 실제로 여러 템플릿을 조회해보자. api key를 그대로 노출해버리는 경우가 허다하다

반대로 공식 overrides 도 확인해보자. 기본설정만 들어가있어 보안이 보장된다. reame도 말끔하다.


상세설명도 확인해보자 .


(선택) workload는 탬플릿과 같다. 이해를 하고싶다면 읽어보자.------------------------------------------- end
(선택) pod의 구성요소를 이해해보자.
오른쪽에 pod의 상세스펙이 보인다.
RTX 5090 32GB는 최신 고성능 GPU
이름을 읽고 vLLM이 미리 설치된 LLM 추론(Inference) 용 환경이라고 유추한다 .
RTX 5090 GPU 종류 1x RTX 5090 GPU를 1개를 사용하고 모델은 NVIDIA RTX 5090이다.
32GB VRAM 중요하다. VRAM = GPU 메모리 모델 크기와 관련된다. 32정도면 꽤 좋은 편이다 .
60GB RAM CPU 메모리 60GB면 충분한 편 15코어면 학습용으로 괜찮다.
15 vCPU CPU 코어 개수
vllm-latest
1x RTX 5090
32GB VRAM · 60 GB RAM · 15 vCPU
| 8GB | 작은 모델, 이미지 |
| 16GB | 작은 LLM, LoRA 일부 |
| 24GB | 7B QLoRA 가능 |
| 32GB | 7B~14B QLoRA 여유 |
| 48GB | 큰 모델 파인튜닝 |
| 80GB | 대형 모델 |

(선택) 해당 워크로드 세부설정을 수정방법도 확인해보자.
template워크로드릐 세부설정을 수정하는 부분
vllm/vllm-openai:latest Docker 이미지
Container start command vLLM 실행용
--host 0.0.0.0 외부 접속 허용
--port API 서버 포트
--model 여기서는 Llama 3.1 8B Instruct 을 다운로드해서 실행
--dtype 데이터 타입:
- FP32 → 정확하지만 메모리 많이 사용
- FP16 → 절반 메모리
- BF16 → LLM에서 많이 사용
--gpu-memory-utilization GPU VRAM의 95%까지 사용
--api-key
--max-model-len 최대 context 길이
Container disk 임시 저장 공간. Pod 종료하면 삭제된다.
Volume disk 영구 저장 공간 Pod를 재시작해도 유지된다.
Volume mount path 저장 위치
Expose HTTP ports 8000 외부 HTTP 접근 허용
Expose TCP ports SSH 접속 포트
내가 만든 LLM을 API 서버로 띄우고 FastAPI 챗봇 연결에 맞는 설정.


지역설정하기

compute 설정하기
필터를 사용하면 금액별 오름차순, 내림차순이 가능하다.
out of capacity는 이미 사용자들이 모두 사용중인 자원으로 가능할때, 빈자리가 났을때 사용할수있다.
out of capacity 가 너무 많은 경우 tab available을 누르자. 필터링할 수 있다


(선택) gpu수도 늘려보자. 오른쪽 summary card에 실시간으로 금액이 바뀌고있는것을 확인할수 있다.

스토리지
Pods는 두가지 유형의 저장방식을 제공한다.
컨테이너 디스크 기본 저장소 pod가 중지될때마다 초기화
영구 저장소 Pod에 직접 연결된 디스크로 Pod가 중지되거나 다시 시작될때 유지되지만 Pod가 종료될때는 삭제되는 볼륨디스크, Pod와 독립적으로 존재하는 영구 저장소로 시간이 지남에 따라 동일한 볼륨을 여러 Pod에 연결할 수 있는 네트워크 볼륨,
(선택) 스토리지를 강제로 수를 줄여보자.
권장사이즈를 알려주며 경고해준다.


기본세팅을 완료했다 .
deploy pod


import torch
print("PyTorch version:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("GPU:", torch.cuda.get_device_name(0))
print("VRAM:", torch.cuda.get_device_properties(0).total_memory / 1024**3, "GB")
조금 기다리면 pod가 활성화된다.


pod를 정지시켜보자.
pod정지시 일부 메뉴들이 비활성화되는것을 확인했다. 조회만 가능하도록 메뉴가 바뀌어있다.




template detail에는 앞서 확인한 reame가 들어있다

반대로 시작해보자.


메뉴들이 다시 활성화되었다 .


쥬피터 노트북이 준비되면 접속해보자 .


RunPod의 PyTorch 이미지는 보통 PyTorch, CUDA, Python, 기본 라이브러리를 제공하는것이 핵심이고 jupyter가 뜨려면 jupyter가 설치되고 + 실행중이어야한다.
만약 뜨지않는다면 아래를 수행하자.
현재 Pod에 직접 Jupyter 설치하자.
connect - web terminal - 활성화 - open web terminal
pip install jupyterlab
jupyter lab --ip=0.0.0.0 --port=8888 --allow-root



다시 돌아가 실행

완료

gpu를 확인해보자.
선택했던 gpu와 일치한다
import torch
print("PyTorch version:", torch.__version__)
print("CUDA 사용 가능:", torch.cuda.is_available())
if torch.cuda.is_available():
print("GPU 이름:", torch.cuda.get_device_name(0))
print("VRAM:", torch.cuda.get_device_properties(0).total_memory / 1024**3, "GB")


추가로 더 테스트해보고싶다면 아래 코드를 실행하자 .
gpu가 실제로 일하는지 테스트
import torch
import time
device = "cuda"
a = torch.randn(5000, 5000).to(device)
b = torch.randn(5000, 5000).to(device)
start = time.time()
c = torch.matmul(a, b)
torch.cuda.synchronize()
print("계산 완료")
print("걸린 시간:", time.time() - start)
print(c.shape)
gpu 상태보기
!nvidia-smi
작은 모델 하나 올려보기
!pip install transformers accelerate -q
from transformers import pipeline
generator = pipeline(
"text-generation",
model="distilgpt2",
device=0
)
result = generator(
"AI is",
max_length=50
)
print(result[0]["generated_text"])
pod를 중지시키면 당연하지만 이 jupyter를 쓸 수 없다 .

pod를 삭제해보자 .
teminate pod


완료

billding메뉴로 접속해 이 테스트 중 소비한 금액을 확인해보자.
0.002 싼값에 잘 테스트했다!

(선택) 로그인을 쉽게하려면 패스키를 저장하자.



(선택) 보안에 신경쓰고싶다면 MFA를 추가하자.
Secure your account: Enable multi-factor authentication to add an extra layer of protection when you sign in.
안내는 괜히 나오는것이 아니다. 뉴스에도 몇번 나왔지만 MFA 설정을 하지않으면 해킹되 과한 사용량으로 과금될 수 있다. aws도 마찬가지다. 고객센터로 피해사실을 알리면 환불해주지만 2주이상 걸리거나 번역기를 돌려가며 상담원과 상담을 하거나 메일을 보내야하는 등의 번거로움이 존재한다.
플레이스토어에서 authenticator 설치
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=ko
Google OTP - Google Play 앱
2단계 인증을 사용 설정하여 계정 도용을 방지하세요.
play.google.com

해당 qr을 앱 오른쪽 하단 카메라로 스캔하면 등록된다 .

앱에서 보여주는 인증숫자를 입력하고 인증완료한다 .

취소할수도있지만 그럴가능성은 없을것이다. 있어서 나쁠게 전혀없는 메뉴

(선택) 추후 github repo와 커넥션하고싶다면 연결해놓자.






(선택) runpod에도 실험실 기능이있다. 원하지않는다면 비활성화하자. 기본값은 활성이다 .

이제 로컬에서 runpod의 gpu를 사용해보자 .
ssh 설정 파일만들기
notepad $HOME\.ssh\config - 새파일만들기 - 예 - 이때 hostname과 port는 runpod 화면을 참고해 적는다 .
IdentityFile은 .ssh 생성한 파일/파일명까지 적기.
runpod를 재실행하면 port번호등이 바뀔수있으니 주의한다.


(예시)
Host runpod-gpu
HostName 123.45.67.89
User root
Port 24567
IdentityFile C:/Users/사용자명/.ssh/id_ed25519
ServerAliveInterval 30
ServerAliveCountMax 120
이때 config를 수정하다가 .txt로 저장되어버렸다면 주의하자. 확장자가 없어야한다 .

파이참 - main.py 작성

# PyTorch 라이브러리를 불러옵니다.
import torch
# 현재 실행 중인 PyTorch 버전을 출력합니다.
print("PyTorch 버전:", torch.__version__)
# CUDA GPU 를 사용할 수 있는지 확인합니다.
print("CUDA 사용 가능:", torch.cuda.is_available())
# CUDA 를 사용할 수 있다면 현재 GPU 이름을 출력합니다.
if torch.cuda.is_available():
print("GPU 이름:", torch.cuda.get_device_name(0))
else:
print("사용 가능한 CUDA GPU 가 없습니다.")
파일 - 설정

설정 - 도구 - ssh 구성

config에서 작성했던 ip와 port를 적고 키 쌍으로 선택 - ssh 파일을 연결한뒤 테스트한다.


참고로 ssh 파일을 연결했는데 비밀번호를 입력하라고 나온다면 config등에 문제가 있는것이니 데이터를 확인하자.

powershell에서 명령해 runpod를 연결여부를 확인 할 수 도 있다 .

ssh -i ~/.ssh/id_ed25519 d566nlxls7lirs-64411861@ssh.runpod.io
적용 - 확인


설정 - python - 인터프리터 - 인터프리터 추가 - ssh

기존 - 등록한 ssh선택 - 다음






웹브라우저에서도 terminal을 열어 확인해볼 수 있다.


설정 - 배포 - 매핑 - 로컬경로, 배포경로 - 확인

터미널 - 실행

jupyternotebook으로 확인했을때 프로젝트가 잘 올라왔다 .



'Personal > Tip' 카테고리의 다른 글
| RunPod 사용해보기: 서비스 배포해 브라우저로 접속하기 (0) | 2026.07.28 |
|---|---|
| Playground LLM API 실습도구: OpenAI Gemini(Google AI Studio) Claude (0) | 2026.07.07 |
| GPT 프롬프트 명령어 및 올바른 명령법 : TL;DR, ELI10, CRITIQUE, SIMPLIFY || QOE, /X10THINK (0) | 2026.07.06 |
| GPT 채팅방 전체삭제 및 시크릿모드 (0) | 2026.07.03 |
| Continue, GPT, Claude, Gemini 여러 LLM 사용하기 (feat.ollama모델 연결하기) (0) | 2026.07.01 |