26Z24c

QK·2026년 8월 23일

반영하겠습니다.

수정 사항

  • 메타데이터 저장소: PostgreSQL → Oracle DB로 변경 (quota, project 정보 등)
  • Vault 제거: 별도 Secret Store 없음. Access/Secret Key도 Oracle DB에 저장하는 구조로 단순화 (필요시 컬럼 암호화는 별도 고려)
  • Bucket 생성 불필요: 버킷은 사전 할당되어 있으므로 관리 API에서 CreateBucket/HeadBucket 제거. 대신 prefix 단위 관리(생성/삭제 시 하위 객체 정리)가 필요
  • "Admin API"의 정체 명확화: AIStor Admin API를 UI가 직접 호출하는 게 아니라, 자체 API Server(v4)가 내부적으로 AIStor의 S3 API + Admin API를 조합해 로직(quota reconcile, RW/RO 전환, prefix 정리 등)을 구현하고, 그 결과를 자체 REST API로 외부(UI)에 서비스하는 구조

역할 재정리

구분역할내부적으로 쓰는 AIStor API자체 개발 필요 (v4 API Server 로직)
MLflow아티팩트 read/write. 자기 project prefix만 접근S3: GetObject, PutObject, DeleteObject, ListObjectsV2, GetBucketLocation, CreateMultipartUpload/UploadPart/CompleteMultipartUpload/AbortMultipartUpload/ListParts없음
관리 API Server (v4)프로젝트(=prefix) 라이프사이클, Access Key 발급, RW/RO 정책 전환, Quota 설정/조회, prefix 삭제 클린업S3: PutObject(prefix 초기화용 placeholder, optional), ListObjectsV2+DeleteObject(프로젝트 삭제 시 하위 객체 일괄 정리) / Admin: CreateServiceAccount/UpdateServiceAccount/DeleteServiceAccount/ListServiceAccounts/InfoServiceAccount, CreatePolicy/GetPolicy/DeletePolicy/AttachPolicyQuota Controller(StarRocks usage ↔ quota ↔ desired policy state reconcile), 자체 REST API(v4) 설계, Oracle DB CRUD 연동, RW/RO 정책 템플릿 생성·전환 로직, prefix 삭제 배치 로직

이제 다이어그램을 노드 위를 지나는 선 없이 다시 그리겠습니다.변경된 배치

  • Oracle DB → 관리 API Server(v4) (세로 직결, 왼쪽 컬럼)
  • MLflow(우상단) → AIStor(중앙), 관리 API Server(좌측) → AIStor(중앙): 서로 다른 방향에서 진입해 겹치지 않음
  • AIStor → Kafka → StarRocks: 중단부에서 좌→우 흐름
  • StarRocks → 관리 API Server(피드백/Quota reconcile 루프): 다이어그램 왼쪽 바깥 여백(x=20)을 타고 우회시켜 Kafka/AIStor 박스를 관통하지 않도록 명시적 waypoint 처리

버킷 생성 관련 엣지는 제거했고, 관리 API↔AIStor 화살표 라벨에 "prefix 정리(List/Delete)"를 추가해 prefix 기반 관리라는 점을 반영했습니다. 열어보시고 라벨 문구나 박스 크기는 자유롭게 조정하시면 됩니다.

==

역할 구분

구분역할AIStor S3 API (기존 기능 사용)AIStor Admin API (기존 기능 사용)추가 개발 필요
MLflow실제 아티팩트 read/write (data plane). 자신의 project prefix만 접근GetObject, PutObject, DeleteObject, ListObjectsV2, GetBucketLocation, CreateMultipartUpload/UploadPart/CompleteMultipartUpload/AbortMultipartUpload/ListParts없음 (Admin credential 미부여)없음 (S3 endpoint/키만 주입)
관리 UI (Project Portal)project(=prefix) 라이프사이클, access key 발급, RW/RO 정책 전환, quota 설정, usage 대시보드 (control plane)CreateBucket/HeadBucket (최초 1회, 버킷은 공용 1개)CreateServiceAccount/ListServiceAccounts/InfoServiceAccount/UpdateServiceAccount/DeleteServiceAccount, CreatePolicy/GetPolicy/DeletePolicy/AttachPolicyQuota Controller(reconcile loop: StarRocks usage ↔ quota ↔ desired policy state), 프로젝트 메타데이터 CRUD API(PostgreSQL), Secret 연동(Vault), usage 조회 API(StarRocks 기반), RW/RO 정책 템플릿 생성·전환 로직

핵심: MLflow는 순수 S3 API 소비자, 관리 UI는 AIStor Admin API + 자체 Quota Controller를 가진 control plane입니다. Quota 판단(StarRocks) → 상태 결정 → AIStor 정책 반영은 AIStor 기본 기능이 아니라 자체 구현입니다.

이제 구성도를 draw.io 형식으로 만들겠습니다.draw.io(diagrams.net)에서 바로 열 수 있는 파일로 만들었습니다.

구성 요약:

  • 관리UI → AIStor: Admin API (ServiceAccount 생성/수정, Policy RW↔RO 전환, 최초 Bucket 생성)
  • MLflow → AIStor: 순수 S3 API (Get/Put/List/Delete/Multipart)
  • AIStor → Kafka → StarRocks: 실시간 usage 집계, 점선은 daily inventory reconciliation
  • StarRocks → 관리UI: Quota Controller가 usage를 조회해 desired state 계산 후 다시 AIStor 정책에 반영하는 reconcile 루프
  • 관리UI 하단: PostgreSQL(메타데이터), Vault(시크릿) — 둘 다 관리UI 내부에서 추가 개발이 필요한 부분

전체 톤은 회색조 단색으로 통일했고, 박스/화살표에 라벨로 역할과 필요 API만 최소한으로 표기했습니다. 열어서 레이아웃이나 문구는 자유롭게 수정하시면 됩니다.

profile
engineer

0개의 댓글