개념 — SKU·풀·주문·체결
Rerent는 다섯 가지 원시 개념으로 돌아갑니다.
SKU — 대체 가능성의 경계
SKU는 「서로 바꿔 써도 되는 하드웨어」의 단위입니다. 가속기(H100/H200/B200…)·GPU 수·메모리·네트워크(InfiniBand/RoCE)·지역·존이 같으면 같은 SKU예요. 같은 SKU 안에서는 특정 기계를 고를 수 없고, 어느 공급자의 노드든 배정될 수 있습니다. 주문은 항상 SKU 하나에 고정되고, SKU마다 오더북이 따로 있어요.
| 속성 | 예 |
|---|---|
| alias | icn-1-h100 |
| accelerator / gpus_per_node / gpu_memory_gb | h100 / 8 / 80 |
| interconnect | ib · roce · none |
| region / zone | kr / icn-1 |
풀 — 시간별 노드 수 스케줄
풀은 「언제 몇 노드를 갖고 있나」를 기록하는 통입니다. 매수가 체결되면 그 구간의 노드 수가 늘고, 매도가 체결되면 줄어요. 풀은 어느 주문이 어느 시간을 만들었는지는 기억하지 않고 순 합계만 갖습니다(추적은 주문 ID로). 가입하면 기본 풀 default가 하나 생기고, 풀을 지정하지 않은 매수는 여기에 담겨요. 팀·프로젝트별로 풀을 여러 개 두고 사이에 시간을 이전할 수 있어요.
공급자가 클러스터를 등록하면 공급 풀이 생기고, 공급 기간의 노드 수만큼 할당이 담깁니다. 공급자는 이 풀에서 팝니다. 구매자는 시장 풀에서 사고 되팝니다. 둘은 같은 원장·같은 오더북을 씁니다.
주문 — 사겠다 / 팔겠다
| 항목 | 뜻 |
|---|---|
| side | buy(매수·bid) 또는 sell(매도·ask) |
| sku | 고정할 SKU |
| start_at / end_at | 배송 윈도우(반열림 [start, end)). 분 단위 정렬, 시작은 최대 5분 과거, 종료는 최대 1년 뒤 |
| node_count | 노드 수 |
| limit_price | ₩/노드·시간 정수. 매수는 최대, 매도는 최저 |
| allow_standing | 즉시 다 채워지지 않으면 호가에 남겨 둘지(기본 false = 즉시 체결 아니면 취소) |
| allow_partial | 요청의 일부(노드 수·시간)만 채워져도 될지(기본 false = 전량만) |
상태: pending → filled · partially_filled · standing · cancelled · rejected. standing 주문은 시간이 지나면 지난 구간이 떨어져 나가고(남은 구간만 매칭), 윈도우가 다 지나면 cancelled 로 끝나요.
체결 — 먼저 올라온 가격으로
매칭 엔진은 새 주문(taker)이 들어올 때 반대편 열린 주문(maker)을 가격 우선 → 시간 우선으로 훑고, 두 주문의 시간 교집합 × min(노드 수)만큼 체결합니다. 체결가는 먼저 책에 올라온 주문(maker)의 지정가예요.
- 매도 호가 ₩24,000이 있고 최대 ₩30,000 매수가 들어오면 → ₩24,000에 체결
- 매수 호가 ₩9,000이 먼저 있고 최저 ₩7,000 매도가 들어오면 → ₩9,000에 체결
전량 조건(allow_partial=false) 주문은 요청 전부가 채워질 때만(여러 상대 주문 합산 가능) 체결되고, 전량 조건 매도 주문은 통째로만 소비됩니다.
홀드와 정산
- 매수 주문을 넣으면 최대 가격 × 남은 노드·시간이 크레딧에서 홀드돼요. 가용 잔액 = 잔액 − 홀드.
- 매도 주문을 넣으면 그 시간의 풀 할당이 예약돼 같은 시간을 두 번 팔 수 없어요.
- 체결되면 한 트랜잭션에서: 매수자 크레딧 −체결가, 매도자 크레딧 +(체결가 − 수수료), 매수 풀 +할당, 매도 풀 −할당, 체결 기록, 원장 2건, 공개 체결 기록.
배정 — 실제 노드
시작 시각 48시간 전부터 스케줄러가 SKU 별로 풀 수요에 물리 노드를 붙여요. 같은 풀이 연속 시간을 보유하면 같은 노드를 유지합니다(sticky). 팔아서 할당이 줄면 배정도 그 시각에 끝나요(우선순위 낮은 인스턴스가 있는 노드부터).
인스턴스 — 실제로 도는 것
배정된 노드 위에 뜨는 내 컨테이너가 인스턴스예요(노드 1대 = 인스턴스 1개 · GPU 전부). 도커 이미지·시작 스크립트·환경변수·포트·우선순위를 정해 만들면, 시작 시각에 노드에서 뜨고 배정이 끝나면 파기돼요. SSH 모드는 조직 SSH 공개키로 컨테이너 root에 접속하고, 커스텀 모드는 내 명령을 주 프로세스로 돌려요. 풀의 자동 시작 템플릿을 켜 두면 노드가 배정될 때 손대지 않아도 떠요. 공급자 노드에는 노드 에이전트만 깔려 있고(실행층 onpod · Rerent와 같은 회사 AI3가 운영), 구매자는 호스트 OS를 만지지 않아요. 자세히: 인스턴스
워크스페이스 · 태그 · 한도
- 워크스페이스는 조직 안에서 풀·템플릿·이미지를 묶는 단위예요(팀·환경별 분리). 인스턴스·주문·배포는 풀을 따라가요. 조직마다
default가 하나 있고, 목록 API 는?workspace=로 골라 봐요. 자원 경로rerent:pool:<조직>:<워크스페이스>:<이름>을 id 대신 써도 돼요. - 태그는
key=value쌍이에요. 풀·주문·인스턴스·배포·클러스터·템플릿·이미지에 붙이고?tag=env=prod·?tag_key=team으로 걸러요. 배포의 태그는 그 배포가 만드는 인스턴스·주문에도 붙어요. - 한도는 계정이 한 번에 보유할 수 있는 컴퓨트(전 풀 합계 노드·시간 · 앞쪽 1시간은 제외)와 자원 개수의 상한이에요. 넘기는 매수는 주문을 만들지 않고 거절해요(매도는 거절 안 함). 설정 → 한도에서 사용량을 보고, 상향은 support@rerent.ai.
배포 — 인스턴스 무리 유지
배포는 풀 위에서 인스턴스를 목표 수만큼 유지하는 자동화예요. spot 은 상한가 이하 매물을 매 분 사서(자동 매수) 템플릿으로 인스턴스까지 띄우고, generic 은 이미 산 시간 위에서 인스턴스 수만 맞춰요. 목표를 줄이면 우선순위 낮은 것·최근 것부터 종료되고, 인스턴스를 종료하면 다음 분에 채워요. 자세히: 인스턴스 · REST API