/Users/kimjihun/Desktop/Security/AWS/giftProject_key.pem
EC2 인스턴스에 접속하여 Node.js 기반의 서버 환경을 세팅하는 방법을 단계별로 설명드리겠습니다. 이 가이드는 Ubuntu 또는 Amazon Linux 기반의 EC2 인스턴스를 기준으로 작성되었습니다.
먼저, AWS 콘솔에서 EC2 인스턴스를 생성하고 SSH를 통해 접속합니다.
AWS 콘솔에서 EC2 인스턴스 생성:
EC2 인스턴스에 SSH로 접속:
ssh -i /path/to/your-key.pem ec2-user@your-ec2-public-ip
여기서 /path/to/your-key.pem
은 AWS에서 생성한 키 파일 경로이고, your-ec2-public-ip
는 EC2 인스턴스의 퍼블릭 IP 주소입니다.접속 후, 먼저 시스템을 최신 상태로 업데이트합니다.
패키지 목록 업데이트:
sudo apt update # Ubuntu의 경우
필요한 기본 패키지 설치:
sudo apt install -y build-essential # Ubuntu
Node.js와 npm을 설치합니다.
Node.js와 npm 설치:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - # Ubuntu
sudo apt install -y nodejs # Ubuntu
Node.js 설치 확인:
node -v # Node.js 버전 확인
npm -v # npm 버전 확인
프로젝트를 EC2로 가져오기 위해 Git을 설치하고, GitHub에서 프로젝트를 클론합니다.
Git 설치:
sudo apt install git -y # Ubuntu
GitHub에서 프로젝트 클론:
GitHub에서 프로젝트를 가져옵니다.
git clone https://github.com/your-username/your-repo.git
cd your-repo
프로젝트의 의존성을 설치하고 .env
파일을 설정합니다.
프로젝트 의존성 설치:
package.json
에 정의된 패키지를 설치합니다.
npm install
.env 파일 설정:
프로젝트 루트 디렉토리에 .env
파일을 생성하고 필요한 환경 변수를 설정합니다. 예를 들어:
your-database-host는 엔드포인트
nano .env
.env
파일 내용:
DB_HOST=your-database-host
DB_USER=your-username
DB_PASSWORD=your-password
DB_NAME=your-database-name
PORT=3000
이제 서버를 실행할 준비가 되었습니다.
서버 실행:
npm start
또는, package.json
에 있는 다른 실행 명령을 사용할 수 있습니다.
PM2로 서버 백그라운드에서 실행:
PM2
는 Node.js 애플리케이션을 관리하기 위한 프로세스 매니저입니다.
PM2 설치:
sudo npm install -g pm2
PM2로 애플리케이션 실행:
pm2 start 서버.js -- start
pm2 save # 서버 재부팅 후에도 프로세스 유지
pm2 status # 실행 중인 프로세스 확인
서버를 HTTP 요청을 처리하도록 설정하려면 Nginx를 사용할 수 있습니다.
Nginx 설치:
sudo apt install nginx -y # Ubuntu
sudo amazon-linux-extras install nginx1.12 # Amazon Linux
Nginx 설정 파일 편집:
sudo nano /etc/nginx/sites-available/default # Ubuntu
sudo nano /etc/nginx/nginx.conf # Amazon Linux
다음과 같이 Nginx 설정을 변경하여 포트 80으로 들어오는 요청을 Node.js 서버로 프록시합니다:
server {
listen 80;
server_name your-ec2-public-ip;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Nginx 재시작:
sudo systemctl restart nginx
AWS 콘솔에서 보안 그룹을 열고 HTTP (포트 80)와 SSH (포트 22)에 대한 인바운드 규칙을 추가하여 서버에 접근할 수 있도록 설정합니다.
브라우저에서 EC2 퍼블릭 IP를 입력하여 서버가 정상적으로 동작하는지 확인합니다:
http://your-ec2-public-ip
pm2
로 서버 상태를 확인하고 관리할 수 있습니다:
pm2 status # 서버 상태 확인
pm2 logs # 로그 확인
pm2 restart all # 모든 서버 재시작
이 과정을 통해 EC2 인스턴스에 Express.js 서버를 설정하고 실행할 수 있습니다. Nginx를 사용하여 포트 80에서 들어오는 요청을 Node