기본 콘텐츠로 건너뛰기

AWS instance로 Nodejs 구현하기

AWS instance로 Nodejs 구현하기

서버와 데이터베이스 관리 차원에서 효율적으로 관리하기 위해선 로컬보다는 서버를 호스팅해서 하는 것이 좋다.

우리는 Nodejs를 구동하기 위해 AWS에서 인스턴스를 할당받을 계획이다.

인스턴스의 pem키를 발급받아 nodejs와 npm까지는 설치를 완료한 상태이다.

$ sudo npm install -g express

다음의 명령어를 입력하면 글로벌 옵션으로 어느 path에서든 express를 사용할 수 있게 설치한다.

다음과 같이 실행이 된다면 성공이다.

이후 Express generator를 설치한다.

$ sudo npm install -g express-generator@4

버전은 4.x이며 이 역시 글로벌 옵션으로 설치해 준다.

이제 Node monitoring을 위해 nodemon을 설치해 준다.

$ sudo npm install -g nodemon

모든 설치가 끝났다.

이제 nodejs를 실행시킬 프로젝트용 directory를 만든다.

이렇게 만들어 주고 express를 실행시키면 된다.

$ express -e

다음과 같은 결과가 나오면 된다.

이제 node package를 설치하는 명령어를 입력하자.

$ sudo npm install

이제 vi를 통해 포트번호를 정의해보자.

app.set의 마지막에 한줄을 추가하면 된다.

app.set('port', process.env.PORT || 9000);

이로써 우리는 9000번 포트를 사용하게 되었다.

또한 마지막줄에 서버를 생성하기 위한 코드를 작성하자.

module.exports = app; var server = app.listen(app.get('port'), function() { console.log('Express server listening on port ' + server.address().port); });

이제 app.js파일을 저장하고 빠져나온다.

이후 package.json의 내용중 start로 시작되는 json을 다음과 같이 바꿔준다.

"start" : "nodemon app.js"

이제 json파일을 빠져나와서 start를 실행하면 끝이다.

하지만 여기서 실행을 할 때 우리는 AWS 인스턴스가 연결이 끊기면 프로그램이 종료되는 경우가 있다.

따라서 우리는 background에서 항상 동작하도록 nohup 명령어를 사용하여 실행시킬 것이다.

nohup에 문제가 있어서 npm start로 foreground에서 실행하였다.

서버의 공인 IP와 9000번 포트로 접속하면 다음과 같은 결과를 볼 수 있다.

이로서 우리는 express를 다룰 준비가 되었다.

참고 : https://cinema4dr12.tistory.com/741

-- 필자도 아직 초보 단계라 보고 따라한 수준이다.

from http://insbox.tistory.com/25 by ccl(A) rewrite - 2020-03-25 18:54:03

댓글

이 블로그의 인기 게시물

[2020-angstromCTF] web - A peculiar query write-up

[2020-angstromCTF] web - A peculiar query write-upEnglish write-upUI seems like below.If you click the 'the source' link, you can get back-end source code.const express = require("express"); const rateLimit = require("express-rate-limit"); const app = express(); const { Pool, Client } = require("pg"); const port = process.env.PORT || 9090; const path = require("path"); const client = new Client({ user: process.env.DBUSER, host: process.env.DBHOST, database: process.env.DBNAME, password: process.env.DBPASS, port: process.env.DBPORT }); async function query(q) { const ret = await client.query(`SELECT name FROM Criminals WHERE name ILIKE '${q}%';`); return ret; } app.set("view engine", "ejs"); app.use(express.static("public")); app.get("/src", (req, res) => { res.sendFile(path.join(__dirname, "index.js")); }); app.get("/", async (req, res) => { if (req.query.q) { try …

nodejs 백그라운드 실행 PM2 활용하기

nodejs 백그라운드 실행 PM2 활용하기개발/기타정보개발/기타정보 nodejs 백그라운드 실행 PM2 활용하기//pm2는 프로세스매니저2로 프로세스를 관리해준다 npm install pm2 -g // pm2 설치 pm2 start server.js //실행하고싶은 코드를 작성한다음 실행 pm2 list // pm2로 실행한것들 목록보기 pm2 restart server.js //재시작 pm2 stop server.js//중지 //stop 하면 서버가 중지되지만 pm2 list에는 남아있게된다 //pm2 list 에서도 제거하고싶으면 pm2 delete [id] // id는 pm2 list하면 나옴 , 아니면 pm2 delete server.js //해도됨 pm2 monit //서버들 모니터링도할수있다 pm2 log //서버 로그출력되는것도 볼수있따 pm2 start server.js-o ./log.txt // 이런식으로 실행하면 서버에서 console.log 로 출력되는것을 log.txt파일에 저장할수있다자세한 내용은 공식홈페이지로 !from http://dulki.tistory.com/118 by ccl(S)

NodeJs - MariaDB 연동하기

NodeJs - MariaDB 연동하기NodeJs에서 마리아 DB를 사용해보자.1. 마리아DB 설치마리아DB 홈페이지에서 마리아DB를 설치합니다.2. DB 및 테이블 생성테스트 DB와 테이블을 생성한 후 샘플데이터를 Insert합니다.1 2 3 4 5 6 7 8 9 10 11 12 DROP DATABASE IF EXISTS nodejs_test; CREATE DATABASE nodejs_test; DROP USER IF EXISTS nodejs_admin; CREATE USER nodejs_admin@ '%' IDENTIFIED BY 'admin' ; GRANT ALL PRIVILEGES ON nodejs_test. * to nodejs_admin@ '%' ; USE nodejs_test; DROP TABLE IF EXISTS users; CREATE TABLE users ( user_key INT NOT NULL AUTO_INCREMENT PRIMARY KEY , user_id VARCHAR ( 128 ) UNIQUE NOT NULL ); INSERT INTO users(user_id) VALUES ( 'TEST01' ); cs3. Nodejs 프로젝트 생성CMD 혹은 powershell을 실행 후 workspace로 이동합니다.npm init을 실행합니다.프로젝트 관련 여러 사항을 묻습니다. 적당히 입력하고 넘어갑시다.해당 작업을 수행하면 package.json 파일이 입력된 값에 의해 자동으로 생성됩니다.1 2 3 4 5 6 7 8 9 10 11 12 { "name" : "mariadb-test" , "version" : "1.0.0" , "description" : "mariadb connection testing project." , "main" : "index…