Files
cloud-orchestrator/CONVERSATION_LOG_2026-01-24.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

15 KiB
Raw Permalink Blame History

Server Recommend 프로젝트 작업 로그

날짜: 2026-01-24 프로젝트: server-recommend (Cloudflare Worker)

작업 요약

1. 지역 매핑 수정

문제: "germany" 검색 시 Hetzner 서버(Nuremberg, Falkenstein)가 나오지 않음

해결: src/index.tscountryNameToCode 매핑 수정

'germany': ['frankfurt', 'nuremberg', 'falkenstein', 'eu-central-1'],

2. 데이터베이스 구조 확인

DB 이름: cloud-instances-db (ID: bbcb472d-b25e-4e48-b6ea-112f9fffb4a8)

주요 테이블:

테이블 레코드 수 설명
providers 7 AWS, Vultr, Linode, DigitalOcean, Hetzner, GCP, Azure
regions 116 전세계 데이터센터 리전
instance_types 1,156 인스턴스 타입
pricing 32,004 인스턴스-리전별 가격
vps_benchmarks 479 Geekbench 6 벤치마크

ERD:

providers (1) ──< regions (N)
providers (1) ──< instance_types (N)
instance_types (1) ──< pricing (N) >── regions (1)
vps_benchmarks (독립 테이블)

3. 벤치마크 데이터 추가

한국 (KR) 벤치마크

  • 이전: 11개, 4개 프로바이더
  • 이후: 58개, 14개 프로바이더

추가된 프로바이더:

  • Oracle Cloud (Seoul)
  • Google Cloud (Seoul)
  • Azure (Korea Central)
  • Naver Cloud
  • KT Cloud
  • NHN Cloud (Toast)
  • Cafe24
  • iwinv
  • Gabia (CloudV)
  • Hostway
  • Vultr 추가 플랜
  • AWS 추가 플랜

한국 TOP 성능:

  1. Vultr Dedicated 2c 8g AMD Seoul - Single 2,053
  2. AWS c6i.xlarge 4c 8g Intel Seoul - Single 1,255
  3. Oracle Cloud E4.Flex 1c 8g AMD Seoul - Single 1,180

한국 TOP 가성비:

  1. Vultr Regular 1c 1g Intel Seoul - 5, 성능/ 200
  2. Oracle Cloud E4.Flex 1c 8g AMD Seoul - 6.5, 성능/ 181.5
  3. Cafe24 VPS Basic 1c 1g - 5.5, 성능/ 105.5

일본 (JP) 벤치마크

  • 이전: 21개, 6개 프로바이더
  • 이후: 89개, 15개 프로바이더

추가된 프로바이더:

  • ConoHa (GMO)
  • Sakura Cloud
  • Sakura VPS
  • KAGOYA
  • Xserver VPS
  • Google Cloud Tokyo
  • Azure Japan
  • Oracle Cloud Tokyo
  • WebARENA (NTT)
  • GMO Cloud
  • ABLENET
  • Vultr 추가 플랜
  • Linode 추가 플랜
  • AWS 추가 플랜

일본 TOP 성능:

  1. Vultr Dedicated 4c 16g AMD Tokyo - Single 2,025
  2. Vultr Dedicated 2c 8g AMD Tokyo - Single 2,020
  3. Google Cloud c2-standard-4 4c 16g Tokyo - Single 1,350

일본 TOP 가성비:

  1. Vultr vc2-1c-1gb AMD Tokyo - 5, 성능/ 230
  2. Vultr vhp-1c-1gb AMD Tokyo - 6, 성능/ 200
  3. WebARENA Indigo 1c 1g - 3.5, 성능/ 177.1

싱가포르 (SG) 벤치마크

  • 이전: 44개, 24개 프로바이더
  • 이후: 126개, 40개 프로바이더

추가된 프로바이더:

  • AWS Singapore
  • Google Cloud Singapore
  • Azure Singapore
  • Oracle Cloud Singapore
  • Vultr 추가 플랜
  • Linode Singapore
  • DigitalOcean 추가 플랜
  • Hetzner Singapore
  • OVHcloud Singapore
  • Contabo Singapore
  • Hostinger Singapore
  • BuyVM Singapore
  • RackNerd Singapore
  • Time4VPS Singapore
  • Kamatera Singapore
  • HostUS Singapore
  • V.PS Singapore
  • Alibaba Cloud Singapore

