-
4. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ]공부하기/node.js 2023. 2. 1. 23:44
지난 글에서 EC2 인스턴스 접근을 다뤄보았습니다.
이 글은 생성된 EC2 인스턴스에 nest-cli로 생성한 프로젝트의 아주 간단한 배포를 기록합니다.
인스턴스에 접근한 초기 상태로 가정하고 글을 작성합니다.
1. AWS-EC2 인스턴스에서 yum 명령을 통해 git을 설치합니다.
sudo yum update sudo yum install git git --version
2. Node.js를 설치합니다.
[ CASE_1 ] curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash . ~/.nvm/nvm.sh nvm install 16 node -v npm -v [ CASE_2 ] nvm list nvm uninstall 다운로드한_18버전의_node nvm install 16 nvm alias default v16.19.0 node -v npm -v
AWS-EC2자습서 를 따라서 Node.js를 설치하면 알 수 없는 버그가 존재합니다. ( 기준 2023.02.01 )
자습서에 따르면 현재 아마존 리눅스는 node 18버전 지원이 정상적이지 않은것으로 확인됩니다.
node 18.x 버전을 다운로드 후 node -v, npm -v 명령을 실행 시 아래 이미지와 같은 오류메시지가 반환됩니다.
만약 자습서를 따라서 18 버전의 노드를 설치하셨다면 위 코드 블록의 [ CASE_2 ] 명령을 진행해주세요
정상적으로 node.js를 설치하셨다면 노드 버전과 npm 버전을 확인할 수 있습니다.
3. git clone 명령으로 EC2 인스턴스에 프로젝트 레파지토리를 클론합니다.
npm install -g @nestjs/cli git clone https://github.com/깃유저명/레파지토리명.git ls cd ./클론레파지토리 npm i npm run build npm run start:prod
레파지토리를 클론 후 cd 명령을 통해 프로젝트 디렉토리에 접근합니다.
4. 실행된 인스턴스에 접근합니다.
저는 3000번 포트로 애플리케이션을 실행하고 있습니다.
정상적으로 실행되었다면 브라우저의 url영역에 퍼블릭ip:3000를 입력여 접속이 될 것이라고 예상할 수 있습니다.
하지만 접속을 시도하면 접속이 되지 않는것을 확인할 수 있습니다.
원인은 저희는 인스턴스의 3000번 포트로 애플리케이션을 실행시켰지만 EC2 인스턴스의 3000번 인바운드 포트를 개방하지 않았기 때문입니다.
AWS-EC2 대쉬보드에서 인스턴스를 클릭한 후 아래 보안탭을 클릭합니다.
인바운드 규칙 섹션에서 링크가 걸려있는 보안그룹을 클릭합니다.
인스턴스의 보안그룹으로 이동하게 되고 아래 인바운드 규칙 탭을 클릭 후 인바운드 편집 버튼을 클릭합니다.
새로운 인바운드 규칙을 추가합니다.
이제 다시 브라우저를 통해 퍼블릭ip:3000 주소로 접속을하면 정상적으로 접근할 수 있는 것을 확인할 수 있습니다.
5. 이 배포 방법의 문제점은 무엇일까??
- 인스턴스에 접근한 터미널을 종료하면 인스턴스에서 실행하고 있는 앱도 같이 종료됩니다.
- 퍼블릭ip:포트번호로 접근합니다. 일반적으로 우리는 ip:포트번호로 접근하진 않습니다.
- 코드가 변경될 때마다 인스턴스에 접속후 최신 코드로 업데이트 후 다시 빌드 배포를 수행해야합니다.
이어지는 글에서 문제점들을 하나하나 해결하도록 하겠습니다.
'공부하기 > node.js' 카테고리의 다른 글
6. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ] - 도메인&nginx (0) 2023.02.03 5. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ] - pm2 (0) 2023.02.02 3. NestJs & Git Actions CI/CD - [ AWS EC2 접속 ] (0) 2023.02.01 2. NestJs & Git Actions CI/CD - [ AWS EC2 생성 ] (0) 2023.02.01 1. NestJs & Git Actions CI/CD - [ git actions 추가 ] (0) 2023.01.31