쿠버네티스로 GPU 할당 시스템 만든 AI 회사

2024-10-22

“아무리 GPU와 서버를 사들여도 부족하다는 불만을 들었습니다. 하지만 사용률은 30% 정도밖에 되지 않았어요. 서버와 GPU를 배분할 수 있는 솔루션을 제공해보자 생각했습니다. 서버예약시스템을 만들었어요. 쿠버네티스를 도입했죠. 무식한 도전이었습니다.”

스트라드비전의 여은철 팀장은 지난 16일 개최된 ‘수세 오픈소스데이’ 발표에서 전문가없이 쿠버네티스 플랫폼을 도입한 여정을 이같이 시작했다.

스트라드비전은 자율주행차의 이미지인식 소프트웨어를 개발하는 회사다. 라이다없이 카메라만으로 객체를 인지하는 기술에 특화됐다.

AI 기술 개발에 GPU는 필수다. 스트라드비전은 200대 규모의 서버를 보유했다. 각 서버는 8개의 GPU를 장착했다. 애초에 스트라드비전은 GPU를 필요로 하는 개발자와 엔지니어에게 수작업으로 할당했다. 별도의 자원 관리 체계는 없었다. 수요자가 IT팀에 이메일이나 전화로 연락해 필요한 GPU 수 할당을 요청하면, 담당자가 빈 GPU 서버를 확인해 할당해주는 식이었다. 서버 200대를 하나의 클러스터로 운영하지 않고 부서별로 나눠 운영했다.

회사 규모에 비해 적지 않은 GPU를 확보하고 꾸준히 GPU 구매도 늘렸지만, GPU가 부족하다는 불만은 줄어들지 않았다고 한다. GPU 실제 활용도를 살펴보면 30% 수준이었지만, 똑같은 불만이 제기됐다.

여은철 팀장과 그의 조직은 조금 더 효율적으로 GPU 자원을 관리해보자는 목표를 갖고 개선하는 시도를 시작했다.

첫 시도는 예약 관리 시스템이었다. 일단 부서별로 나뉘었던 서버를 단일 서버팜으로 합쳤다. 그리고 일주일 단위로 예약시스템에 접속해 GPU 자원을 예약해 할당받는 식으로 했다.

여 팀장은 “그랬더니 대학교 수강신청같은 일이 벌어졌다”며 “12시마다 새 예약이 풀리는데, 사용자들이 12시 전부터 새로고침을 누르면서 대기하고 할당을 받아갔다”고 말했다.

그는 “쓰던 GPU를 이번주에도 무조건 사수하라는 특명을 받은 연구원도 나타나고, 관리자에게 몰래 연락해서 할당해달라고 요청하기도 했다”며 “예약 시스템을 도입하고도 GPU 사용률은 30%에서 변하지 않았다”고 덧붙였다.

그래서 컨테이너와 쿠버네티스를 도입해 서버 단위 대신 GPU 단위로 할당할 수 있는 체계를 갖추기로 했다. 한 명에게 서버 속 GPU 8개를 모두 주는 게 아니라, 필요한 수만 주는 것이다. 이렇게 하면 최대 200명에게 할당할 수 있었던 걸 최대 1600명에게 할당할 수 있다.

여 팀장은 “연구원이 원하는 만큼 GPU 수를 요청하고, 관련 인스턴스의 CPU나 메모리도 일정 한도 안에서 고를 수 있게 했다”며 “이로써 사용률이 70~80% 수준으로 올라가는 극적인 변화를 보였다”고 말했다.

이것으로 모든 문제가 해결됐다면 좋았겠지만, IT운영팀의 일은 끝나지 않았다. 여 팀장은 “이때부터 재앙이 시작됐다”고 표현했다.

그는 “매일 야근을 하고 주말에도 야근을 해야 했으며, 욕은 욕대로 먹고 납기 일정을 맞추지 못해 주요 고객이 직접 찾아와서 컴플레인할 정도로 많은 장애를 겪었다”며 “AI 학습을 한번 돌리면 일주일, 보름씩 걸리기도 하는데 중간에 클러스터가 무너져 학습이 같이 종료됐다”고 했다.