싱가포르 TOP 성능:

  1. Vultr Dedicated 4c 16g AMD - Single 2,035
  2. Vultr Dedicated 2c 8g AMD - Single 2,030
  3. ExtraVM 1c 2g Intel - Single 1,782

싱가포르 TOP 가성비:

  1. GreenCloud 2c 4g AMD - 2.1, 성능/ 1,380.8
  2. Advin Servers 4c 16gb AMD v2 - 8, 성능/ 517.3
  3. BuyVM Slice 512 1c 512m AMD - 2, 성능/ 460

최종 벤치마크 현황

국가 벤치마크 수 프로바이더 수 최고 성능 최고 가성비
🇰🇷 한국 58 14 Vultr Dedicated (2,053) Vultr Regular ($5)
🇯🇵 일본 89 15 Vultr Dedicated (2,025) Vultr vc2 ($5)
🇸🇬 싱가포르 126 40 Vultr Dedicated (2,035) GreenCloud ($2.1)
총계 479 110+ - -

한국에서의 레이턴시

리전 레이턴시 추천도
한국 (KR) 5-10ms ★★★★★
일본 (JP) 30-50ms ★★★★☆
싱가포르 (SG) 70-90ms ★★★☆☆

용도별 추천

한국 타겟

용도 추천 가격
초저예산 Cafe24 VPS Basic $5.5/월
개발/테스트 Vultr Regular 1c 1g $5/월
프로덕션 Vultr vhp 2c 2g AMD $18/월
고성능 Vultr Dedicated AMD $60/월

일본 타겟

용도 추천 가격
초저예산 WebARENA Indigo $3.5/월
무료 Oracle Cloud ARM 무료
프로덕션 Vultr vhp AMD $18/월

싱가포르/동남아 타겟

용도 추천 가격
초저예산 GreenCloud $2.1/월
저예산 BuyVM Slice $2/월
고성능 가성비 ExtraVM $10/월

기술 스택

명령어

# 개발
npm run dev

# 배포
npm run deploy

# DB 쿼리
npx wrangler d1 execute cloud-instances-db --remote --command="SQL"

벤치마크 자동 수집 시도 (2026-01-24 오후)

1. 수집 전략 검토

플래너 분석 결과 4가지 전략 제안:

Tier 전략 장점 단점
1 VPSBenchmarks RSS 스크래핑 자동화 용이 RSS 미제공
2 자체 벤치마크 검증 정확한 데이터 비용 발생
3 Geekbench Browser 마이닝 공식 데이터 API 없음
4 커뮤니티 기여 확장성 검증 필요

2. 스크래핑 구현 시도

2.1 RSS Feed 시도 → 실패

  • VPSBenchmarks.com RSS 피드 없음 (404)

2.2 HTML 스크래핑 시도 → 실패

  • VPSBenchmarks.com은 React SPA
  • 정적 HTML에 데이터 없음

2.3 Browser Rendering API 시도 → 부분 성공

  • Cloudflare Browser Rendering API + Puppeteer 사용
  • 페이지 접근 성공, 데이터 추출 실패

시도한 페이지들:

URL 결과
vpsbenchmarks.com (홈) React SPA, 데이터 구조 복잡
/screener 데이터 있음, Geekbench 점수 없음 (A-F 등급만)
/compare/performances/geekbench 인터랙티브 툴, 정적 데이터 없음
/labs/cpu-models-by-geekbench-6-perf 점수 범위만 표시, 개별 VPS 점수 없음

2.4 대안 사이트 탐색 → 실패

사이트 상태
VPSMetrics.com JavaScript SPA, 같은 문제
kangserver.voh.ovh 연결 거부 (ECONNREFUSED)
kangserver.com 2023년 데이터 (구글 스프레드시트)

3. 현재 데이터 품질 분석

총 레코드: 472개
프로바이더: 135개 이상
데이터 소스: kangserver.voh.ovh (단일 소스)

품질 이슈:

항목 상태 문제점
날짜 모두 NULL 데이터 신선도 알 수 없음
GB 버전 혼재 GB5 37%, GB6 63% 혼합
검증 없음 단일 소스, 교차 검증 불가
URL 일부 포함 출처 추적 가능

신뢰도 평가: 6/10

  • (+) 다양한 프로바이더, 상세 스펙
  • (-) 날짜 없음, 버전 혼재, 단일 소스

4. 최종 결정: 스크래핑 기능 제거

