← [Posts / 01]

위볼리 인프라 이주기

[Index] 11개
  1. 01 MVP 때는 문제가 아니었습니다
  2. 02 영상을 앞두고 시작된 문제
  3. 03 관리형으로 계속 가면 어디서 막힐까
  4. 04 업체가 아니라 조건으로 찾았습니다
  5. 05 무엇을 재고 비교했나
  6. 06 그래서 이렇게 정했습니다
  7. 07 옮기는 과정
  8. 08 남은 문제: 그다음 이주는 언제 해야 할까
  9. 09 영상은 이렇게 처리합니다
  10. 10 마치며
  11. 11 출처

혼자서 가볍게 만들어 본 앱이 이제 사업이 되었다면?

2026년 10월, 단순 기능 개발보다 ‘서비스 확장’이 눈앞의 관문이 되면서 가장 먼저 고민한 것은 ‘인프라’였습니다. AI 학습과 모델링, 해외 타게팅, 영상 저장 등을 앞둔 위볼리는 백엔드 서버뿐만 아니라 GPU와 스토리지, 리전까지 모두 고려해야 했기 때문입니다.

저는 클라우드/AI 분야에서 오래 몸담아 왔기에 이런 인프라 구성을 설계하면서 이사를 준비하는 것은 상당히 설레는 일이었습니다.

그래서 첫 포스트는 MVP에서 정식 서비스를 준비하기까지의 [인프라 이주기]입니다. 위볼리의 초기 구성, 이사할 집을 어떤 기준으로 골랐는지, 그리고 실제로 어떻게 옮기고 있는지에 대한 이야기를 하려고 합니다.

결론부터 말하면, 지금은 지원사업에 맞는 국내 클라우드로 옮기고, 비용이나 해외 사용이 기점을 넘으면 해외 클라우드로 한 번 더 옮깁니다. 그래서 두 번째 이전은 DNS만 바꾸면 끝나도록 처음부터 구조를 짰어요.

그리고 제가 좋아하는 분야인 만큼 인프라에 대해서는 앞으로도 포스팅을 이어가려고 합니다.

MVP 때는 문제가 아니었습니다

위볼리는 관리형 Supabase 무료 플랜 하나로 만들어졌습니다.

처음엔 이게 문제가 아니었어요. 혼자 빨리 만들어야 했으니까요.

그래서 서버를 직접 운영하지 않는 구성을 골랐습니다. 백엔드는 관리형 Supabase 하나에 전부 맡겼고, 무료 플랜이라 비용은 0원이었어요. 한 곳에서 DB · 로그인 · 실시간 · 파일을 다 주고, 권한 규칙 · 함수 · 크론을 DB 안에 두면 서버 코드 없이도 기능을 빨리 쌓을 수 있었거든요.

지금은 백엔드 전부를 관리형 Supabase 한 곳에 맡기고 있어요

2026-10-26 기준 · 점선은 아직 없는 부품

앱iOS · Android · 웹을 한 코드로(Expo)JS 수정은 OTA
웹 · 운영자 콘솔 · 공유 링크Vercel
백엔드 · 관리형 Supabase (서울 · 무료 플랜 · 달러 결제)DB(Postgres) · 로그인(카카오 · 애플 · 구글) · 조회 API실시간 채팅 · 함수 · 크론 16개업체가 서버를 대신 돌리고, 앱은 업체 주소(supabase.co)를 바로 부름
파일 · 영상 저장사진은 Supabase 안(약 6MB)영상 저장은 아직 없음
영상 재생 · CDN아직 없음영상 화면은 내부에서만
GPU 분석아직 없음11월부터 지원사업 GPU(바우처)
바깥 서비스Expo 푸시 · EAS 빌드 · Sentry 오류 · 카카오 지도 · UptimeRobot 감시 · 가비아 도메인백업: GitHub Actions가 매일 DB만 받음(사진 파일은 빠짐)

지금은 백엔드가 관리형 Supabase 한 곳에 있어요. 결제는 달러이고, 앱은 업체 주소(supabase.co)를 바로 부릅니다. 영상 저장 · 재생과 GPU는 아직 없고요.

