컴퓨트 사기

얼마나 살지 정하기

필요한 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
}

statusquoted(전량) · 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}statecancelledfilled 인지 확인하고, filled_allocation_schedule_delta 를 보고 남은 시간을 다시 쓰세요.

멱등키

주문 생성에 Idempotency-Key 헤더를 붙이면 같은 키·같은 본문의 재시도는 저장된 응답을 그대로 돌려줘요(헤더 idempotent-replayed: true). 같은 키에 다른 본문은 409. 키는 24시간 보관됩니다. 주문 의도를 먼저 기록하고 그 키로 보내는 습관을 들이세요.