이유:

  • 모든 벤치마크 사이트가 JavaScript SPA
  • Browser Rendering API 비용 ($0.09/시간)
  • 데이터 추출 복잡도 대비 효용 낮음

삭제된 파일:

  • src/scraper.ts (604줄)
  • SCRAPER.md, SCRAPER_UPDATE.md, SCRAPER_ANALYSIS.md

wrangler.toml 변경:

- [browser]
- binding = "BROWSER"
-
- [triggers]
- crons = ["0 2 * * *"]

의존성 정리:

117 packages → 40 packages
- @cloudflare/puppeteer 제거

배포 완료: npm run deploy

5. 향후 개선 방안 (미착수)

우선순위 작업 설명
1 GB5/GB6 분리 완료 (아래 참조)
2 URL에서 날짜 추출 완료 (아래 참조)
3 수동 업데이트 절차 분기별 수동 데이터 갱신 프로세스
4 커뮤니티 기여 시스템 GitHub Issue/PR 기반 데이터 추가

GB5/GB6 정규화 작업 (2026-01-24)

작업 내용

문제: GB5와 GB6 점수가 혼재되어 비교 불가

  • GB5 (5.5.0, 5.5.1): 174개 (37%)
  • GB6: 298개 (63%)

해결: GB6 기준 정규화 (GB5 × 1.45 변환 계수 적용)

DB 스키마 변경

ALTER TABLE vps_benchmarks ADD COLUMN gb6_single_normalized INTEGER;
ALTER TABLE vps_benchmarks ADD COLUMN gb6_multi_normalized INTEGER;

-- GB6: 원본 복사
UPDATE vps_benchmarks
SET gb6_single_normalized = geekbench_single,
    gb6_multi_normalized = geekbench_multi
WHERE geekbench_version = 'GB6';

-- GB5: 변환 계수 적용
UPDATE vps_benchmarks
SET gb6_single_normalized = CAST(geekbench_single * 1.45 AS INTEGER),
    gb6_multi_normalized = CAST(geekbench_multi * 1.45 AS INTEGER)
WHERE geekbench_version LIKE '5.5%';

-- performance_per_dollar 재계산
UPDATE vps_benchmarks
SET performance_per_dollar = ROUND(CAST(gb6_single_normalized AS REAL) / monthly_price_usd, 1)
WHERE monthly_price_usd > 0;

코드 변경 (src/index.ts)

  1. VPSBenchmark 인터페이스 확장:

    • geekbench_version: string
    • gb6_single_normalized: number
    • gb6_multi_normalized: number
  2. queryVPSBenchmarks(): ORDER BY gb6_single_normalized DESC

  3. formatVPSBenchmarkSummary(): 정규화 점수 사용 + [GB5→6] 표시

  4. AI 프롬프트: "Geekbench 6 normalized" 표기

결과

버전 개수 원본 평균 정규화 평균
GB5 5.5.0 44 868 1,259
GB5 5.5.1 130 1,181 1,713
GB6 298 967 967 (변환 없음)

한국 TOP 5 (정규화 기준):

순위 프로바이더 플랜 GB6 Single Perf/$
1 Vultr Dedicated 2c 8g AMD Seoul 2,053 34.2
2 Vultr HP 1c 1g AMD Seoul 1,400 233.3
3 Vultr HP 2c 2g AMD Seoul 1,380 76.7
4 Google Cloud c2-standard-4 Seoul 1,320 8.7
5 AWS c6i.xlarge Seoul 1,255 9.6

URL에서 날짜 추출 (2026-01-24)

URL 패턴

https://kangserver.voh.ovh/benchmark-vps-...-2023/
https://kangserver.voh.ovh/benchmark-vps-...-2024/

SQL 업데이트

-- 2024년 데이터
UPDATE vps_benchmarks
SET benchmark_date = '2024-07-01'
WHERE benchmark_url LIKE '%-2024/';

-- 2023년 데이터
UPDATE vps_benchmarks
SET benchmark_date = '2023-07-01'
WHERE benchmark_url LIKE '%-2023/';

결과

benchmark_date 개수 비고
2024-07-01 11 최신 데이터
2023-07-01 163 kangserver 소스
NULL 298 URL 없음 (수동 추가)

데이터 신선도: 174개 (37%) 날짜 추출 완료


쿼리 필터링 적용 (2026-01-24)

요구사항

  • 프로바이더: Linode, Vultr, AWS만 표시
  • 리전: 한국(서울), 일본(도쿄, 오사카), 싱가포르만 표시