2026년 4월 첫 배포부터 6개월이 지난 2026년 10월 기준 규모는 아래와 같습니다.

  • 가입 315명, 월 활동 약 100명
  • DB 데이터 약 3MB, 사진 약 6MB. 표 72 · DB 함수 353 · 권한 규칙 약 160 · 크론 16
  • 국내 응답 시간은 중앙값 55~75ms
  • 무료 플랜은 자동 백업이 없어서, 매일 pg_dump를 GitHub Actions로 따로 받아 왔어요

영상을 앞두고 시작된 문제

문제는 영상을 올리려고 하면서 시작됐어요. 경기 원본은 2시간 1080p 기준 약 12GB인데, 무료 플랜은 파일 하나를 50MB까지만 받습니다. 유료로 올려도 달러 결제와 해외 속도 문제가 남았고요.

옮기기로 한 이유를 정리하면 다섯 가지예요.

  1. 영상: 원본 하나가 약 12GB라 무료 플랜으로는 올릴 수 없어요. 영상이 늘면 저장 · 전송비가 가장 큰 비용이 됩니다.
  2. 해외: 일본 · 미국 사용자를 받을 계획인데, 서버가 서울 한 곳이라 미국에서는 요청마다 130~180ms가 더 걸려요.
  3. 결제: 정부 지원사업은 외화 결제가 안 돼서 원화 청구가 필요했어요. 그리고 전송비가 저렴하길 원했습니다.
  4. 종속: 인프라 업체에 묶이고 싶지 않았어요. 언제든 다른 곳으로 옮길 수 있는 구조를 원했습니다.
  5. 타이밍: 고객이 늘어난 뒤보다 지금 옮기는 게 깔끔해요. 데이터가 작고 영상을 열기 전인 지금이 가장 쉽습니다.

판단 기준은 지금 규모가 아니라 크게 커진 뒤로 잡았어요.

관리형으로 계속 가면 어디서 막힐까

그렇다면 관리형 Supabase를 유료로 쓰면 되지 않을까요?

먼저 장점부터 봤어요. 아래는 Pro 요금제(월 25달러) 기준입니다.

  • 운영을 업체가 해요: 매일 백업(7일 보관), 버전 올리기, 보안 패치, 감시까지요.
  • 작을 때 가장 싸요: 월 25달러에 DB 8GB · 파일 100GB · 전송 250GB · 월 활동 회원 10만 명이 들어 있어요.
  • 버튼으로 키워요: 서버 사양, 다른 지역 읽기 복제본, 시점 복구(월 100달러부터)까지요.
  • 나갈 수 있어요: 오픈소스라 같은 프로그램을 제 서버에 띄울 수 있어요. 지금 하는 이전이 바로 그 길입니다.

작을 때는 가장 싸고 손이 안 가요. 막히는 곳은 두 방향에서 보였습니다. AI 영상 추론 서비스로 볼 때와, 서비스가 커질 때예요.

AI 영상 추론 서비스로 보면

항목관리형 Supabase위볼리에게 뜻하는 것
GPU없음. 함수는 요청마다 CPU 2초 · 메모리 256MB · 최대 400초분석 · 영상 변환은 어디서든 밖의 GPU 일꾼이 해요. Supabase는 작업 표 · 서명 주소 · 결과 저장만 맡으니, 이 점은 관리형이든 직접 운영이든 같아요
올리기무료 플랜은 파일 하나 50MB, Pro는 500GB까지2시간 원본(약 12GB)은 무료 플랜으로 못 받아요
저장100GB 넘으면 GB당 월 0.0213달러국내 클라우드 저장소와 비슷해요
전송250GB 넘으면 GB당 0.09달러(캐시에 맞으면 0.03달러)영상마다 보는 사람이 적어 대부분 0.09달러로 잡아요. GPU가 원본을 내려받는 것도 전송이라, 월 300경기(약 10.8TB)면 전송만 월 약 950달러(약 133만 원)예요

서비스가 커질 때 보면

