TIL 14주차 4일_배포 실습_(1) EC2(서버 배포)

Sang heon lee·2021년 8월 11일
0

TIL 리스트

목록 보기
57/60

EC2 인스턴스 생성/연결

1. 인스턴스 생성

  1. 인스턴스 생성 시작

  2. AMI(사용할 운영체제) 선택

  3. 키 페어 생성 및 다운로드 => 원격으로 인스턴스에 접속하기 위하여 필요
    파일명.pem 으로 인증서와 유사하다.

  4. pem 파일에 누구나 접근할 수 있는 권한이 부여되어 있다면 인스턴스는 연결을 거부하기에 권한 설정이 필요

chmod 400 상대경로/../파일명.pem
  1. ssh 명령어를 통해 인스턴스 접속
ssh -i 상대경로/파일명.pem user명@가상pc주소(퍼블릭주소)

예시)
 ssh -i "AWS_Practice.pem" ubuntu@ec2-18-221-157-145.us-east-2.compute.amazonaws.com

2. 인스턴스에 개발 환경 구축(리눅스)

  1. 패키지 정보 업데이트
sudo apt updata
  1. nvm, node.js 설치
    nvm : https://github.com/nvm-sh/nvm
    node.js :
nvm install node // node 설치
sudo apt install npm // 명령어가 정상적으로 입력되도록 추가 설치
  1. git을 통해 서버 코드 클론
git clone 깃허브 주소
// 프로젝트 폴더 이동후
npm install
  1. 서버 실행
sudo npm run start // 관리자 권한 필수

3. 보안그룹(Security Group) 설정

  • 보안그룹이란 인스턴스로 들어가고 인스턴스에서 나가는 트래픽에 대한 가상 방화벽입니다.
  1. 인스턴스에 적용되고 있는 보안 그룹 확인

  1. 보안 그룹에 설정 추가
  • 인바운드 : 인스턴스로 들어가는 트래픽

  • 아웃바운드 : 인스턴스에서 나가는 트래픽

  • 해당 실습에서 수행할 80번 포트로의 진입을 허용하기 위하여 인바운드 규칙에 추가

4. 프로세스 관리 프로그램 (PM2) 설정

  • 현재 상태

  • ssh 프로세스 강제 종료(CLI 창을 종료) 해도 인스턴스 백그라운드상에서 node 프로세스가 항상 실행하게 만들기 위하여 프로세스 관리 프로그램(PM2)를 설치,실행한다.

  1. PM2 설치
npm install pm2 -g
  1. PM2 명령어 확인
pm2 start app.js  // app.js 프로세스 실행
pm2 stop // 프로세스 중지
pm2 restart  // 프로세스 재시작
pm2 ls  // 프로세스 목록 보기
pm2 log // 프로세스 로그 보기
  1. authbind 설치
  • PM2에 관리자 권한을 부여하기 위해 authbind 라는 패키지를 추가 설치
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
  1. authbind 실행
  • pm2 ls 명령어를 통해 이전에 들어가 있던 프로세스를 확인 후
    기존에 들어가 있던 프로세스는 pm2 delete app.js 명령어를 통해 삭제 해야 한다.

  • 기존에 수행되고 있던 프로세스에는 authbind 에서 관리자 권한을 부여하지 못하기 때문이다.

  • 관리자 권한으로 수행하기 위해서는 authbind --deep 명령어를 앞에 붙여준다.
    authbind --deep pm2 start app.js

profile
개초보

0개의 댓글