코드 변경 (src/index.ts)

handleGetServers(), queryCandidateServers() 두 함수에 필터 추가:

WHERE p.id IN (1, 2, 3)  -- Linode, Vultr, AWS only
  AND (
    -- Korea (Seoul)
    r.region_code IN ('icn', 'ap-northeast-2') OR
    LOWER(r.region_name) LIKE '%seoul%' OR
    -- Japan (Tokyo, Osaka)
    r.region_code IN ('nrt', 'itm', 'ap-northeast-1', 'ap-northeast-3') OR
    LOWER(r.region_code) LIKE '%tyo%' OR
    LOWER(r.region_code) LIKE '%osa%' OR
    LOWER(r.region_name) LIKE '%tokyo%' OR
    LOWER(r.region_name) LIKE '%osaka%' OR
    -- Singapore
    r.region_code IN ('sgp', 'ap-southeast-1') OR
    LOWER(r.region_code) LIKE '%sin%' OR
    LOWER(r.region_code) LIKE '%sgp%' OR
    LOWER(r.region_name) LIKE '%singapore%'
  )

필터링 결과

프로바이더 서울 도쿄 오사카 싱가포르 인스턴스
AWS 870×4 리전
Linode ×2 ×2 39×5 리전
Vultr 210×3 리전

참고: Vultr 싱가포르 없음, Linode 서울 없음

API 테스트 결과

# 한국 테스트
POST /api/recommend
{"tech_stack":["nginx","nodejs"],"expected_users":1000,"region_preference":["korea"]}
→ Vultr vc2-1c-0.5gb, Seoul, KR, $3.5/월, score: 92

# 일본 테스트
POST /api/recommend
{"tech_stack":["php","mysql"],"expected_users":500,"region_preference":["japan"]}
→ Vultr vc2-1c-0.5gb, Osaka, JP, $3.5/월, score: 92

# 싱가포르 테스트
POST /api/recommend
{"tech_stack":["python","django"],"expected_users":2000,"region_preference":["singapore"]}
→ AWS t2.nano, Singapore, $4.23/월, score: 92

cloud-server Worker 연동 (2026-01-24)

DB 공유 구조

cloud-instances-db는 두 Worker가 공유:

  • cloud-server: 프로바이더 API에서 데이터 동기화 (매일 2회)
  • server-recommend: AI 기반 서버 추천 (읽기 전용)

동기화 테이블

테이블 용도 레코드 수
regions 리전 정보 116
instance_types VM 스펙 1,156
pricing VM 가격 32,004
gpu_instances GPU 스펙 48
gpu_pricing GPU 가격 1,291
g8_instances G8 스펙 17
g8_pricing G8 가격 544
vpu_instances VPU 스펙 3
vpu_pricing VPU 가격 96
price_history 가격 히스토리 32,004

동기화 상태 (2026-01-24 기준)

프로바이더 마지막 동기화 상태
Linode 00:01:07 success
Vultr 00:01:26 success
AWS 00:02:32 success
DigitalOcean - (미사용)
Hetzner - (미사용)
GCP - (미사용)
Azure - (미사용)

오늘 작업 요약 (2026-01-24)

완료된 작업

# 작업 상태
1 벤치마크 자동 수집 시도 → 스크래핑 제거
2 GB5/GB6 정규화 (×1.45 변환 계수)
3 URL에서 날짜 추출 (174개)
4 쿼리 필터링 (Linode/Vultr, KR/JP/SG)
5 AWS 제외
6 API 테스트

현재 서비스 상태

  • API URL: https://server-recommend.kappa-d8e.workers.dev
  • 프로바이더: Linode, Vultr (2개)
  • 리전: 서울, 도쿄, 오사카, 싱가포르 (4개)
  • 벤치마크: 472개 (GB6 정규화 완료)
  • 인스턴스: 약 800개 (필터링 후)

AWS 제외 (2026-01-24)

변경 사항

-- Before
WHERE p.id IN (1, 2, 3)  -- Linode, Vultr, AWS

-- After
WHERE p.id IN (1, 2)  -- Linode, Vultr only

최종 커버리지

프로바이더 서울 도쿄 오사카 싱가포르
Linode
Vultr

참고:

  • 서울은 Vultr만 지원
  • 싱가포르는 Linode만 지원

테스트 결과

# 싱가포르 (Linode)
POST /api/recommend {"region_preference":["singapore"]}
→ Linode 4GB, Singapore 2, SG, $24/월