
node.js를 EC2로 직접 배포하면서 진행상황을 기록해보고자 한다.
ubuntu 20.04 버젼 Free Tier로 생성한다.
18.04의 경우 npm 빌드 할때 /usr/bin/npm 관련 에러가 발생했었다.
vpc는 생성하지 않았기에 기본으로 설정했으며 subnet은 같은 지역에 있는 것으로 선택했다.
키 페어를 생성해서 pem파일을 다운받거나 기존의 키 페어를 사용해서 인스턴스를 생성한다.
그리고 네트워크 설정 > 퍼블릭 IP 자동 할당을 활성화 한다.
인스턴스에 접속하기 위해 pem파일을 저장한 디렉토리에서 터미널을 켠다.
웹상에서 AWS EC2의 인스턴스를 선택하고 상단의 연결을 누르면 ssh로 연결할때 퍼블릭 dns주소를 확인할 수 있는데, 그 퍼블릭 IP로 아래 커맨드로 인스턴스에 접속해준다.
ex) ssh -i "키파일명.pem" ubuntu@ec2-11-111-11-111.ap-northeast-2.compute.amazonaws.com
처음 접속시 키 권한 관련 에러가 발생하기 떄문에 리눅스 기반의 경우 아래 커맨드로 권한을 축소해준다.
chmod 400 "키파일명.pem"
sudo apt update sudo apt install nodejssudo apt install npmsudo apt install gitgit config --global user.name 내 아이디git config --global user.email 이메일git clone https://repo.url Git Clone한다.sudo npm i
에러가 발생할 시
npm 캐시 정리 후 아래 명령어로 npm을 업데이트를 하고 서버 재접속 후에 다시 빌드한다.
npm cache clean --force
sudo npm i -g npm
script에 작성해둔 npm start 혹은 node app.js로 빌드한 앱을 구동한다.
근데 nodejs 버전이 낮아서 import 구문 에러가 발생한다.

당황하지 않고 node.js를 업데이트 해준다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install --lts
잘 설치가 됐고 구동하는지 확인해본다.
node -e "console.log('Running Node.js ' + process.version)"
마지막으로 npm cache를 초기화 해준 후에 패키지들을 설치해준다.
npm cache clean --force
sudo npm i
script에 작성해둔 npm start 혹은 node app.js로 빌드한 앱을 구동한다.
https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
https://velog.io/@rheey90/AWS-EC2-Node.js-%EC%84%9C%EB%B2%84-%EB%B0%B0%ED%8F%AC