클라우드/카테부

Krampoline 사용기(1)

smallsoft 2024. 10. 24. 12:10

*카카오테크 부트캠프 1기로 교육과정중 경험했던 크램폴린에 대한 글입니다.

Krampoline 이란?

카카오에서 진행하는 교육을 받을때 사용되는 클라우드 서비스이다. 컨테이너 단위로 리소스를 제공받으며, 제공받은 컨테이너 안에는 배포를 위한 기능들이 준비되어있다.
조금더 자세하게는 카카오 전사서비스 DKOS에서 리소스를 가져와 Krampoline으로 씌운뒤 교육생들에게 제공해준다.

Krampoline의 특징


가장 큰 특징은 CaaS 라는 점이다.


인프라를 직접관리하고 설정해야하는 IaaS 와는 달리 자원이 고정된 컨테이너를 할당받고, 컨테이너 이미지를 관리하는 D2Hub와 배포를 위한Kubernetes 그리고 CD에 사용되는 Kagro가 구성되어 있다.

 

나같은 경우에 쿠버네티스를 사용해보지않아서 크램폴린은 매력적으로 다가왔다. 미리 구성된 쿠버네티스 환경 위에서 설정파일만 건들면 배포가 가능하기 때문에 실제 배포서버 이전에 사용될 테스트서버를 크램폴린으로 구축하였다.

Krampoline을 활용한 테스트서버


프론트개발자를 위한 테스트서버 구성 예시이다. 프론트 개발자는 자신이 작성한 코드를 로컬에서 실행한뒤 클라우드에서 작동중인 백엔드 테스트서버와 연계해 빠르게 코드를 테스트할 수 있다.

 

이 환경을 위해서는 백엔드서버가 클라우드에서 24시간 실행되야하는데 이 부분을 크램폴린을 통해 구현하였다.

크램폴린의 도움말에 풀스택배포하는 방법까지 적혀있기에 상세하게는 적지않고 간단하게만 설명하자면

  1. 백엔드 소스코드가 있는 레포지토리에 D2Hub에 올라갈 이미지를 위한 Dockerfile을 작성한다.
  2. DB용 도커 이미지가 필요하기 때문에 DB용 레포를 하나 더 추가한뒤 해당 레포에 DB용 Dockerfile을 작성한다.
  3. 백엔드 레포 or DB용 레포에 k8s폴더를 만들고 쿠버네티스를 설정에 관한 yaml파일들을 작성해준다.

결국 쿠버네티스 yaml파일을 작성하기 위해서는 약간의 쿠버네티스 지식이 필요하지만 ChatGPT와 함께 어렵지않게 작성하였다.


Krampoline의 한계점

쉽게 사용할 수 있었지만 결국 크램폴린의 한계도 명확했다.

  1. 자동 CI/CD의 부재
    사용자가 직접 D2Hub에 올리고 Kargo 배포하기 버튼을 일일이 눌러줘야한다. 실제 배포서버로 사용하기엔 무리가 있었다.
  2. 외부 인터넷망 없음
  3. CaaS 특성상 낮은 시스템권한 (systemctl 등 사용불가)
  4. 이해하기 힘든 제약사항
    D2Hub와 Kargo는 연동된 Github 레포안의 main브랜치에서만 소스를 들고온다. 컨테이너 내부의 에디터와 터미널 기능(컴퓨팅 사이즈는 t2 small)은 어떻게 활용해야하는지 의문이 생기는 부분이였다.
  5. 수많은 잔버그

결론적으로 많이 아쉬웠던 서비스였다. 해당 부트캠프의 장점중하나로 카카오의 클라우드 서비스를 제공해주는것이였는데 실상은 "(카카오 클라우드 for 교육생) = (크램폴린)" 이였다.

 

사용법이 간단하고 쉬워보여 프로젝트 초기에는 크램폴린으로 테스트서버를 구축하고 이후 AWS를 통해 배포서버를 구축하는것을 목표로 잡고 크램폴린을 일주일간 사용해봤는데 유쾌한 경험은 아니였다.

'클라우드 > 카테부' 카테고리의 다른 글

Krampoline 사용기(2)  (0) 2024.11.18