문제는 쿠버네티스 플랫폼의 장애에 잘 대응할 수 있는 전문가가 회사와 주변에 없었다는 점이었다. 쿠버네티스는 작동 프로세스 과정에 많은 요소가 촘촘히 연결된다. 요소 중 하나가 잘못되면 전체 장애로 이어지는데, 장애 원인을 찾아내려면 전반적인 요소요소와 구성을 이해하고 있어야 한다. 로그를 보고 무슨 문제인지 인지하고 어디서 발생한 문제인지 파악할 사람이 스트라드비전에 없었다.

그는 “쿠버네티스의 모든 것을 다 이해하고 디버깅할 수 있는 사람은 매우 높은 연봉을받고 있고, 그런 인재 자체도 드물어서 채용하기 힘들었다”며 “구성된 쿠버네티스의 유지보수를 도와줄 외주업체도 찾을 수 없었다”고 말했다.

직접 하는 수밖에 없었다. 사용자가 장애 관련해 주는 정보는 매우 단순했다. ‘안 돼요’뿐. 그럼 시스템 속에 들어가서 직접 확인해야 한다. 쿠버네티스 워커노드의 어느 POD에 문제있는지 찾으려 해도, 사용자도 자기의 컨테이너가 어느 POD에 있는지 알 지 못한다. 그럼 해당 서비스를 체크해서 마스터노드부터 들어가서 하나하나 문제있는 POD를 찾아야 했다. 장애 해결에 오랜 시간을 들일 수박에 없었다.

결국 운영을 도와줄 플랫폼을 찾았다. 처음엔 오픈시프트를 골랐다고 한다. 그는 “오픈시프트는 매우 유명한 툴이고, 전 회사에서 썼던 경험도 있어 오픈시프트를 도입하려 했다”며 “그러나 쿠버네티스 관리 인력 두세명을 고용하는 임금을 훨씬 상회하는 라이선스를 요구했고, 설치에도 며칠씩 걸리고, 너무 다양한 기능 때문에 오픈시프트를 배우기 위해 쿠버네티스를 배우는 것만큼의 노력을 해야 했다”고 말했다.

그러다 수세의 랜처를 접하게 됐다고 한다. 그는 “랜처는 1시간이면 설치를 끝내고 사용할 수 있고, 우리에게 필요한 가시성 확보 관련 기능도 딱 맞게 있어서 운영하기 매우 쉽고 유지보수도 편리했다”며 “벤더 지원도 뛰어난 유지보수 업체를 만나서 매우 만족하며 서비스를 받고 있다”고 밝혔다.

현재 스트라드비전은 랜처프라임을 이용해 쿠버네티스 클러스터 전체 현황을 파악하고 있다. 특정 POD를 들어가면 구동중인 컨테이너를 확인할 수 있고 파드 내 로그를 잘 확인할 수 있어서, 장애 시 어떤 노드의 어느 POD에 문제있는지 빠르게 파악할 수 있다. 이렇게 파악한 정보를 유지보수 파트너에게 알려서 문제를 해결하기도 하고, 이제 로그를 보고 POD 재생성이나 교체를 직접 하는 정도의 전문성을 갖췄다.

그는 “이제 쿠버네티스 전문가 없이 운영하기에 조금씩 다가가는 상황”이라고 말했다.

스트라드비전은 온프레미스와 프라이빗 클라우드, 퍼블릭 클라우드 등을 혼용하는 상황에서 적정 수준의 비용 관리 체계를 갖추려 하고 있다. 이에 수세 매니저를 활용해 인프라 스택을 관장하고, 수세 뉴벡터를 도입해 컨테이너 보안을 강화할 예정이라고 한다.

그는 또 “현재 이용중인 VM웨어 환경도 라이선스 비용 인상이 예고돼 그에 대해 수세 하베스터 테스트를 진행할 예정”이라며 “쿠버네티스의 퍼시스턴트볼륨(PV) 스토리지도 랜처 PV를 활용하도록 할 계획”이라고 계획을 밝혔다.

그는 “1년만에 현재 수준을 갖췄고, 앞으로 1년 정도 더 하면 원하는 구성도를 갖고 프라이빗 클라우드를 운영할 수 있을 것으로 기대한다”고 덧붙였다.

글. 바이라인네트워크

<김우용 기자>yong2@byline.network

Menu

Kollo 를 통해 내 지역 속보, 범죄 뉴스, 비즈니스 뉴스, 스포츠 업데이트 및 한국 헤드라인을 휴대폰으로 직접 확인할 수 있습니다.