
1. 인스턴스 생성
1-1. AWS 콘솔 접속
- AWS 접속
- AWS 계정으로 로그인
- 인스턴스 생성" 버튼 클릭

1-2. 인스턴스 위치 선택
- 리전: 아시아 태평양(서울) - ap-northeast-2 선택
1-3. 플랫폼 및 블루프린트 선택
- 플랫폼: Linux/Unix 선택
- 블루프린트:
- OS 전용 탭 선택
- Ubuntu 22.04 LTS 선택 (최신 안정 버전)

1-4. 인스턴스 플랜 선택
- 가장 저렴한 $5/월 플랜 선택함
1-5. 인스턴스 이름 지정
- 이름: 원하는 이름
- "인스턴스 생성" 클릭
2. STEP 2: 고정 IP 할당
- 인스턴스가 재시작되어도 IP가 변경되지 않도록 설정
2-1. 네트워킹 탭
- Lightsail 홈에서 "네트워킹" 탭 클릭
- "고정 IP 생성" 클릭
2-2. 고정 IP 설정
- 위치: 서울 리전 선택
- 인스턴스 연결: 방금 만든 인스턴스 선택
- "생성" 클릭
- 고정 IP 주소 확인 (예: 13.125.XXX.XXX)
3. 방화벽 설정
- Node.js 서버 포트를 열어줘야함
3-1. 네트워킹 설정
- Lightsail 홈 → 인스턴스 클릭
- "네트워킹" 탭 클릭
- "규칙 추가" 클릭
3-2. 포트 규칙 추가
- 최종 방화벽 규칙:
- SSH (22) ← 기본
- HTTP (80) ← 기본
- HTTPS (443) ← 새로 추가
- Custom (4000) ← 새로 추가
4.SSH 접속 및 서버 환경 설정
4-1. SSH 연결

- Lightsail 콘솔에서 인스턴스 클릭
- 오른쪽 상단 "연결" 아이콘 (터미널) 클릭
- 브라우저에서 터미널 열림
4-2. 시스템 업데이트
sudo apt update && sudo apt upgrade -y
4-3. Node.js 설치 (최신 LTS 버전)
# Node.js 20.x LTS 설치
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
# 버전 확인
node --version # v20.x.x
npm --version # 10.x.x
4-4. PM2 설치 (프로세스 관리자)
sudo npm install -g pm2
5. 서버 코드 업로드
5-1. Git 설치 및 코드 클론
# Git 설치
sudo apt install -y git
# 작업 디렉토리 생성
mkdir ~/apps && cd ~/apps
# GitHub에 코드가 있다면
git clone https://github.com/your-username/your-repo.git
cd your-repo/do_it_server
# 또는 특정 폴더만
# (먼저 GitHub에 코드를 푸시해야 함)
6. 의존성 설치 및 환경변수 설정
6-1. npm 패키지 설치
cd ~/apps/do_it_server
npm install --production
6-2. 환경변수 파일 생성
nano .env
6.3 로컬에 있는 파일(깃헙에 없는 환경변수 등) 업로드
- 파일 생성후 환경변수 입력후 "ctrl + O" 누르고 "ctrl + X"로 터미널 나오기
7. 서버 실행 및 PM2 설정
7-1. 테스트 실행
cd ~/apps/do_it_server
node server.js
7-2. PM2로 프로덕션 실행
# PM2로 서버 시작
pm2 start server.js --name "do-it-server"
# 상태 확인
pm2 status
# 로그 확인
pm2 logs do-it-server
7-3. PM2 자동 시작 설정
# 부팅 시 자동 시작
pm2 startup
# ↑ 출력된 명령어 복사해서 실행 (sudo로 시작)
# 현재 프로세스 저장
pm2 save
7-4. 유용한 PM2 명령어
pm2 restart do-it-server # 재시작
pm2 stop do-it-server # 중지
pm2 delete do-it-server # 삭제
pm2 logs # 실시간 로그
pm2 monit # 실시간 모니터링
8. Nginx 설정 (HTTPS 및 도메인용)
8-1. Nginx 설치
sudo apt install -y nginx
8-2. Nginx 설정 파일 생성
// 아래 명령어로 파일 생성후
sudo nano /etc/nginx/sites-available/do-it-server
// 아래 내용 입력
server {
listen 80;
server_name 13.125.XXX.XXX; # 고정 IP 입력
location / {
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
8-3. Nginx 활성화
# 심볼릭 링크 생성
sudo ln -s /etc/nginx/sites-available/do-it-server /etc/nginx/sites-enabled/
# 기본 설정 제거 (선택)
sudo rm /etc/nginx/sites-enabled/default
# 설정 테스트
sudo nginx -t
# Nginx 재시작
sudo systemctl restart nginx
9. 테스트
9-1. 브라우저에서 테스트
http://13.125.XXX.XXX/ <- 고정아이피로 접속
또는
http://13.125.XXX.XXX:4000/ (Nginx 없이 직접 접속)
10. 유지보수 및 관리
10-1. 서버 로그 확인
# PM2 로그
pm2 logs do-it-server
# Nginx 로그
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
10-2 .코드 업데이트
cd ~/apps/do_it_server
# Git 사용 시
git pull origin main
# 의존성 재설치
npm install
# PM2 재시작
pm2 restart do-it-server
10-3. 서버 상태 모니터링
# CPU/메모리 사용량
htop
# 디스크 사용량
df -h
# PM2 모니터링
pm2 monit
11. SSL 인증서 발급
11-1. Cerbot설치
sudo apt update
sudo apt install snapd
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
11-2. Nginx 설정 수정 (도메인 적용)
sudo nano /etc/nginx/sites-available/do-it-server
server {
listen 80;
server_name api.chacha-dev.com; # 본인의 서브도메인 입력
location / {
proxy_pass http://localhost:4000;
# ... 나머지 설정은 동일
}
}
- 저장 후 Nginx 재시작: sudo systemctl restart nginx
SSL 인증서 자동 발급
sudo certbot --nginx -d api.chacha-dev.com