항목관리형 Supabase위볼리에게 뜻하는 것
회원 수월 활동 10만 명까지 포함, 넘으면 1명당 0.00325달러100만 명이면 월 약 2,925달러(약 410만 원). 직접 운영하면 로그인은 서버값뿐이에요
서버4코어 16GB 월 210달러, 8코어 32GB 월 410달러(Pro 25달러 별도)4코어 16GB면 월 약 31.5만 원으로, 같은 사양 직접 운영(월 약 18.6만~22.3만 원)의 1.4~1.7배예요
실시간동시 연결 500 포함, 지출 상한을 끄면 1만까지(1,000개당 월 10달러)1만을 넘으면 상위 요금제로 올라가야 해요
지역쓰기는 한 지역, 다른 지역은 읽기 복제본(조회만)미국 사용자의 쓰기 · 채팅은 늘 서울까지 가요. 직접 운영해도 같은 구조라 차이는 비용이에요
결제 · 운영달러 카드, 운영은 업체지원사업 돈으로 못 내요. 직접 운영하면 백업 · 업데이트 · 장애를 제가 맡아요

즉 문제는 성능이 아니었습니다. 결제와 영상 전송비, 그리고 커질 때의 종량 요금이었어요. 대신 직접 운영의 가장 큰 비용은 운영 책임이라, 매일 백업 · 복원 연습 · 감시를 스크립트로 두기로 했습니다.

업체가 아니라 조건으로 찾았습니다

업체 이름이 아니라 조건으로 찾았어요. 새 인프라가 만족해야 했던 건 여덟 가지예요.

  1. 원화 · 세금계산서: 당분간은 정부 지원사업 돈으로 낼 수 있어야 해요.
  2. S3 방식 저장소: 벤더 의존도를 낮추려고 저장은 처음부터 S3 API로만 설계했어요. S3 방식이면 어느 업체에서든 코드가 그대로 돌고, 옮길 때는 주소와 열쇠만 바꾸면 됩니다.
  3. 서명 주소가 되는 CDN: 회원 영상은 서명된 주소로만 재생해요.
  4. 해외: 일본 · 미국 · 유럽 사용자에게도 느리지 않아야 해요.
  5. 표준만으로: 서버 + Docker · Postgres에 오픈소스 Supabase를 그대로 띄우고, 업체 전용 관리형 서비스에 기대지 않아요.
  6. 안정성: 매일 쓰는 앱 서버와 데이터는 규모와 업력이 어느 정도는 되는 곳을 선택했어요. 혼자서 독자적인 서비스를 구축하는 것은 처음이기에 기술 지원과 상담이 한국어로 된다는 것도 선택의 큰 이유입니다.
  7. GPU는 따로: GPU는 비싸고, 빌려주는 스타트업은 많이 생기지만 오래 버틸지는 믿기 어려워요. 그래서 클라우드와 떼어 두고, 지원사업이 주는 AI 솔루션부터 써 보면서 언제든 바꿀 수 있어야 했어요.
  8. 비용: 지금 규모에서 싸고, 영상이 늘 때 비용을 미리 셀 수 있어야 해요.

무엇을 재고 비교했나

비교해 보니 서버와 저장은 국내가 조금 싸고 영상 전송은 정액 CDN이 있는 해외 클라우드가 훨씬 싸요. 그래서 전송비는 업체를 고르는 데보다 언제 옮길지(기점)를 정하는 데 썼습니다.

잰 것

  • 규모 · 응답 시간: 운영 백업과 실제 요청으로 재요.
  • 권한 규칙 성능: 규칙 162개 중 70개가 “내 ID”, “관리자인가”를 줄마다 다시 계산하는 모양이었어요. 10만 줄 표를 만들어 재 보니 넓게 훑는 조회가 275ms였고, 한 번만 계산하게 감싸면 5ms였습니다. 걸러서 가져오는 지금 조회는 0.5ms에서 0.1ms라 당장은 문제가 아니에요.

처음 놓은 세 안

A는 관리형 Supabase 유지(Pro + 미국 읽기 복제본, 월 약 46달러), B는 서버에 오픈소스 Supabase를 직접 운영, C는 클라우드 관리형 DB로 다시 짜기였어요. C는 클라우드 관리형 DB(예: RDS)에 위볼리가 쓰는 pg_net이 없어서 사실상 백엔드를 다시 짜야 했고, 그래서 빠졌습니다.

업체 비교(공식 요금표 · 문서로 여섯 곳을 조사)

