Files
cloud-orchestrator/SETUP.md
kappa 4cb9da06dc feat: 대역폭 추정 및 DAU 표시 기능 추가
- 동시접속자 기반 월간 대역폭 자동 추정
- DAU(일일활성사용자) 추정치 표시 (동접 × 10-14)
- 대역폭 기반 Linode/Vultr 자동 선택 로직
- 비용 분석에 대역폭 비용 포함
- 지역 미선택시 서울/도쿄/오사카/싱가포르 기본 표시
- 지역별 서버 분리 표시 (GROUP BY instance + region)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 09:40:36 +09:00

2.6 KiB

Server Recommendation System - Setup Guide

1. Create Cloudflare Resources

Create D1 Database

# Create D1 database
npx wrangler d1 create server-recommend-db

# Copy the database_id from output and update wrangler.toml

Create KV Namespace

# Create KV namespace for caching
npx wrangler kv:namespace create CACHE

# Copy the id from output and update wrangler.toml

2. Initialize Database Schema

# Execute schema.sql against your D1 database
npx wrangler d1 execute server-recommend-db --file=schema.sql

3. Seed Sample Data (Optional)

Create a file seed.sql with sample server data and run:

npx wrangler d1 execute server-recommend-db --file=seed.sql

4. Development

# Start local development server
npm run dev

# Type checking
npm run typecheck

5. Deployment

# Deploy to Cloudflare Workers
npm run deploy

API Endpoints

Health Check

curl https://your-worker.workers.dev/api/health

Get Servers

curl "https://your-worker.workers.dev/api/servers?minCpu=4&minMemory=8"

Request Recommendations

curl -X POST https://your-worker.workers.dev/api/recommend \
  -H "Content-Type: application/json" \
  -d '{
    "cpu_cores": 4,
    "memory_gb": 8,
    "storage_gb": 100,
    "network_bandwidth_mbps": 1000,
    "sla_requirement": 99.9,
    "budget_monthly": 200,
    "regions": ["us-east-1", "us-west-2"]
  }'

Environment Variables

No environment variables needed - all bindings are configured in wrangler.toml:

  • AI: Workers AI binding (automatic)
  • DB: D1 Database binding
  • CACHE: KV namespace binding

Testing Workers AI Integration

The worker uses @cf/meta/llama-3.1-8b-instruct model. Test with:

# Local development automatically uses Workers AI
npm run dev

# Make test request
curl -X POST http://localhost:8787/api/recommend \
  -H "Content-Type: application/json" \
  -d '{
    "cpu_cores": 2,
    "memory_gb": 4,
    "storage_gb": 50
  }'

Cache Strategy

Recommendations are cached in KV for 1 hour based on request parameters:

  • Cache key format: recommend:cpu:X|mem:Y|stor:Z|...
  • TTL: 3600 seconds (1 hour)
  • Cache hit/miss logged in console

Error Handling

All endpoints return proper HTTP status codes:

  • 200: Success
  • 400: Invalid request (validation error)
  • 404: Endpoint not found
  • 500: Internal server error

CORS is enabled for all origins (Access-Control-Allow-Origin: *).

Monitoring

Enable observability in wrangler.toml:

[observability]
enabled = true

View logs:

npx wrangler tail