안녕하세요 개붕선배님들
프론트 개발만 하다가 사이드 프로젝트로 백엔드 하나 만들어봤는데
이제 슬슬 개발이 완료되서 라이브로 올려보려고 합니다.
라이브로 올릴때 늘 그렇듯 배포와 아키텍쳐 관련으로 항상 고민을 하게 되는데요
서버 배포는 정말정말 오랜만이라 질문할 겸 조언을 구하고자 글을 올려봅니다.
1. 요즘 배포는 어떻게 하고 있나요?
제가 듣기로는 쿠버네티스에 하는게 정론에 가까운것 같던데요. EKS를 쓰냐 아니면 ECS (+Fargate) 로 컨테이너 배포를 하냐 정도의 차이인것 같습니다.
하지만 각각의 차이점이 무엇인지 뚜렷한 장단점이 보이지 않고 서로 유사한점이 굉장히 많은 (설정이 docker이냐 kubernetes이냐일 뿐) 것 같아서 고민됩니다. EKS와 ECS가 아니어도 좋으니, 서버 배포 (CI/CD)는 어떤식으로 구성하면 좋을지에 대해 조언을 구하고 싶습니다.
2. Database는 어떻게 구성하면 되나요?
현재는 neon.tech 의 free tier를 이용해서 개발해왔습니다. mysql이나 mariadb는 사실 표준 sql에 가깝지 않다는 말이 있었기에 처음으로 postgresql를 선택했었는데, neon과 같이 managed database를 계속 사용하자니 비용적으로 부담이 될 것 같아서 옮기고자 합니다.
Database는 몸빵 큰걸로 하나 굴리다가 유저가 늘어나면 분산 (master+slave 구성또는 master+slave+sharding) 하면 되는것인지 궁금합니다.
3. 어쨌거나 IaC를 선택해야 올바른 방향인가요?
Terraform / OpenTF를 사용해서 인프라를 구성하는 것이 가장 바람직해보이는데, 현업에서는 얼만큼 IaC를 이용해서 구성하고 있는지 궁금합니다.
4. 참고하면 좋을만한 오픈소스는 어떤 것이 있을까요?
좋은 Infra as a Code 를 참고하여 분석해보고 싶은데, 테라폼 파일과 같은 것들을 오픈소스로 사용하는것을 잘 보지 못했습니다. 혹시나 아시는 오픈소스 중에서 좋은 tf 코드를 보셨다면 댓글로 조언 부탁드리겠습니다
며칠동안 찾아보았지만 확신이 가는 답변을 구하긴 어려웠습니다.
초심자에게 조언해주시면 매우 감사하겠습니다..!
silentScreamer
규모가 어떻길래.. 사이드프로젝트에 k8s까지 필요한가여...?
undefined
아 제가 중요한걸 안 적어뒀네용
원래는 프론트 개발자로 있는데 백엔드로 전환하려고 생각중이라 k8s니 ecs eks까지 경험쌓으려고 사이드 프로젝트 한거라..
규모 자체는 작습니다..ㅎㅎ;;
silentScreamer
글쿤여 그럼 k8s로 맛보시려면 프론트, 백엔드, 디비, 모니터링 싹다 컨테이너로 맹글어서 쿠버네티스 + helm chart 로 배포해보시면 어떨까요
디비는 갠적으로 사이드프로젝트는 sqlite로도 충분하다고 생각합니다.
undefined
오..감사합니다
추천해주신 방식대로 하려면 k8s를 올리는 호스트(?)는 제가 직접 만들어야 하는게 맞나요?
silentScreamer
Eks는 안써봤지만 Azure로 예를 들면 aks 서비스 만들면 로컬에 쿠버네티스 클러스터 디플로이 한거처럼 관리할수있게해줍니다
그담엔 뭐 하나하나 yaml파일 만들어서 apply 하셔도 되고 아니면 helm chart 만들어서 한꺼번에 관리해줘도 편합니다
내컴고쳐줘
서비스 운영을 비용과 효율성을 잘 생각해서 잘 운영하겠다 싶은지랑
개인 포폴 용으로 다양한 기술을 써보고 싶다랑 나눠서 생각해야할듯 하네요
전자면 소규모 서비스고 클라우드 환경이니 비용도 줄일겸 k8s는 빼는게 좋을꺼같고
후자면 하고싶응거 다해보는게..