컴퓨트 사기
얼마나 살지 정하기
필요한 GPU 슬롯을 세요: 돌아가는 작업 + 대기 중 작업 + 버퍼 − 밖에서 오는 공급. 8로 나눠 올림하면 노드 수예요. 이미 보유한 노드와 대기 중인 매수 주문은 빼세요.
즉시 체결 vs 호가에 남기기
| 상황 | 설정 |
|---|---|
| 지금 바로 필요, 가격은 시장가 | allow_standing=false, 최대 가격을 현재 최저 매도 이상으로 |
| 급하지 않고 싸게 사고 싶다 | allow_standing=true, 낮은 최대 가격. 맞는 매도가 나올 때까지 기다림 |
| 작업에 구멍이 나면 안 된다 | allow_partial=false(기본). 전량 채워질 때만 체결 |
| 채울 수 있는 만큼이라도 | allow_partial=true |
견적
POST /v1/orders/estimate 는 실제 매칭 경로를 그대로 돌려 보고 롤백해요. 그래서 정확합니다.
{
"object": "order_estimate", "would_fill": true, "status": "quoted",
"requested_node_hours": 24, "fillable_node_hours": 24,
"estimated_gross_krw": 576000, "estimated_average_price_krw_per_node_hour": 24000,
"worst_case_hold_krw": 720000
}
status 는 quoted(전량) · partial · unavailable.
산 시간 위에서 돌리기
시작 시각에 배정된 노드 위에 인스턴스(내 도커 이미지 컨테이너 · 노드 GPU 전부)를 띄워 씁니다. 미리 만들어 두면 시작 시각에 자동으로 뜨고, 풀의 「자동 시작」을 켜 두면 만들지 않아도 떠요. 자세히: 인스턴스
연장
풀 스케줄의 마지막 노드 수를 그대로 이어서 사는 것이 연장이에요. 화면의 연장 버튼이나 POST /v1/pools/{id}/extend 를 쓰세요. 마감이 다가올수록 최대 가격을 올리는 램프(하한가→상한가, 45분 리드)를 자동화 코드에서 흔히 씁니다.
미래 날짜 입찰
배송이 며칠 뒤여도 지금 주문할 수 있어요. 자동화에서는 날짜를 하루(24시간 UTC) 블록으로 나누고 블록마다 시간당 예산을 두는 방식이 흔합니다. 가까운 날에 큰 예산, 먼 날에 작은 예산. 연속 하루 블록엔 높은 입찰 하나, 나머지 예산으로 낮은 입찰 여러 개.
1노드 × ₩16,000 × 24h = ₩384,000
2노드 × ₩8,000 × 24h = ₩384,000
최대 홀드 = ₩768,000
싼 입찰도 채워지면 현금이 필요하니 홀드 한도를 지켜야 해요.
취소는 체결과 경주한다
취소 요청(POST /v1/orders/{id}/cancel)은 바로 204를 돌려주지만, 그 순간 진행 중이던 매칭이 체결을 낼 수 있어요. 그 뒤 GET /v1/orders/{id} 로 state 가 cancelled 나 filled 인지 확인하고, filled_allocation_schedule_delta 를 보고 남은 시간을 다시 쓰세요.
멱등키
주문 생성에 Idempotency-Key 헤더를 붙이면 같은 키·같은 본문의 재시도는 저장된 응답을 그대로 돌려줘요(헤더 idempotent-replayed: true). 같은 키에 다른 본문은 409. 키는 24시간 보관됩니다. 주문 의도를 먼저 기록하고 그 키로 보내는 습관을 들이세요.