(AWS 배포) AWS Lightsail 배포

최건·2025년 4월 27일

AWS

목록 보기
1/1

Node 인스턴스 생성하기

  • AWS에 있는 Lightsail 에 들어와서 create instacne 클릭

  • 리눅스/유닉스 선택 후 Node.js 서버 클릭

  • 제일 싼 거 클릭…

  • 인스턴스는 일단 한개만!

  • 그러면 생성이 된다. 생성 후 몇 초 ~ 몇 분 걸리니 기다리면 사용 가능

  • 해당 인스턴스에 connect를 들어가보면 아래처럼 IP가 뜬다. 그 주소로 들어가보면 다음과 같이 뜬다.!

코드 다운 받기

git clone 깃허브 주소

아파치 서버 끄기

cd /opt/bitnami
sudo ./ctlscript.sh stop apache
  • 이 명령어는 Bitnami 스택에서 Apache 웹 서버를 중지하는 역할을 한다
  • Node.js로 만든 서버 애플리케이션이 포트 80(HTTP 기본 포트)이나 443(HTTPS 기본 포트)에서 실행되도록 설정할 경우, 해당 포트를 이미 사용 중인 Apache 서버를 중지해야 한다.
  • 만약 3000번 포트에서 돌리거나 80, 443 포트를 쓰지 않는다면 굳이 안해도 된다.
  • 시스템 리소스 절약도 된다.

모듈 깔고 시작

cd ~/폴더명
npm ci 또는 npm i
sudo npm start index.js
  • npm ci로 해당 모듈을 깔고 해당 서버를 시작하면 된다.
  • pm2 라이브러리를 설치해서 실행시키는 걸 추천한다.
  • sudo node index와 같이 root 권한으로 돌려줘야지 에러가 안 뜬다.

꼭 알아야 할 것

  • port 80으로 하지 않을거면 해당 인스턴스의 IPv4 Firewall로 들어가서 HTTP 포트를 원하는 포트로 Add rule 하면 된다.

  • sudo 권한으로 해당 index.js를 실행시키지 않는다면 아래와 같은 오류가 발생한다.

 throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 0.0.0.0:80
    at Server.setupListenHandle [as _listen2] (node:net:1800:21)
    at listenInCluster (node:net:1865:12)
    at Server.listen (node:net:1953:7)
    at Function.listen (/home/bitnami/test/node_modules/express/lib/application.js:635:24)
    at Object.<anonymous> (/home/bitnami/test/index.js:29:5)
    at Module._compile (node:internal/modules/cjs/loader:1364:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
    at Module.load (node:internal/modules/cjs/loader:1203:32)
    at Module._load (node:internal/modules/cjs/loader:1019:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1844:8)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'EACCES',
  errno: -13,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 80
}
profile
개발이 즐거운 백엔드 개발자

0개의 댓글