일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 에자일 모형
- was버그
- table scan
- Bandit Level 5
- was SQLRecoverableException
- mysql 튜닝
- Bandit Level 6
- Law of Demeter
- 프로토타입 모형
- plsql
- pl/sql
- 커맨드공부
- 시스템 파악 정리
- 스크럼기법
- avax.net.ssl.SSLHandshakeException:
- 디미터 법칙
- vue
- 시스템 파악
- springboot
- Bandit Level 6 → Level 7
- java.sql.SQLRecoverableException
- 클린코드
- 명령어공부
- 폭포수 모형
- SQLRecoverableException
- OpenAPI
- 나선형 모형
- CSS
- 변수명 짓는법
- 인증서만료에러
- Today
- Total
개발햄비
[AWS] Amazon Web Serivce : AWS 에 Node JS 웹 서버 만들기 1 본문
AWS EC2에 Node JS 웹 서버 구축하기 입니다.
1.우선 회원가입을 하고 로그인을 합니다. 회원 가입 시 신용카드 정보 입력이 필요합니다. 준비해두세요.!
- 인스턴스 시작 버튼을 눌러줍니다.
3.사용할 서비스를 선택하는 화면입니다. 이번은 우분투로 선택하겠습니다.
4. 인스턴스 유형 선택 화면입니다. 프리티어 사용 가능을 선택해주세요.
5.그 후 인스턴스 세부 정보 구성화면 입니다. 특별히 설정할 것이 없으니 [다음:스토리지 추가] 를 눌러줍니다.
6. 스토리지 추가에서 최대 30기가까지 무료이기 때문에 30기가로 설정해줍니다.
7. 그리고 키와 값을 추가하는 화면인데요 적당히 아무 값이나 넣어 주고 [다음: 보안 그룹 구성]으로 넘어갑니다.
8.다음과 같은 설정이 필요합니다.사용하고자 하는 서버의 형식에 따라 프로토콜 , 포트범위가 달라집니다.
유형 |
프로토콜 |
포트범위 |
소스 |
|
SSH |
TCP |
22 |
사용자 지정 |
0.0.0.0/0 |
HTTP |
TCP |
80 |
사용자 지정 |
0.0.0.0/0 |
HTTPS |
TCP |
443 |
사용자 지정 |
0.0.0.0/0 |
Custom TCP Rule |
TCP |
8080 |
사용자 지정 |
0.0.0.0/0 |
Custom TCP Rule |
TCP |
9000 |
사용자 지정 |
0.0.0.0/0 |
이 설정 후 [검토 및 시작]을 눌러줍니다.
9. 그러면 다음 화면과 같이 설정 정보들을 확인 할 수 있습니다. 확인 후 [시작하기] 버튼을 눌러줍니다.
10. 기존 키 페어 선택 또는 새 키 페어 생성 화면입니다 .
없는 분들은 새 키 페어 생성을 통해서 \[xxxxx.pem\]형식의파일을 저장해줍니다.
### 인스턴스 생성 완료! [인스턴스 보기] 를 선택해 줍니다.
11. 인스턴스 상황 확인 화면입니다 사용하고자 하는 인스턴스를 클릭 후 왼쪽 상단에 [연결] 버튼을 클릭해줍니다.
12 . 그럼 다음과 같은 창이 뜨게 됩니다
이제 [예] 에 써져있는 커맨드를 입력할 차례입니다 . 하지만 입력하기 전 10번 단계에서 다운받은 [xxxx.pem]을 옮기도록 하겠습니다
저는
/Users/project/Documents/AWS
위의 경로에 저장하였습니다. 그럼 터미널을 열고 각자 설정한 경로로 들어가주세요
$ ls -al
을 통해서 화일 존재를 확인합니다.
그 후 [예] 에 있던 커맨드를 입력해줍니다
입력 후 Yes를 다시 입력해줍니다.
그럼 다음과 같이 화면이 나오면 EC2 에 접속한 것입니다.
-
우분트 서버 업데이트가 필요하기 때문에 업데이트를 해줍니다.
$ sudo apt-get update
-
계속해서 Node JS도 설치합니다
$ sudo apt-get install nodejs
중간에 y/n 입력이 나오면 y를 입력해줍니다.
- Node Package Manager : NPM 을 설치해줍니다
$ sudo apt-get install npm
중간에 y/n 입력이 나오면 전 단계와 같이 y를 입력해줍니다.
조금 시간이 지난 후 다음과 같이 나오면 정상 설치 입니다.
-
계속해서 express를 설치합니다.
$ sudo npm install -g express
-g는 Global 옵션으로 어느 path에서나 express를 사용할 수 있도록 하는 옵션입니다.
-
Express generator를 설치합니다. 위와 같이 -g 옵션으로 설치 합니다 .
$ sudo npm install -g express-generator@4
다음과 같이 나오면 성공입니다.
-
NodeJS의 모니터링을 위해서 nodemon를 설치해줍니다.
$ sudo npm install -g nodemon
- 환경 설정은 끝났습니다. 이제 경로에 폴더를 만들어줍니다
$ sudo mkdir node-project && cd node-project && sudo mkdir testNode && cd testNode
- express 기본 template을 생성합니다. View engine template은 ejs(Extended JavaScript)로 하였습니다.
$ sudo express -e
간혹 아래와 같은 에러가 나올 때가 있는데 sudo를 꼭 써주세요
정상적으로 설치가 됐다면 아래와 같은 모습으로 나옵니다.
-
최종 확인. 아래의 커맨드를 날려 사진과 같은 파일들이 나오면 셋팅 완료입니다.
$ ls -al
파일 수정하기
-
npm을 인스톨 해줍니다.
$ sudo npm install
-
파일 편집 명령어로 app.js 수정하기
$ sudo vi app.js
// port setup app.set('port', process.env.PORT || 9000);
-
아래 파일과 같이 // set port 부분을 수정
-
동일하게 밑의 코드를 추가해줍니다.
module.exports = app;
var server = app.listen(app.get('port'), function() { console.log('Express server listening on port ' + server.address().port); });
그 후 ESC를 누른 후 :wq (저장 후 종료)로 빠져나옵니다.
5.package.json 파일의 node 모니터링을 위해 "start" 항목을 다음과 같이 수정합니다.
$ sudo vi package.json
"script":{
"start": "nodemon app.js"
},
그 후 ESC를 누른 후 :wq (저장 후 종료)로 빠져나옵니다.
Server Start
-
서버를 실행해줍니다
$ npm start
다음과 같이 뜨면 성공입니다.
2.웹 접속
윗 단계에서 [연결] 을 누르면 나오는 화면에서 [예] 를 확인해줍니다
그럼 위와 같이 ec2-18xxxxxxxxxxx 부분을 카피하고 뒤에 :9000 포트를 입력해주면 접속 끝!
백그라운드 실행하기
웹 서비스를 위해 자신의 컴퓨터의 터미널을 24시간 띄워놓는 것은 불가능하기 때문에
nohup
& 를 입력하여 백그라운드로 nodeJS server를 실행합니다.
$ sudo nohup npm start &
아래에 [1] 8814 가 표시되는 것을 확인 할 수 있는데 이것은 process ID입니다.
이제 터미널을 종료해도 접속가능한 것을 확인 할 수 있습니다.
$ ps -ef
위의 커맨드로 상황 확인도 가능합니다
프로세스 죽이기
ubuntu 8724 8700 0 13:39 ? 00:00:00 /usr/bin/node app.js
위 단계에서 이러한 글을 볼 수 있는데요 8724가 process Id 이기 때문에
kill [processId]
위의 커맨드를 통해서 프로세스를 정지하여 서비스를 종료할 수 있습니다.
자동 redirection
포트를 입력할 이유가 없기 때문에 아래와 같은 명령어로 포트를 입력하지 않고 넘길 수 있습니다.
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 9000
인스턴스 정지
사용하지 않는 경우 꼭 인스턴스를 중지해줘야 요금 폭탄을 막을 수 있습니다.
- 해당 인스턴스 오른쪽 클릭 후
- 중지를 눌러줍니다
그 후 몇 분이 지나면 정지된 모습을 확인 할 수 있습니다.
'개발 > AWS' 카테고리의 다른 글
모놀리식 아키텍쳐 (monolithic Architecture) vs MSA ( Microservices Architecture) 비교 정리 (0) | 2023.06.06 |
---|---|
[AWS] Amazon Web Serivce : AWS 에 Node JS 웹 서버 만들기2 (0) | 2019.07.30 |