강의

멘토링

커뮤니티

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

Kyeongtii님의 프로필 이미지
Kyeongtii

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

안녕하세요. 배포관련 질문이 있습니다.

작성

·

274

0

안녕하세요~ 강의 잘듣고 있습니다.

배포에서 질문이 있어 남깁니다.

현재 배포방식은 dist, packagejson, packagelockjson 이렇게 3개를 새로 만든 github repo에 올리는 방식인데요.

여기서 질문입니다.

나중에 새로운 라이브러리를 설치하거나 그러면 다시 빌드해서 업데이트 시켜주는 것은 기본으로 하고, packagejson, packagelockjson도 복사해서 붙여넣기 하는 것이 맞나요?

다음 light sail에서 pull 해준다음 npm install 다시 해주는 것이 맞는 flow인지 궁금해서 질문 남깁니다.

감사합니다.

답변 1

0

안녕하세요 :)
답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!

배포에 관련해서는 많은 방법이 있으며 해당 질문과 더불어 몇 가지 방법도 설명을 해드리겠습니다.

나중에 새로운 라이브러리를 설치하거나 그러면 다시 빌드해서 업데이트 시켜주는 것은 기본으로 하고, packagejson, packagelockjson도 복사해서 붙여넣기 하는 것이 맞나요?
다음 light sail에서 pull 해준다음 npm install 다시 해주는 것이 맞는 flow인지 궁금해서
-> 네 맞습니다. 이렇게 하셔도 됩니다. 다만, dist를 직접올리는 것은 많은 사람들이 주로 사용하는 방법이 아닙니다. 일단, 로컬과 cloud computer의 환경은 다릅니다. 제일 중요한 OS(보통 AWS는 리눅스 계열)부터가 다르기 때문입니다.

여기서 문제가 생깁니다. OS 가 다르면 npm install 시 설치되는 파일이 다른 패키지들이 종종있습니다. (대표적으로 이미지 리사이징 패키지 sharp) 그렇기도 하고 node, npm 외 다른 런타임에 종속적인 패키지들의 버젼이 모두 일치해야하기 때문에 힘듭니다. (node 에서는 버전 불일치로 에러가 나는 경우도 다분합니다.)

그래서 다른 방법도 난이도 별로 남겨두겠습니다.

난이도1)
1. src, package.json, package-lock.json .. 등 필수 파일 push
2. EC2(lightsail) 에서 pull
3. pull 후 npm install & build
4. pm2 무중단 배포

난이도2)
1. src, package.json, package-lock.json .. 등 필수 파일 push
2. Github Action으로 S3에 코드 저장
3. AWS CodeDeploy로 EC2 자동 pull & npm install & npm build 후 자동 pm2 무중단 배포

난이도3)
1. 도커 이미지 생성
2. AWS ECR에 자동으로 이미지 push
3. AWS CodeDeploy를 이용하여 자동으로 ECR 배포

Kyeongtii님의 프로필 이미지
Kyeongtii

작성한 질문수

질문하기