업체판정이유
네이버클라우드국내 1순위S3 방식 저장소 · CDN 서명 URL · 일본 지역 · 원화 청구. 영상 전송은 GB당 84원, 미국은 구형 서버만
NHN Cloud국내 2순위서명 주소까지 문서에 있음. 미국 지역이 없고 서버가 10% 비쌈
카카오클라우드지금은 불가사업자등록이 있어야 가입, 자체 CDN 종료
KT Cloud제외S3 방식 저장소를 일반 회사가 쓸 수 있는지 확인하지 못함
가비아제외일반 고객용 오브젝트 스토리지가 없음(공공기관 전용)
AWS 서울해외 1순위CDN 정액제(월 15달러에 50TB), 도쿄 · 미국 지역, 한국 법인의 원화 카드 청구

국내 전송이 비싼 건 통신사끼리 주고받는 트래픽에도 돈을 내는 구조(2016년 상호접속 고시) 때문이에요. 트위치도 2024년 한국을 떠나며 망 비용을 이유로 들었습니다.

영상 저장 대안으로 본 것

  • GPU 업체 저장소: GPU 머신에만 붙는 디스크라 폰에서 올리거나 앱에서 재생할 수 없어 뺐어요(1TB 한 달 약 20만 원).
  • 국내 저장소 + 해외 정액 CDN만: CDN이 국내 원본에서 가져갈 때마다 국내 전송료(GB당 100원)가 나가 오히려 손해예요.
  • Supabase Pro 저장소: 100GB가 들어 있지만 달러 결제이고, 나가는 데이터가 월 250GB를 넘으면 GB당 0.09달러예요.

크레딧 프로그램(법인 여부에 따라 갈려요): 네이버 그린하우스(제휴 투자사 · 정부 지원 사업 대상, 공모는 2,000만 원, 이미 네이버를 쓰고 있으면 반려될 수 있음), NHN(바로 1,000만 원, 법인만), 카카오(사업자 필요), AWS Activate(설립 10년 이내 + 웹사이트, 평생 한 번), NVIDIA Inception(법인 필요).

그래서 이렇게 정했습니다

위 조건을 모두 놓고 고른 조합이에요.

역할고른 곳맞춘 조건
지금 옮길 국내 클라우드네이버클라우드원화 · 세금계산서, S3 방식 저장소, 서명 주소 CDN, 규모와 업력. 해외는 일본 · 싱가포르 서버와 해외 CDN 거점까지(미국 서부는 최신 서버가 없고, 유럽은 확인 못 함)
기점이 오면 옮길 해외 클라우드AWS영상 전송 정액(월 15달러에 50TB), 미국 · 유럽 지역, 원화 카드 청구
GPU국내 GPU 스타트업 런유어AI지원사업 바우처. 갈아 끼우는 자리라 바꿔도 나머지는 그대로

해외 클라우드로 옮길 날짜는 정해 두지 않았어요. 비용이나 해외 사용이 기점(아래)을 넘으면 옮기고, 처음 잡은 2027년 2월쯤은 기점을 다시 보는 날로 둡니다. 어느 클라우드든 서버에 오픈소스 Supabase를 직접 띄우고, 영상은 S3 방식 저장소와 CDN에 둬요.

사실 처음 검토에서는 해외 클라우드로 바로 가는 쪽이 더 나아 보였어요. 국내를 거치면 고객이 생긴 뒤 한 번 더 옮겨야 하니까요. 그래도 지원사업 때문에 국내를 먼저 골랐고, 해외 클라우드는 기점이 오면 옮길 곳으로 준비해 두었습니다. 그래서 두 번째 이전을 싸게 만드는 원칙 여섯 가지를 처음부터 세웠어요.

  1. 우리 도메인: 앱 서버는 api.wevolley.sub-co.com, 영상은 media.wevolley.sub-co.com이에요. 다음 이전 때 앱 업데이트가 필요 없어요.
  2. 같은 로그인 열쇠: JWT 비밀값을 그대로 가져가서 회원이 다시 로그인하지 않아요.
  3. S3 API만: 저장소는 어느 업체든 같은 방식으로 쓰고, 업체마다 다른 CDN 서명은 영상 재생 주소를 만드는 한 곳에만 둬요.
  4. 업체 전용 관리형 서비스 금지: 관리형 DB 같은 건 쓰기 전에 한 번 더 따져요.
  5. 영상은 30일: 회원이 보는 영상은 30일만 두고, 학습용 원본은 분석이 끝나면 제 하드(두 벌)로 보내요. 그래서 옮길 데이터가 늘 작아요.
  6. GPU는 언제든 바꿀 수 있게: 일꾼은 상태가 없는 프로그램 하나예요. 일꾼 열쇠 하나만 들고 작업을 가져가, 서명 주소로 영상을 받고 결과를 올립니다. 기계에는 클라우드 열쇠도 영상도 남기지 않으니, 업체를 바꿀 때는 새 기계에서 일꾼을 띄우기만 하면 돼요.

