A. 온보딩
빈 상태에서 팀이 GPU를 쓸 수 있게 되기까지. 순서대로 따라가면 된다.
이 묶음은 선행 관계가 강하다. S-01부터 순서대로 해야 다음이 성립한다.
S-01 조직 생성과 초기 크레딧
Super Admin · 2분 · 선행 없음
전제 플랫폼에 로그인만 되어 있으면 된다.
절차
조직 관리에서+ 조직 생성을 누른다.- 조직 이름과 슬러그를 넣는다. 둘 다 전역 유일이어야 한다.
- 조직 어드민 이메일과 초기 비밀번호를 넣는다. 이 계정이 그 조직의 Org Admin이 된다.
- AWS Credentials를 고른다. 자체 계정이면
BYOC · 조직 소유 계정, 플랫폼 계정을 쓰면플랫폼 계정 사용. - 초기 크레딧과 금액을 넣는다. 0으로 두고 나중에 팔아도 된다.
조직 생성을 누른다.
기대
- ✅ 목록에 새 조직이 나타난다.
- ✅
미할당 잔여가 입력한 초기 크레딧과 같다. - ✅
크레딧 판매 누적도 같은 값이다. - ✅ BYOC를 골랐다면 응답에 ExternalId가 있다. 고객이 IAM 역할을 만들 때 쓴다.
- ✅ 감사 로그에
org.create가 남는다. - ✅ 방금 만든 어드민 이메일로 로그인하면 그 조직의
/org로 들어간다.
관련 조직 생애주기
S-02 중복 어드민 이메일로 조직 생성 시도
Super Admin · 1분 · 선행 S-01
어드민 이메일은 전역 유일이다. 다른 조직이 쓰고 있으면 만들 수 없다.
전제 S-01에서 만든 조직이 있다.
절차
- 조직 이름과 슬러그는 다르게 넣는다.
- 어드민 이메일만 S-01과 같게 넣는다.
조직 생성을 누른다.
기대
- ✅
409 duplicate_admin_email로 거부된다. - ✅ 메시지에 어느 조직이 그 이메일을 쓰는지 나온다.
- ✅ 조직이 생성되지 않는다. 목록에 늘지 않는다.
- ✅ 원장에도 아무 기록이 남지 않는다.
제거된 조직의 어드민도 행이 남아 이메일을 계속 점유한다. 그 경우 메시지에
(제거됨)이 함께 표시된다.
관련 조직 생애주기
S-03 크레딧 추가 판매
Super Admin · 2분 · 선행 S-01
전제 조직이 있다.
절차
- 조직 행의
크레딧 판매를 누른다. - 판매 크레딧 수량을 넣는다. 단가(₩500/C)로 금액이 자동 계산된다.
- VAT 10% 포함 금액이 아래에 표시되는 것을 확인한다.
입금 확인됨 · 반영 즉시 사용 가능을 체크한다.n C 반영을 누른다.
기대
- ✅ 조직의
미할당 잔여가 판매량만큼 늘어난다. - ✅
크레딧 판매 누적도 늘어난다. - ✅ Org Admin의
크레딧·정산구매 이력에 행이 추가된다. - ✅ 원장에
purchase엔트리(양수)가 남는다. - ✅ 조직 어드민에게 알림이 간다.
- ✅ 감사 로그에
org.sell_credits가 남는다.
실패 경로 체크박스를 안 누르면 payment_unconfirmed로 거부된다. 입금 확인 없이 크레딧이
나가는 것을 막는 장치다.
관련 크레딧 판매
S-04 인스턴스 유형 등록
Super Admin · 2분 · 선행 없음
노드를 등록하기 전에 유형과 단가가 먼저 있어야 한다.
절차
단가표에서+ 유형 추가를 누른다.- 유형 이름, EC2 타입, 등급(
즉시/서버급·예약), 시간당 크레딧, 사양을 넣는다. - 저장한다.
기대
- ✅ 단가표에 나타나고
노드 수는 0이다. - ✅ 등급이
서버급·예약이면 그 유형은 예약 화면에서만 보인다. 즉시 실행 목록에는 안 나온다. - ✅ Org Admin의
팀 관리허용 노드 타입 목록에 새 유형이 나타난다.
알아둘 것 단가 변경은 다음 세션·신규 예약부터 적용된다. 진행 중 세션은 시작 시점 단가를
유지한다. 사용 이력이 있는 유형은 삭제 대신 비활성화한다(type_referenced).
관련 단가표 관리
S-05 노드 등록과 검증 실패
Super Admin · 3분 · 선행 S-01, S-04
절차
노드 풀 관리에서+ 노드 등록을 누른다.- 조직, 노드 이름,
provider_instance_id를 넣는다. - 검증(verify)을 실행한다. 실제로 describe해서 존재를 확인한다.
- 등록한다.
기대
- ✅ 인벤토리에
가용상태로 나타난다. - ✅ 유형이 자동 매핑되고 단가표의 단가를 따른다.
- ✅ 단가표의 그 유형
노드 수가 1 늘어난다. - ✅ 팀 콘솔의
조직 노드 풀에 즉시 나타난다. - ✅ 즉시 유형이면 팀의 인스턴스 목록에 미기동 엔트리로 뜬다.
- ✅ 감사 로그에
node.register가 남는다.
실패 경로
| 입력 | 결과 |
|---|---|
| 없는 인스턴스 ID | verify_failed. 자격증명·리전·오타를 확인한다 |
이미 등록된 provider_instance_id | duplicate_instance. 노드 하나는 한 곳에만 등록된다 |
| 이미 쓰인 노드 이름 | duplicate. 이름도 전역 유일이다 |
aws 모드인데 sim- 접두 ID | sim_in_aws_mode |
관련 노드 풀 관리
S-06 팀 생성과 예산 할당
Org Admin · 3분 · 선행 S-01, S-03
예산 할당은 조직 미할당 풀에서 팀으로 크레딧이 이동하는 것이다. 숫자를 적어두는 게 아니다.
절차
팀 관리에서+ 팀 추가를 누른다.- 팀 이름과 크레딧 예산을 넣는다.
- 알림 임계값(기본 30%·10%)을 확인한다.
- 허용 노드 타입을 고른다.
- 만든다.
- 표시된 팀 코드를 복사해 둔다. 이 화면에서만 전체가 보인다.
기대
- ✅ 조직
미할당 풀이 예산만큼 줄어든다. - ✅ 팀 잔여가 그만큼 늘어난다. 합계는 변하지 않는다.
- ✅ 원장에
allocate_out(조직, 음수)과allocate_in(팀, 양수)이 쌍으로 남는다. - ✅ 감사 로그에
team.create가 남는다.
관련 팀 생애주기
S-07 미할당 풀을 넘는 예산 시도
Org Admin · 1분 · 선행 S-06
절차 미할당 풀보다 큰 예산으로 팀을 만들거나 기존 팀 예산을 올린다.
기대
- ✅
insufficient_credit으로 거부된다. - ✅ 팀이 만들어지지 않고 미할당 풀도 그대로다.
- ✅ 조직 잔여 = 미할당 풀 + 팀 잔여 합계 등식이 유지된다.
이 등식은 원장 제약으로 지켜진다. 애플리케이션이 계산을 틀려도 데이터베이스가 거부한다.
관련 팀 생애주기
S-08 팀 코드로 가입
사용자 · 2분 · 선행 S-06
절차
- 로그인 화면에서
팀 코드로 가입을 누른다. - 조직과 팀을 고른다.
- Org Admin에게 받은 팀 코드를 넣는다.
- 개인 아이디(영문 소문자·숫자·
. _ -, 3~30자)와 비밀번호(8자 이상)를 만든다. - 가입한다.
기대
- ✅ 가입 직후 자동 로그인되어 팀 대시보드로 간다.
- ✅ Org Admin의
팀 멤버목록에활성으로 나타난다. - ✅ 감사 로그에
auth.member_join이 남는다. - ✅ 다음부터는 팀 코드 없이 아이디·비밀번호로 로그인된다.
실패 경로
| 입력 | 결과 |
|---|---|
| 틀린 팀 코드 | invalid_team_code. 코드가 초기화됐을 수 있다 |
| 같은 팀에 있는 아이디 | username_taken. 아이디는 팀 안에서만 유일하면 된다 |
| 규칙에 안 맞는 아이디 | invalid_username |
| 8자 미만 비밀번호 | password_too_short |
관련 팀 가입하기
이 묶음이 끝나면
조직·크레딧·노드·팀·계정이 모두 준비된 상태다. 이제 실제로 GPU를 쓸 수 있다.