EC2 인스턴스 생성/연결
인스턴스 생성 시작
AMI(사용할 운영체제) 선택
키 페어 생성 및 다운로드 => 원격으로 인스턴스에 접속하기 위하여 필요
파일명.pem 으로 인증서와 유사하다.
pem 파일에 누구나 접근할 수 있는 권한이 부여되어 있다면 인스턴스는 연결을 거부하기에 권한 설정이 필요
chmod 400 상대경로/../파일명.pem
ssh -i 상대경로/파일명.pem user명@가상pc주소(퍼블릭주소)
예시)
ssh -i "AWS_Practice.pem" ubuntu@ec2-18-221-157-145.us-east-2.compute.amazonaws.com
sudo apt updata
nvm install node // node 설치
sudo apt install npm // 명령어가 정상적으로 입력되도록 추가 설치
git clone 깃허브 주소
// 프로젝트 폴더 이동후
npm install
sudo npm run start // 관리자 권한 필수
인바운드 : 인스턴스로 들어가는 트래픽
아웃바운드 : 인스턴스에서 나가는 트래픽
해당 실습에서 수행할 80번 포트로의 진입을 허용하기 위하여 인바운드 규칙에 추가
현재 상태
ssh 프로세스 강제 종료(CLI 창을 종료) 해도 인스턴스 백그라운드상에서 node 프로세스가 항상 실행하게 만들기 위하여 프로세스 관리 프로그램(PM2)를 설치,실행한다.
npm install pm2 -g
pm2 start app.js // app.js 프로세스 실행
pm2 stop // 프로세스 중지
pm2 restart // 프로세스 재시작
pm2 ls // 프로세스 목록 보기
pm2 log // 프로세스 로그 보기
sudo apt-get update
sudo apt-get install authbind
sudo touch /etc/authbind/byport/80
sudo chown ubuntu /etc/authbind/byport/80
sudo chmod 755 /etc/authbind/byport/80
authbind --deep pm2 update
pm2 ls
명령어를 통해 이전에 들어가 있던 프로세스를 확인 후
기존에 들어가 있던 프로세스는 pm2 delete app.js
명령어를 통해 삭제 해야 한다.
기존에 수행되고 있던 프로세스에는 authbind 에서 관리자 권한을 부여하지 못하기 때문이다.
관리자 권한으로 수행하기 위해서는 authbind --deep
명령어를 앞에 붙여준다.
authbind --deep pm2 start app.js