AWS에서 제공하는 클라우드 컴퓨터 서비스
=> 원격제어가 가능한 가상의 컴퓨터 한대를 빌리는 것 (1대 = 1인스턴스)
연결을 마치면 위 사진과 같이 로컬이 아닌 aws에서 제공하는 서버에서 제어가 가능해진다.
연결
을 클릭ssh클라이언트
라는 탭이 있다 chmod 400 AWS_Deploy_<키네임>
패키지정보 최신업뎃
sudo apt update
nvm인스톨
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
: load nvm
node 인스톨
nvm install node
npm 인스톨
sudo apt install npm
로컬환경과 마찬가지로 인스턴스 위에 작업을 진행한다
관리자권한이 필요하므로, npm start
가 아닌 sudo npm start
로 서버실행
서버 실행후, EC2인스턴스의 IP주소로 접속한다.
(보안그룹 설정 전까지는 에러가 뜸)
인스턴스로 들어가고 나가는 트래픽에 대한
가상 방화벽 !
(인바운드, 아웃바운드 : 각각 규칙을 추가해서 필터링을 거친다)
나가는 모든 트래픽허용
이 디폴트 값.프로세스 매니지먼트 도구.
사용이유는 ? 1.ssh에서 ec2서버실행을 종료하게되면, node까지 강제종료가 됨. 이를 보완
또는 2. 서버실행을 하면서 다른 명령어의 실행도 진행하기위해서
<cli명령어로 백그라운드 다루기>
- 리눅스/유닉스 체제에서도 백그라운드 실행이 가능하긴 함
첫번째 npm start의 경우, 서버를 실행하면 다음 명령어 입력이 불가능하다.
두번째 npm start&
를 써줘서 다음 명령어를 입력할 수 있음
pid를 알면,fg
또는kill
명령어를 통해 백그라운드로 실행/종료 가능.
<pm2로 프로세스 관리하기>
1.hot reload : 프로그램이 변경될 때 자동으로 재시작을 도움
2. 에러로 인해 서버가 종료되면, 자동실행
3. 로그관리 전문적으로 도와줌
...
npm install pm2 -g
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 //<<<== 관리자에게 권한을 부여해주는 명령어
authbind --deep pm2 start app.js //<=== pm2로 서버실행
pm2 start
"pm2 stop" 프로세스 중지
"pm2 restart" 프로세스 재시작
"pm2 ls" 프로세스 목록 보기
"pm2 log" 프로세스 로그 보기