서버

문서

서버 한 대 = Onpod의 가장 기본 단위. 내가 원하는 GPU·CPU와 디스크를 골라 작업해요. 학습·실험·노트북 작업 모두 여기서 시작해요. 명령어는 외울 필요 없이 콘솔에서 클릭하거나, 코딩 에이전트한테 말하면 돼요.

언제 쓰나요?

  • 학습 한 번 돌리기
  • 모델 가중치·데이터셋 가지고 실험하기
  • 띄울 앱이 한 대로 충분할 때 (자동 확장 불필요)
  • 여러 대 묶음·공개 주소가 필요하면 내 앱 올리기 쪽이 더 쉬워요

한 대 빌리기

콘솔 사이드바 「서버」 → 「새 서버」 에서 GPU·이미지·디스크를 골라 만들 수 있어요. 또는 에이전트한테 말해도 돼요.

코딩 에이전트한테 이렇게 말하세요

“H100 GPU 한 대에 pytorch 이미지로 서버 하나 띄워줘”

해외에서 빌리기 (미국·유럽)

CPU 서버는 미국 동부(버지니아)나 유럽(프랑크푸르트)에서도 빌릴 수 있어요. 새 서버 화면 맨 위 「리전」 에서 고르면 돼요. 해외 리전은 직접 고를 때만 쓰여요 — 고르지 않으면 늘 국내에서 열려요.

  • CPU 서버만 돼요. GPU·관리형 DB·웹앱 요금제·공유 디스크는 국내에서만 써요.
  • 해외 서버는 처음 켤 때 약 3분 걸려요(그 리전에서 새로 띄워요).
  • 한국에서 접속하면 응답이 조금 느릴 수 있어요. 해외 사용자가 많은 서비스에 잘 맞아요.
코딩 에이전트한테 이렇게 말하세요

“미국 동부에 CPU 서버 한 대 띄워줘”

여러 서버를 하나로 묶는 학습 (노드 간 고속 연결)

서버 여러 대의 GPU 를 한 학습에 묶을 수 있어요(다중 노드 NCCL · torchrun). 새 서버 화면에서 우리 회사 전용 서버를 「서버 고정」으로 고르면 나오는 「노드 간 고속 연결」 을 켜세요 — 그 서버의 팟이 다른 서버의 팟과 서버 간 고속 통신망(RDMA)으로 직접 연결돼요. 서버마다 팟을 만들고, 첫 팟의 「노드 IP」를 다른 팟의 학습 스크립트에 랑데부 주소(MASTER_ADDR)로 주면 돼요. CLI 는 onpod pod create --gpu b300_288gb:8 --host <서버 id> --interconnect --command 'sleep infinity'.

  • 시작 명령이 꼭 있어야 해요 — 비워 두면 이미지 기본 명령(pytorch 이미지의 bash 등)이 바로 끝나 팟이 곧 종료돼요. 터미널에서 torchrun 을 실행하실 거면 시작 명령에 sleep infinity 를 넣으세요.
  • 우리 회사 전용(또는 소유) 서버에만 켤 수 있어요 — 서버를 다른 회사와 나누지 않는 구성이라서요. GPU 수는 자유이고 한 서버에 여러 개 둘 수 있어요. 대신 서버 네트워크를 같이 써서, 포트 설정의 번호가 같은 서버의 다른 팟과 겹치면 만들어지지 않아요(32768 미만 번호를 쓰세요).
  • 컨테이너 안에는 ONPOD_NODE_IP(내 서버 주소)와 NCCL_SOCKET_IFNAME 이 미리 들어가 있어요. 포트 설정에 적은 포트는 그대로 서버 포트가 돼요(무작위 포트 배정 없음).
  • 아웃바운드 방화벽·고정 발신 IP·Spot·무료 플랜과는 함께 못 쓰고, 다른 서버로 옮기기도 안 돼요. 재시작은 같은 서버에서만 돼요.
  • 서버 네트워크를 쓰는 대신 보호 규칙이 함께 걸려요 — 서버 자신의 관리 서비스와 데이터센터 내부망으로는 나갈 수 없고, 다른 노드의 팟·같은 서버의 다른 고속 연결 팟·DNS·인터넷만 열려요. 팟 안 프로세스끼리의 localhost 통신은 정상이에요.
  • 요금은 GPU 요금에 더해 GPU 1장·시간당 ₩500 이 팟이 켜져 있는 시간만큼 붙어요(요금표 「부가 기능」).