계획: 같은 자리에 표준 부품만 놓고, 저장은 S3 방식 · GPU는 갈아 끼워요

업체와 상관없는 자리만 그림 · 색 칸은 업체를 바꾸기 쉽게 만든 두 곳

앱iOS · Android · 웹 그대로, 서버 주소만 우리 도메인으로
웹 · 운영자 콘솔 · 공유 링크Vercel 그대로
백엔드 · 클라우드 서버 1대에 오픈소스 Supabase (Docker)같은 프로그램: DB · 로그인 · 조회 API · 실시간 · 함수 · 크론, 영상 내보내기 일꾼주소 api.wevolley.sub-co.com · 로그인 열쇠(JWT) 그대로 · 원화 청구
파일 · 영상 저장 · S3 방식S3 API로만 읽고 씀사진 · 영상 · 백업 버킷옮길 땐 주소 · 열쇠만 바꿈
영상 재생 · CDN서명 주소로만 재생media.wevolley.sub-co.com해외 거점에서 전송
GPU 분석 · 갈아 끼우는 자리지원사업 AI 솔루션부터언제든 다른 GPU 업체로원본은 제 하드 두 벌로
바깥 서비스 · 그대로푸시 · 앱 빌드 · 오류 수집 · 지도 · 감시 · 도메인백업: 매일 DB를 S3 방식 버킷으로

자리는 지금과 같고, 그 자리에 표준 부품(서버 + Docker · Postgres · S3 방식 저장소 · CDN)을 놓아요. 그래서 다른 클라우드로 옮길 때는 같은 그림에서 업체 이름만 바뀝니다.

부품지금계획
앱Expo로 iOS · Android · 웹, JS 수정은 OTA그대로. 서버 주소만 우리 도메인으로 OTA 한 번
웹 · 운영자 콘솔 · 공유 링크Vercel그대로
백엔드관리형 Supabase 서울, 무료 플랜, 달러클라우드 서버 1대에 오픈소스 Supabase(Docker), 원화
파일 · 영상 저장사진은 Supabase 안, 영상은 없음S3 방식 저장소
영상 재생없음CDN + 서명 주소
GPU 분석없음(11월부터 지원사업 GPU)갈아 끼우는 자리
학습 원본없음내 하드 두 벌
백업GitHub Actions가 매일 DB만매일 DB를 S3 방식 버킷으로
푸시 · 오류 · 지도 · 감시Expo · Sentry · 카카오 · UptimeRobot그대로
주소업체 도메인(supabase.co)api · media.wevolley.sub-co.com

같은 구성을 두 번 옮겨요: 지금 국내 클라우드, 기점이 오면 해외 클라우드

2026-10-26 기준

지금관리형 Supabase서울 · 무료 플랜백엔드를 한 곳에 맡김
앱 업데이트 한 번
1차 · 국내 클라우드서버에 오픈소스 SupabaseS3 방식 저장소 · CDN원화 청구
DNS만 바꿈
2차 · 해외 클라우드기점이 오면, 같은 구성전송 정액 CDN미국 · 유럽 지역
그대로 가져가는 것앱 · 웹 · 콘솔 코드, 도메인(api · media), 로그인 열쇠(JWT)DB 안 로직(권한 규칙 · 함수 · 크론), 서버 구성 · 복원 스크립트
옮길 때마다 복사DB 데이터 · 사진 파일 · 최근 30일 영상, 그리고 DNS 바꾸기
이전과 따로 가는 것GPU 분석(언제든 갈아 끼움) · 학습 원본(제 하드) · 웹 호스팅 · 앱 빌드 · 푸시

