2021. 4. 10. 15:44ㆍ카테고리 없음
[클립명]
1. Node.js 설치
2. MySQL RDS
3. 소스파일 업로드
4. Nginx 설치 및 배포 완료
■ AWS 배포 강의 구성
패스트캠퍼스 Node 웹 프로그래밍 올인원 패키지 강의에는 AWS 배포 관련된 강의 클립이 있다.
강의는 아래와 같이 구성되어 있다. AWS에 무료 계정을 생성하고 EC2 서비스를 이용하여 서버를 구성하고 소스를 업로드하여 서비스를 배포하는 과정이다.
- AWS 개요
- Windows 서버 접속
- Max 서버 접속
- Node.js 설치
- MySQL RDS
- 소스파일 업로드
- Nginx 설치 및 배포완료
이전 포스팅에서는 AWS 프리티어 EC2 인스턴스 생성까지 해봤었고, 이번에는 강의를 보면서 EC2 인스턴스에 이것저것 설치해보자.
■ EC2 인스턴스(Ubuntu)에 Node.js 설치
curl 명령어를 이용하여 node.js 설치파일을 서버 인스턴스로 끌어온다.
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
설치파일을 끌어 왔으면 이제 node.js 를 설치한다.
$ sudo apt-get install -y nodejs
nodejs 와 npm 설치가 잘 됐는지 버전확인 명령어를 이용하여 확인해보면 정상 설치된 것을 확인할 수 있다.
opt 경로로 이동 후, root 권한으로 'myproject' 폴더를 생성한다.
현재 서버에 접속한 계정은 ubuntu 계정이므로, opt 경로에 폴더를 생성할 권한이 없기 때문에 sudo 명령어를 이용하여 root 권한으로 폴더를 생성해준다.
myproject 폴더의 사용자 및 그룹 계정이 root 로 되어 있기 때문에 myporject에 각종 노드 패키지를 설치하면 ubuntu 계정에서는 권한이 없기 때문에 myproject 폴더의 사용자 및 그룹을 ubuntu 계정으로 변경한다.
nodemon, express, express-generator 모듈을 서버 인스턴스에서 공통으로 사용하기 위해 전역으로 설치한다.
express-generator는 express에서 권장하는 프로젝트 구조를 자동으로 생성해줄 때 사용하는 모듈이다.
//모듈 전역 설치
$ sudo npm install -g nodemon express express-generator
방금 전에 생성한 myproject 폴더로 이동 후, express 명령어를 실행하면 아래와 같이 express 구조에 맞는 폴더 및 파일들이 자동 생성된다.
npm install 명령어로 node 패키지 모듈을 설치해준다.
//node 패키지 설치
$ npm install
//서비스 시작
$ npm start
■ EC2 보안규칙 설정
위에서 npm start 명령어로 서비스를 시작한 후, 웹브라우저에 AWS 콘솔에 있는 '퍼블릭 IPv4 DNS' 주소에 3000번 포트를 합친 URL을 호출하면 접속이 되지 않는다.
(ex) ec2-??-???-???-???.ap-northeast-2.compute.amazonaws.com:3000/ (물음표는 IP주소라서 일부러 지움)
왜냐면 3000번 포트가 열려있지 않기 때문이다. 따라서 AWS 콘솔에 접속하여 인스턴스의 보안규칙을 추가해줘야 한다.
보안그룹에서 인바운드 규칙 편집 버튼을 클릭한 후, 아래처럼 3000번 포트를 IP상관없이 어디에서나 접속이 가능하도록 열어준다.
■ PM2 설치
node.js 서버가 에러가 나도 다시 시작시켜주거나 CPU의 코어를 지정한 만큼 사용하도록 설정하여 퍼포먼스를 높이기 위해 사용하는 pm2 라는 서비스가 있다. node.js를 사용하는 개발자라면 pm2에 대해서 구글링해서 반드시 찾아보는 것이 좋다.
//pm2 패지키 설치
$ sudo npm install -g pm2
//pm2를 이용하여 서버를 시작한다. (bin/www 는 package.json 파일에 명시되어 있는 시작시점 경로이다.
$ pm2 start bin/www
pm2를 이용하여 서버를 시작시킨 후, 다시 웹브라우저에 URL를 입력해보면 아래와 같이 Express 기본 페이지가 뜨는 것을 볼 수 있다.
여기까지 했다면, AWS EC2 서버에 node.js 설치는 끝난 것이다.
이제 저 폴더(/opt/myproject)에 기존에 있던 파일을 모두 삭제한 후, 자신이 개발한 소스를 올리고 서버를 시작하면 서비스 배포가 되는 것이다.
■ MySQL RDS 서버 생성
MySQL RDS 서버를 한 번 만들어보자.
AWS 콘솔화면에서 'RDS'를 검색한 후, 데이터베이스 생성 버튼을 클릭하면 데이터베이스를 생성할 수 있는 페이지가 나온다.
아래의 풀캡쳐 이미지를 보면서 알아보자.
- 템플릿 : 프리티어 선택
- DB인스턴스 식별자 : 자신이 원하는 DB 스키마명을 적어준다.
- 퍼블릭 액세스 가능 : '예' 선택 ('예'를 선택해야 외부에서 RDS 서버에 접속할 수 있다.)
워낙에 각 항목이 어떤 기능을 하는지 설명이 잘 돼 있어서 크게 어려운 점은 없었다.
굳이 중요한 부분을 꼽자면 템플릿은 '프리티어'를 선택하고, 퍼블릭 액세스 옵션을 '가능'을 선택해야 한다는 점 정도??
각 옵션을 설정하고 데이터베이스 생성 버튼을 클릭하면 서버 생성이 시작되며 몇 분 정도 걸린다.
서버 생성이 완료되면 WORKBench 프로그램으로 RDS 서버에 접속을 해보면 된다.
다만, RDS 서버에 인바운드 보안규칙에 자신의 IP가 허용되어 있지 않다면, 접속이 되지 않기 때문에 반드시 보안규칙을 추가해줘야 한다.
지금까지는 AWS에 EC2 인스턴스 및 MySQL RDS 서버를 생성했다. EC2 인스턴스에는 Node.js 와 pm2 도 설치했다.
■ 소스 올리기
무료 FTP 프로그램인 파일질라를 다운로드 받아서 설치한다.
설치 후, EC2 인스턴스에 접속하기 위해 아래와 같이 접속 정보를 설정한다. 호스트 주소는 EC2 인스턴스의 퍼블릭IPV4 DNS 주소를 적어주면 된다. 키파일은 pem 파일을 이용하여 생성한 개인키 파일(.ppk)의 경로를 설정해준다.
서버에 접속 후, /opt/myproject/ 경로에 있던 기존 파일들을 삭제하고 샘플 소스를 업로드하면 된다. pm2 start 명령어를 실행하여 서비스를 실행하면 된다.
Node 웹 프로그래밍 올인원 패키지 Online. | 패스트캠퍼스
자바스크립트로 서버 개발까지 완벽 커버하는 온라인 과정입니다.
fastcampus.co.kr
※ 해당 포스팅은 패스트캠퍼스의 [Node 웹 프로그래밍 올인원 패키지 Online] 수강후기입니다.