인프런 커뮤니티 질문&답변

이승주님의 프로필 이미지

작성한 질문수

Nuxt.js 시작하기

리눅스 도커 환경 배포 시 스택 문의

작성

·

257

1

안녕하세요. 게시판 형태의 nuxt 앱 배포환경을 고민하고 있습니다.

백엔드 API 서버들은 온프레미스 서버(사무실 서버)와 클라우드에 분산되어 있고, SSR에 따른 SEO와 로딩 속도와 같은 장점을 기대하고 Nuxt로 개발 중입니다.

선택지는 다음과 같지만, 2번이 우세한 상황입니다.

  1. vercel과 같은 SSR을 지원하는 PaaS를 사용하여 배포

  2. 리눅스 서버 위 도커 컨테이너로 배포

2번을 고려하고 있는 이유는 비용상의 문제보다는 성능과 기능 구현 때문에 고려하고 있습니다(Nginx에서 특정 ip 차단, pm2 프로세스 관리, 동일 서버에 올라간 백엔드 API 컨테이너와 유닉스 소켓으로 연결 등). 또한, 아마 다른 서비스에서 조만간 쿠버네티스를 도입할 것 같아 미래를 고려하는 점도 있습니다.

 

리눅스 도커 환경에 직접 배포할 때, 도커를 사용하는 부분은 문제가 없으나 스택을 어떻게 구성해야 할지 문의드립니다.

간단하게 찾아본 결과 Nginx + pm2 + node(nuxt) 구조에서 각 서비스가 빠지거나 포함되는 것 같은데, 서로 충돌하는 의견이 많은 것 같아 혹시 추천해주실 수 있는 스택이 있는지 문의드립니다.

 

  • Nginx : 정적 컨텐츠와 빠르고 편리한 https(TLS), 리버스 프록시를 통한 보안과 속도 때문에 필요함. node로도 해당 기능들이 모두 가능하니 필요 없다는 주장도 있으나, 웹서버 점유율에서 node.js가 1~2%라는 자료들에 의하면 의구심이 듦.

  • pm2 : 로그와 프로세스를 편리하게 관리하기 위해서 필요하다는 의견이 많으나, 도커 기반 환경에서는 오히려 도커나 k8s가 프로세스나 로그를 관리하는 것을 방해한다는 의견(https://www.docker.com/blog/keep-nodejs-rockin-in-docker/ )도 있음.

 

일단 현재는 docker-compose로 Nginx-pm2-node(nuxt) 형태로 개발하고 있습니다.

 

아마 네카라쿠배에서는 이런 부분이 인프라나 DevOps 쪽으로 분업되어 있어 강사님께서 이런 고민은 생소하실 수도 있겠다는 생각이 들지만, 저 말고도 타의로 프론트엔드를 시작한 분들이 있을 수 있겠다는 생각이 들어 올려봅니다 : )

답변 1

0

안녕하세요, 말씀하신 기술 스택이 일반적인 것 같아요. 기술 스택은 기업 인프라나 환경에 따라서 달라지는 부분이라 공식화 되어 있는 건 없는 것 같습니다 :)