저번에 접속했던대로 인스턴스에 ssh연결로 접속을 한다.
sudo apt-get update
를 입력해준다.
이 명령어는 운영체제의 설치가능한 리스트를 업데이트 해주는 명령어다.
sudo apt-get install nodejs
를 입력하여 nodejs를 설치한다.
당연히 설치가 끝났으면 hello world 한번 찍어줘야 한다.
nodejs
를 입력하고
console.log("hello, world!")
를 입력해서 nodejs님께 인사
node의 가장 큰 라이브러리 생태계인 npm을 설치해준다.
sudo apt-get install npm
을 입력
github에서 프로젝트를 클론해서 서버를 실행할 것이기 때문에 인스턴스에 git을 설치해준다.
suto apt-get install git
설치가 완료되면 git --version
을 입력해서 git의 버전을 확인할 수 있으면 성공적으로 설치가 된 것이다.
이제 git을 사용하려면 username과 email을 설정해줘야 한다.
git config --global user.name 내 아이디
git config --global user.email 이메일
을 차례로 입력해준다.
이제 대망의 클론
깃허브저장소로 가서 주소를 복사해온 뒤
git clone 주소
를 입력한다.
만약 권한없다고 하면 명령어 앞에 sudo붙여주기.
이제 cd <폴더명> 으로 클론한 폴더의 루트디렉토리로 이동한 뒤 npm i
명령으로 dependency 모듈 설치해준다.
그리고 npm start(프로젝트할 때 package.json에 설정안되어 있으면 걍 node index.js
)를 입력하면 실행이 된다!
이제 node 웹서버로 연결한 포트번호를 ec2의 엔드포인트의 뒤에 :
와 함께 붙여서 접속하면 성공!
하지만 인스턴스를 나가면 서버도 중지되므로 무중단 모듈을 사용해줘야 한다.
별것 없다. 별 것 없는데 필요한 기능이 잘 수행되면 그것만큼 좋은 모듈은 없다.
npm i -g pm2
를 입력해서 pm2를 서버의 전역에 설치해준다.
그리고 pm2 start app.js
를 입력하면 끝!
일 줄 알았지만 ts파일만 있어서 실패.
다시 npm i -g typescript
로 타입스크립트 인스턴스에 전역으로 설치해주고 다시 프로젝트폴더에서 tsc해서 js파일만들어줬다.
그러고나서 드디어 pm2 start dist/app.js
로 실행 성공!
이 부분은 배포자동화할 때 함께 자동화될 수 있도록 해결해봐야겠다.