Synology 시놀로지

Synology > 시놀로지에서 Node.js 배포 및 관리

에그티비 2024. 7. 6. 11:09

1. Node.js 애플리케이션 배포 준비


1. 패키지 설치
• 애플리케이션에 필요한 모든 패키지를 설치하고 package.json 파일에 기록합니다.

npm install --save express



2. 환경 설정 파일
• 환경 변수와 같은 민감한 정보를 관리하기 위해 .env 파일을 사용합니다.

touch .env
echo "PORT=3000" >> .env

 

 

2. 보안 설정


1. SSH 보안
• SSH를 통한 원격 접근을 위한 보안 강화를 위해 다음을 설정합니다.
• 강력한 비밀번호 사용
• 비밀번호 대신 SSH 키 사용
• 기본 포트 번호(22) 변경

sudo nano /etc/ssh/sshd_config


# 포트 번호 변경
Port 2222


2. 방화벽 설정
• DSM 제어판(Control Panel) > 보안(Security) > 방화벽(Firewall)에서 방화벽 규칙을 설정하여 외부 접근을 제어합니다.
• 필요한 포트만 열고 나머지는 차단합니다.

 


3. 애플리케이션  관리 도구  사용

1. PM2 설치 및 설정
PM2는 프로세스 관리 도구로, Node.js 애플리케이션을 백그라운드에서 실행하고 자동 재시작 기능을 제공합니다.

npm install -g pm2



2. PM2로 애플리케이션 실행
PM2를 사용하여 애플리케이션을 실행합니다.

pm2 start app.js --name "my-app"



3. PM2 설정 파일 사용
PM2 설정 파일을 사용하여 환경 변수를 관리하고, 애플리케이션을 자동으로 시작합니다.

pm2 ecosystem


4. 생성된 ecosystem.config.js 파일을 편집하여 다음과 같이 설정합니다.

module.exports = {
  apps: [
    {
      name: "my-app",
      script: "./app.js",
      env: {
        PORT: 3000
      },
      env_production: {
        NODE_ENV: "production"
      }
    }
  ]
};


5. 설정 파일을 사용하여 애플리케이션을 실행합니다.

pm2 start ecosystem.config.js --env production
pm2 startup
pm2 save




4. 데이터 백업 및 복원


1. 데이터 백업 설정
• Synology NAS의 Hyper Backup을 사용하여 애플리케이션 데이터와 설정 파일을 정기적으로 백업합니다.


2. 데이터 복원
• 필요 시 Hyper Backup을 사용하여 데이터를 복원합니다.

 


5. SSL/TLS 설정


1. SSL 인증서 설정
• Let’s Encrypt를 사용하여 무료 SSL 인증서를 설정합니다.
• DSM 제어판(Control Panel) > 보안(Security) > 인증서(Certificate)에서 인증서를 설정합니다.


2. 애플리케이션에서 SSL 사용
• SSL 인증서를 사용하여 Node.js 애플리케이션을 HTTPS로 설정합니다.

 

const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();

const options = {
  key: fs.readFileSync('/path/to/your/private-key.pem'),
  cert: fs.readFileSync('/path/to/your/certificate.pem')
};

app.get('/', (req, res) => {
  res.send('Hello, Secure World!');
});

https.createServer(options, app).listen(3000, () => {
  console.log('Server is running on https://localhost:3000');
});




6. 로그  및  모니터링


1. 로그 관리
• PM2를 사용하여 로그를 관리합니다.

pm2 logs my-app



2. 모니터링 도구 사용
• Synology NAS에서 제공하는 Resource Monitor를 사용하여 시스템 자원을 모니터링합니다.
• 외부 모니터링 도구(예: New Relic, Datadog)를 사용하여 애플리케이션 상태를 모니터링합니다.