첫 이전에서 앱 주소를 우리 도메인으로 바꾸는 업데이트를 한 번 하고, 그 뒤로는 DNS만 바꿔요. 옮길 때마다 복사하는 건 DB 데이터와 최근 파일뿐이에요.

옮기는 과정

지금은 이전 준비를 하고 있고, 로컬 리허설은 끝났어요. 진짜 백업 · 파일 복사 · DNS 바꾸기처럼 옮기는 날 해야 하는 일은 그날로 남겨 두었습니다.

  1. 이전 준비(진행 중): 업체와 상관없이 미리 해 둘 수 있는 것부터 했어요. 영상 재생 주소를 업체별로 갈아 끼우는 곳을 하나로 모았고, 백엔드 주소는 환경변수에서만 읽게 했고, 백업은 어느 DB든 받게 했어요. 처리방침 · 점검 공지 초안도 썼고요. 서버 첫 설정 · 매일 백업 · 복원 연습 · 업데이트 스크립트도 만들어 로컬에서 시험했어요. 남은 건 로그인 콘솔에 새 주소를 넣는 일과 비밀값을 모으는 일이에요.
  2. 로컬 리허설: 운영 백업을 직접 띄운 Supabase에 복원해 앱 기능 16개가 통과했어요. 한 바퀴에 약 40초입니다.
  3. 국내 클라우드 구성(계정 대기): 서버 · 디스크 · 버킷 · 방화벽 · CDN · 메일 · 알림을 만들어요. 저장소 서명 주소부터 시험하고, 안 되면 국내 2순위로 바꿉니다.
  4. 국내 클라우드 리허설: 최신 백업을 복원하고, 시험용 웹으로 로그인 · 클럽 · 채팅 · 푸시 · 공유 링크를 확인한 뒤 복원 연습을 한 번 해요.
  5. 1차 전환(사용자가 적은 밤, 1시간 안팎): 쓰기 멈춤 → 마지막 백업 · 복원 → 파일 복사 → 푸시 설정 → 웹 · 콘솔 주소 바꾸기와 OTA → 로그인 확인 → 옛 Supabase 쓰기 막기 순서로 진행해요.
  6. 정리(2주 뒤): 옛 Supabase를 지우고 명령 · 문서를 정리해요. 영상은 이때 모두에게 엽니다.
  7. 2차 이전 · 해외 클라우드(기점이 오면, 2027년 2월쯤 다시 봄): 같은 스크립트로 해외 클라우드에 구성하고 리허설한 뒤, 밤에 복원하고 DNS만 돌려요.

리허설을 해본 결과 옮기는 일 자체는 생각보다 단순했어요. 같은 Supabase, 같은 Postgres 17.6이라 운영 백업이 그대로 올라갔고, 띄우기 22초 · 복원 3초 · 확인 14초면 끝났습니다. 이미지도 전부 arm64로 돌아서 ARM 서버에 그대로 올라가요.

남은 문제: 그다음 이주는 언제 해야 할까

같은 구성이면 영상이 늘수록 해외 클라우드가 싸요. 국내 클라우드는 영상 전송비를 GB마다 내고(84원), AWS는 정액제(월 15달러에 50TB까지)이기 때문이에요. 한 경기가 늘 때마다 국내는 약 3,400원, 해외는 약 400원이 늘어서, 이 차이로 갈립니다.

