15. AWS와 GCP로 배포하기
15.AWS와 GCP로 배포하기
15.1 서비스 운영을 위한 패키지
// app.js ... // morgan if(process.env.NODE_ENV === 'production') { // .env는 정적파일이므로, cross-env 로 설정해야함 app.use(morgan('combined')); // 운영환경 : combined 모드 } else { app.use(morgan('dev')); // 개발환경 : dev 모드 } ... // express-session const sessionOption = { cookie : { httpOnly: true, secure : false // -> true : https 적용 or 로드밸런싱 등을 위해 } } if(process.env.NODE_ENV === 'production'){ sessionOption.proxy = true; // https 적용을 위해 노드서버 앞에 다른 서버를 두었을때 }module.exports = { development : { username : 'root', password : process.env.SEQUELIZE_PASSWORD, // 하드코딩된 정보를 env 파일을 통해 할당 /*...*/ }, procuction : { /*...*/ logging : false // -> sql 출력을 숨김. } }{ "scripts: { "start": "cross-env NODE_ENV=prodction PORT=80 node app", "dev": "nodemon app" } }# 설치 $ npm i -g retire # 실행 -> 문제가 있으면 콘솔에 내용 출력 $ retire # npm i 할때 자동으로 취약점을 검사 $ npm audit# 설치 $ npm i -g pm2 && npm i pm2 { "start" : "cross-env NODE_NEW=production PORT 80 start app.js", "dev" : "nodemon app" } # 사용 $ pm2 list # 노드프로세스 확인 $ pm2 kill # 종료 $ pm2 reload all # 재시작 $ pm2 start app.js -i -1 # 디폴트는 0 (프로세스 생성을 현재 코어수 만큼), -1 : 현재코어 - 1개 사용 $ pms monit # 현재 프로세스 모니터링const {createLogger, format, transports} = require('winston'); const logger = createLogger({ level: 'info', format: format.json(), transports:[ new transports.File({filename: 'combined.log'}), new transports.File({filename: 'error.log', level: 'error'}) ] }) ... logger.add(new transports.Console({format: format.simple()})); module.exports = logger;# .env REDIS_HOST=redis-11196.c44.us-east-1-2.ec2.cloud.redislabs.com REDIS_PORT=11196 REDIS_PASSWORD=adadakldsakldasl?// app.js ... const session = require('express-session'); const RedisStore = require('connect-redis')(session); const sessionOption = { ... store: new RedisStore({ host: process.env.REDIS_HOST, port: process.env.REDIS_PORT, pass: process.env.REDIS_SECRET, logErrors: true // redis 에러 발생시 콘솔 출력여부 }) }# linux, mac -> n # 노드 설치 버전 확인 $ nvm list # 설치 $ nvm install [버전] $ nvm install latest # 사용 $ nvm use 10.1.0 $ node -v
15.2 Git과 GitHub 사용하기
15.3 AWS 시작하기
15.4 AWS 배포하기
15.5 GCP 시작하기
15.6 GCP 배포하기
Last updated