코딩 에이전트한테 이렇게 말하세요

“전용 서버 두 대에 각각 B300 8장 노드 간 고속 연결 팟 만들고 torchrun 2노드로 학습 돌려줘”

접속

빠른 점검(예: nvidia-smi 확인, 로그 보기)은 명령 1개를 실행하고 결과를 돌려받는 단발 실행으로 — 에이전트한테 시키면 돼요.

코딩 에이전트한테 이렇게 말하세요

“그 서버에서 nvidia-smi 한 번 실행해서 GPU 상태 보여줘”

“학습 로그 마지막 50줄 보여줘”

직접 셸이 필요하면 onpod ssh &lt;이름&gt; — 시간 제한 없는 진짜 인터랙티브 셸이라 vim·top·긴 작업이 그대로 돼요. 표준 ssh·scp·rsync·VS Code Remote-SSH를 쓰려면 onpod ssh-config &lt;이름&gt; --write로 ~/.ssh/config 항목을 한 번 만들면 ssh 이름.onpod으로 연결돼요. (공개 IP·열린 포트 없이 인증된 WebSocket 릴레이로 동작해요.) 아무것도 입력하지 않고 오래 둬도 세션이 자동으로 유지돼요 — 릴레이가 주기적으로 keepalive를 보내요.

파일만 옮기려면 onpod cp — 팟→로컬·로컬→팟·팟→팟을 한 줄로 옮기고, 전송 뒤 양쪽 sha256을 대조해요(다르면 실패로 알려줘요). ~/.ssh/config를 건드리지 않아 부작용이 없어요. onpod cp 내팟:/workspace/out.tgz . 연결이 잠깐 끊기거나 팟을 다시 켠 뒤에도 알아서 이어서 보내요.

브라우저에서 터미널·노트북을 쓰고 싶으면 이미지에 Jupyter·code-server를 넣고 그 포트를 공개하면 https://{이름}.onpod.ai 에서 쓸 수 있어요 (이것도 에이전트가 설정해줘요).

연동 서비스에서 배포한 앱

BizCoder·웍스AI Desk 같은 연동 서비스로 올린 앱은 그 서비스가 대신 관리하는 계정에 있어요. 그래도 같은 이메일로 이 콘솔에 로그인(웍스AI 로그인·구글·이메일 인증)하면 「서버」 화면 위쪽 「연동 서비스에서 배포한 앱」에서 상태·주소· 마지막 로그를 보고 다시 시작할 수 있어요. 코드 수정·환경변수·삭제는 배포한 서비스에서 하면 돼요 — 여기서 바꾸면 다음 배포가 덮어써요.

저장 공간 붙이기

  • 팟 디스크 — 항상 포함됨. 팟 삭제 시 비워져요.
  • 데이터 디스크 — 팟 꺼도 그대로. /workspace에 마운트.
  • 공유 디스크 — 여러 팟이 같이 씀.

학습 데이터·캐시·체크포인트처럼 큰 파일은 꼭 /workspace 아래에 두세요. 데이터 크기에 맞춰 데이터 디스크를 정하면 되고(예: 데이터가 300GB 쯤이면 400GB), 가득 차면 정해 둔 상한까지 저절로 늘어나서 학습이 디스크 부족으로 멈추지 않아요. 상한은 터미널에서 onpod pod workspace-max 팟이름 800 로 바꾸거나 off 로 끌 수 있어요. 컨테이너 기본 디스크(/root 등)는 서버 공유라 팟당 약 50GB 까지만 안전해요.

자세한 비교는 저장 공간 3가지 도움말 참고.

요금제 (SKU)

  • 시간 단위 — 가장 기본. 켠 시간만큼만 결제, 내가 끄기 전까진 회수되지 않아요.
  • 장기 예약 — 1시간~1년 미리 예약. 약정 기간 안엔 회수 없음. 시간당 요금은 시간 단위와 같아요.
  • 스팟 (회수 가능) — 시간당 요금은 같고, 정가 사용자 들어오면 1분 안내 후 회수.

정지 vs 삭제

  • 정지 — GPU 시간 과금 멈춤. 디스크는 보관료(GB·월)만. 다시 켜면 그대로.
  • 삭제 — 모든 데이터 폐기. 데이터 디스크·공유 디스크에 옮긴 파일만 남아요.

체크포인트 자동 백업

서버 만들 때 토글 켜면, 60초마다 지정 폴더가 백업 저장소로 자동 복사돼요. 자세한 건 체크포인트 자동 백업 도움말.