국내 클라우드 월 청구(부가세 별도)대략 규모판단
약 25만 원까지월 19경기까지(영상 전송 약 680GB)국내가 같거나 쌈. 그대로
약 25만 ~ 37만 원월 19 ~ 53경기해외가 월 10만 원 안쪽으로 쌈. 지원사업으로 내는 동안은 그대로 두고 준비만
약 37만 원 넘음월 53경기 넘음(영상 전송 약 1.9TB)차이가 월 10만 원을 넘어 옮기는 비용(15~20만 원)을 두 달 안에 되찾음. 해외 클라우드로 옮김
  • 해외 사용자: 미국 · 유럽 사용자에게 서버를 가까이 둬야 하면 비용과 상관없이 해외 클라우드로 가요. 그때 미국 읽기 복제본은 서버 한 대 값(서울 같은 사양 기준 월 약 22만 원)이 더 들어요.
  • 늘 준비: 같은 compose · 복원 스크립트가 해외 클라우드에서도 돌게 두고, 분기마다 한 번 최신 백업을 그곳에 복원해 앱 기능 검사 16개를 돌려 봐요(서버 몇 시간 값).
  • 계산 근거: 경기당 영상 전송 36GB(분석용 내려받기 12 · 재생 24), 저장 12GB를 30일, 서버 4코어 16GB, 1달러 1,400원으로 셌어요. 월 300경기면 서버를 8코어 32GB로 키우고, 차이는 월 약 79만 원(국내 약 138만 · 해외 약 59만 원)으로 벌어집니다.

규모별로 보면 이렇습니다.

규모국내 클라우드해외 클라우드
지금(영상 열기 전)약 18.9만 원약 22.3만 원
월 30경기약 29.0만 원약 25.7만 원
월 300경기(서버 8코어 32GB)약 138만 원약 59만 원

한 달 기준, 부가세 별도, 1달러 1,400원이에요. GPU(월 30경기 약 1.3만 원)는 빼고 셌어요. 국내에서 해외 클라우드로 옮기는 비용은 두 곳을 같이 켜 두는 2~4주 동안 약 15~20만 원, 작업은 3~5일입니다.

영상은 이렇게 처리합니다

영상은 원본이 크고(2시간 1080p 약 12GB) 오래 둘수록 비싸서, 클라우드에는 최근 30일 것만 둬요.

  1. 올리기: 폰 원본 그대로(1080p 60fps 권장) 서명 주소로 저장소에 여러 조각으로 바로 올려요. 앱 서버를 거치지 않아요.
  2. 분석: GPU 일꾼이 작업 표에서 하나씩 가져가 원본을 받고, 게임 · 코트 · 랠리 · 사람 · 터치를 채운 뒤 재생본과 필름 띠를 올려요. GPU는 늘 켜 두지 않고 몰아서 돌립니다.
  3. 고치기: 회원은 틀린 것만 고쳐요. 고친 값은 DB에 쌓여 다음 학습의 정답이 돼요.
  4. 보기 · 저장: 재생은 CDN 서명 주소로 해요. 즐겨찾기를 모은 앨범 저장 영상은 앱 서버의 내보내기 일꾼이 만들고 30일 뒤 지워요.
  5. 보관 · 학습: 원본은 분석이 끝나면 GPU 일꾼에서 제 하드(두 벌)로 바로 보내고 클라우드에서 지워요. 회원 영상도 30일 뒤 지우고, 랠리 · 고친 값 같은 데이터는 DB에 남아요. 학습은 하드의 원본과 DB의 정답으로 합니다.

그래서 영상 비용은 저장보다 재생 전송에서 나고, 옮길 때 복사할 영상은 최근 30일 것뿐이에요. 지금 영상 기능은 내부에서만 쓰고, 모두에게 여는 건 1차 전환과 처리방침 개정 뒤예요.

마치며

이번 이전에서 기준으로 삼은 건 세 가지예요.

첫째, 업체 이름보다 조건이 먼저입니다. 원화 결제, S3 방식 저장소, 서명 주소 CDN 같은 조건을 먼저 세우면, 업체는 그 조건을 맞추는 후보가 돼요.

둘째, 첫 이전보다 앞으로의 이전을 싸게 만드는 게 중요했어요. 우리 도메인, 같은 로그인 열쇠, S3 API만 쓰기를 처음부터 지키면 다음 이전은 DNS만 바꾸면 끝나요.

셋째, 지금 규모가 아니라 커진 뒤를 기준으로 판단했어요. 지금은 국내 클라우드가 조금 싸지만, 영상이 늘면 해외가 훨씬 싸져요. 그래서 다음 이전은 날짜가 아니라 비용 기점으로 정해 두었습니다.

이전이 끝나면 실제 전환 날의 기록과 숫자를 이어서 포스팅해보겠습니다!

출처