-
AI 연산서버 배포 방식에 대한 고민배움/작업기 2025. 6. 21. 19:50반응형
1. Jest를 이용해 일부 테스트 코드를 추가하였다.
2. 또한 MVP 기능은 어느정도 된 것 같아 이제 배포를 어떻게 할지에 대해 고민을 시작하였다.
배포가 필요한 각 주체들:
1. 연산서버 (comfyUI)
2. 백엔드 (nest.js)
3. 프론트엔드 (next.js)
4. 데이터베이스 (postgresql)먼저 연산서버.
연산서버의 요소들을 생각해본다.
- AI 이미지나 비디오 등을 생성.
- GPU가 반드시 필요함
- 서버 임대에 가장 많은 비용이 듦 (막대한 연산 자원)
- 제한된 클라이언트로부터만 요청을 받아야 함
일단 현재는 내 개인 컴퓨터를 퍼블릭 도메인으로 돌려서 연산서버로 이용하는 중.
클라우드로 올리기 위한 몇 가지 옵션을 다음과 같이 고려해보았다.
구분 On-demand (일반 요금제) Spot VM (선점형) Reserved Instance (1년 약정) 개념 필요할 때 빌리고 쓴 만큼 지불하는 가장 기본적인 방식 클라우드 제공업체의 유휴 자원을 매우 저렴하게 빌려 쓰지만, 언제든 회수(중단)될 수 있음 1년 또는 3년 사용을 미리 약정하고, 그 대가로 높은 할인율을 적용받는 방식 할인율 (일반 대비) 기준 (0%) 60% ~ 90% (매우 높음) 25% ~ 40% (1년 약정 기준) 장점 - 약정
- 언제든 시작/중지 가능- 최고의 안정성 (중단 안 됨)- 비용이 압도적으로 저렴함 - Spot VM보다는 비싸지만, 일반 요금제보다 확실히 저렴함<br>- 안정적으로 24/7 서버를 운영할 수 있음 단점 - 가장 비쌈 - 언제든지 중단될 수 있음 (가장 큰 리스크)<br>- 긴 작업(예: 2분 이상)이 중간에 실패할 수 있음 - 최소 1년의 사용 약정이 필요함<br>- 사용량이 적어지더라도 약정 기간 동안 비용은 계속 지불해야 함 옵션 A (On-demand):
가장 기본적인 서버 임대 방식.
한 달 내내 서버를 작동시킬 경우
임대 가능한 GPU 중 가장 저렴한 축인 Nvidia T4를 사용하더라도
한 달에 50만원 이상은 비용이 나올거다.
물론 필요할 때만 작동시킬 수 있겠지만, 비싼 건 매한가지.
일단 on-demand는 개발 초기 단계인 지금으로썬 탈락..
옵션 B (Spot VM):
Spot VM은 AWS등의 클라우드 제공업체에서 이미 다른 사용자에게 제공된 VM이지만 현재는 사용되지 않고 있는, 언제든 해당 사용자가 재가동시킬 가능성이 있는 VM을 저렴한 가격으로 공급해주는 VM이다.
특성상 내가 쓰고 있던 VM이라 해도 언제든 종료될 수 있다.
알아보기론 종료되기 1~2분 전에 미리 곧 VM이 종료될거라는 경고가 나온다고 한다.
또한 Spot VM의 임대 비용은 유동적이라서,
유휴 자원이 많아지는 새벽시간대나 주말 등에는 가격이 저렴해지기도 한다.
이 플랜을 쓸 경우 고려해야할 사항이 많아진다.
AI 이미지나 동영상 등을 생성하려면 길게는 몇 시간이 걸릴지도 모르는데 작업이 다 되어가는데 갑자기 VM이 종료되거나 하면 사용자 경험이 굉장히 나쁠 것이다.
이를 방지하기 위해 이미지나 동영상 생성을 할 때 그 과정을 잘게잘게 잘라서 (예를 들면 1분마다 minor success를 일으켜서 나중에 결과를 합치는 것) vm이 중간에 종료되거나 하면 또 다른 VM을 실행시켜서 가장 마지막에 minor success한 결과로부터 계속 연산을 하는 방식을 구현해볼 수 있다.
또한 사용자의 요청 자체는 24시간 받아서 큐에 쌓아놓되 실제 실행은 VM의 가격이 저렴할 때 (새벽시간 or 주말, ...) 하도록 하여 아예 서비스 컨셉을 '생성 비용은 저렴하지만 생성에 하루가 걸리는' 컨셉으로 잡을 수도 있겠다.
단점은 구현 난이도.
서비스 운영에 차질이 없도록 구현하려면 로직이 엄청 복잡해질거다.
옵션 C (Reserved Instance):
Reserved Instance는 수 년 동안 서버를 이용한다는 약정을 해놓고 임대하는 방식이다.
On-demand 방식에 비해 저렴해서 많이들 이용한다.
단점은 이용량이 거의 없다 하더라도 정해진 비용만큼은 나온다.
일단은 옵션 C인 Reserved Instance를 이용할 확률이 제일 큰데..
워낙 개발 초기 단계라 일단 연산 서버 배포는 보류..
제일 마지막으로 미루겠다.
백엔드, 프론트엔드, 데이터베이스 배포를 먼저 하도록 하겠다.
반응형'배움 > 작업기' 카테고리의 다른 글
세션 로그인 -> 구글 로그인 API + JWT로 전환 완료 (0) 2025.06.23 Backend & Frontend & Database 배포 고민, SSL 자체 서명 제거, Backend & Database 배포 완료 (2) 2025.06.22 Data lifecycle management, VideoGen feature 추가 (0) 2025.06.19 Delete feature, Optimistic Update, Metadata added (0) 2025.06.17 Image-view caching, Max-item limitation, history page 추가 (0) 2025.06.16