결론부터 말하면 충분히 실현 가능하며, 오히려 AIStor Enterprise에서 부족한 "Prefix Metadata Layer"를 만드는 아키텍처라고 생각합니다.
특히 현재 AIStor는
취급이기 때문에 Prefix 자체에 대한 메타정보는 거의 없습니다.
반면 실제 Enterprise Data Lake에서는 관리 단위가 Bucket이 아니라 거의 대부분 Prefix(Project, Team, Dataset, User Sandbox) 입니다.
예)
bucket
├── finance/
├── sales/
├── hr/
├── ai/
└── users/
├── user01/
├── user02/
└── user03/
실제 운영자는 bucket이 아니라
finance/
를 관리하고 싶어합니다.
그래서 별도의 Metadata Server를 두는 접근은 상당히 좋은 구조입니다.
+----------------------+
| Portal/UI |
+----------+-----------+
|
REST / GraphQL
|
+----------v-----------+
| Prefix API Server |
|----------------------|
| Prefix CRUD |
| Quota |
| Alias |
| ILM Cache |
| Versioning Cache |
| Owner |
| Dashboard |
| Alert |
+----------+-----------+
|
+-----------------+-------------------+
| |
| |
+-------v--------+ +--------v--------+
| Metadata DB | | Event Processor |
| CNPG(Postgres) | +--------+--------+
+-------+--------+ |
| |
| |
+-------v--------+ +----------v---------+
| Background Job | | MinIO Notification |
| Inventory Sync | | Kafka/NATS/Webhook |
+-------+--------+ +----------+---------+
| |
+-------------------+------------------+
|
+------v------+
| AIStor |
+-------------+
API Server는 크게 5가지 역할을 하게 됩니다.
가장 중요한 기능입니다.
예를 들어
finance/raw/
finance/report/
sales/2026/
각 Prefix를 하나의 Entity처럼 관리합니다.
DB
Prefix
id
bucket
prefix
owner
created_at
updated_at
alias
description
status
이게 모든 기능의 중심이 됩니다.
사용자가 원하는
총 Object 개수
총 용량
평균 Object 크기
최근 증가량
최근 삭제량
등을 관리합니다.
예)
prefix_statistics
prefix_id
object_count
size
last_scan
daily_growth
weekly_growth
monthly_growth
이 정보는
mc inventory
또는
S3 LIST
에서 갱신됩니다.
AIStor에서 조회 가능한
ILM
Versioning
Object Lock
Replication
등을 캐싱합니다.
왜냐하면 UI에서
6000 Prefix를 매번 API 호출하면 느립니다.
그래서
Bucket Policy
↓
API Server Cache
↓
Prefix Mapping
으로 가져가는 것이 좋습니다.
AIStor는 Prefix Quota가 없습니다.
그래서
Quota
50TB
10M Objects
같은 기능은
Metadata Layer에서 구현해야 합니다.
업로드 시
Current
+
Incoming
>
Quota
이면
Webhook
또는
Proxy
또는
OPA
에서 차단 가능합니다.
이 부분이 가장 Enterprise스럽습니다.
예)
POST
/prefix
{
bucket
prefix
owner
}
하면
자동으로
.placeholder
생성
Metadata 생성
Owner 등록
Quota 생성
Alias 생성
Audit 기록
까지 수행합니다.
제가 추가하고 싶은 컬럼들입니다.
Prefix
id
bucket
prefix
alias
display_name
description
owner
group
business_unit
dataset_type
status
depth
created_at
updated_at
created_by
updated_by
placeholder_object
Statistics
object_count
size
deleted_size
deleted_count
small_object_ratio
average_object_size
max_object_size
last_scan
Growth
daily_growth
weekly_growth
monthly_growth
prediction_30d
prediction_90d
Quota
soft_limit
hard_limit
warning_ratio
Policy
versioning
ilm
replication
retention
legal_hold
Alert
last_large_delete
last_spike
last_slowdown
이 부분은 거의 필수입니다.
추천
mc inventory
↓
CSV
↓
Parser
↓
Kafka
↓
Worker
↓
Postgres Update
왜 Kafka를 넣느냐 하면
6000 Prefix
수억 Object
Inventory가 수십 GB가 될 수 있기 때문입니다.
Owner도 매우 좋은 기능입니다.
Bucket Owner와 별도로
Finance Team
AI Team
홍길동
처럼 관리 가능합니다.
추천
Keycloak
LDAP
AD
와 연결하세요.
Owner
↓
Group
↓
Role
↓
Dashboard
굉장히 좋은 아이디어입니다.
예)
실제
dataset/raw/project123/
Alias
AI Raw Data
Portal에서는 Alias만 보여주면 됩니다.
이건 AI를 넣기 좋은 부분입니다.
예)
최근 90일
↓
ARIMA
Prophet
LSTM
↓
30일 후
120TB 예상
Capacity Planning이 됩니다.
추천하는 Alert 종류입니다.
| 분류 | 조건 |
|---|---|
| Large Delete | 5분간 삭제량 > 기준 |
| Growth Spike | 평균 대비 5배 증가 |
| PUT 폭증 | PUT/sec 급증 |
| GET 폭증 | GET/sec 급증 |
| Latency 증가 | 평균 대비 2배 |
| Inventory 변화 없음 | 수집 실패 |
| Quota 80% | 경고 |
| Quota 95% | Critical |
권한별 Dashboard도 매우 좋습니다.
예)
Admin
전체
↓
BU 관리자
Finance
↓
팀장
AI Team
↓
사용자
내 Prefix만
Keycloak JWT의 Group Claim을 그대로 활용하면 구현이 깔끔합니다.
여기서 끝내지 않고 Enterprise라면 아래도 거의 필수입니다.
누가
생성
삭제
Alias 변경
Quota 변경
Owner 변경
했는지 모두 저장해야 합니다.
Environment
PII
Production
Archive
ML
Finance
Tag 검색이 가능해야 합니다.
예)
Health
97
계산
Quota
Growth
Errors
Delete
Latency
Availability
OpenCost와 연결하면
Storage Cost
Request Cost
Growth Cost
까지 나옵니다.
Object 너무 작음
↓
Compress 추천
ILM 없음
↓
추천
Versioning 필요
↓
추천
Google처럼
raw
finance
2026
검색 가능해야 합니다.
100TB 이상 Prefix 생성
↓
Manager Approval
↓
자동 생성
기업 환경에서는 특히 유용합니다.
현재 구상은 단순한 Prefix 메타 관리 수준을 넘어, AIStor 위에 "Enterprise Metadata Control Plane"을 구축하는 방향으로 발전시키는 것이 좋습니다.
Enterprise Portal
│
┌──────────────┴──────────────┐
│ │
Prefix Metadata API Admin API
│ │
├──────────────┬──────────────┤
│ │ │
Prefix Registry Statistics Policy Engine
│ │ │
├──────────────┴──────────────┤
│ PostgreSQL (CNPG) │
└──────────────┬──────────────┘
│
┌──────────────┼────────────────────────────┐
│ │ │
Inventory Sync Event Processor Metrics Collector
(mc inventory) (S3 Event/Kafka/NATS) (Prometheus/OpenCost)
│ │ │
└──────────────┴──────────────┬─────────────┘
│
MinIO AIStor
이 구조는 사용자가 추진 중인 Cloud Native Data Lakehouse와도 매우 잘 맞습니다. 여기에 이미 계획 중인 OpenCost, Prometheus, Keycloak, GitOps 체계를 연계하면 단순한 메타 관리가 아니라 스토리지 운영, 비용, 보안, 용량 계획, 이상 탐지까지 통합하는 플랫폼으로 확장할 수 있습니다.
추가로 제안드리자면, API Server를 플러그인(Provider) 구조로 설계하는 것을 권장합니다. Storage Provider 인터페이스를 두어 현재는 AIStor만 구현하고, 이후에는 S3 호환 스토리지나 HDFS, NAS까지 동일한 Prefix 메타 모델로 관리할 수 있게 하면 특정 스토리지에 종속되지 않는 데이터 관리 플랫폼으로 발전시킬 수 있습니다. 이는 향후 데이터 마이그레이션이나 멀티 스토리지 운영 시에도 큰 장점이 됩니다.