웹 애플리케이션을 개발할 때, Next.js와 Node.js를 사용하여 백엔드를 구축하고 MySQL을 데이터베이스로 활용하는 경우가 많습니다. 하지만 이를 실제 AWS 환경에 배포하는 과정이 처음에는 다소 복잡할 수 있습니다.
이 포스팅에서는 AWS EC2를 이용하여 Next.js + Node.js + MySQL 스택을 배포하는 방법을 단계별로 설명하겠습니다. 🏗️
📌 1. AWS EC2 인스턴스 생성하기
AWS EC2(Elastic Compute Cloud)는 가상 서버를 제공하는 서비스입니다. Next.js 애플리케이션을 실행하기 위해 먼저 EC2 인스턴스를 설정해야 합니다.
✅ EC2 인스턴스 설정
- AWS 콘솔 접속 → AWS EC2 페이지로 이동
- 새 인스턴스 생성 (Ubuntu 22.04 LTS 추천)
- 인스턴스 타입 선택 (t2.micro는 프리 티어 무료 사용 가능)
- 스토리지 설정: 기본값(8GB 이상)으로 설정
- 보안 그룹 설정
- SSH (포트 22) 허용 → 본인의 IP만 허용
- HTTP, HTTPS (포트 80, 443) 허용 → 웹사이트 접근을 위한 설정
- MySQL (포트 3306) 제한 → 본인 서버에서만 접근 가능하도록 설정
- 키 페어 생성 및 다운로드 → SSH 접속 시 필요함
✅ EC2 인스턴스 접속
ssh -i your-key.pem ubuntu@your-ec2-ip
📌 2. Node.js & MySQL 설치
이제 EC2 인스턴스에서 Next.js 백엔드를 실행할 Node.js와 MySQL 데이터베이스를 설치해야 합니다.
✅ Node.js 설치
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
node -v # Node.js 버전 확인
Node.js가 정상적으로 설치되었는지 node -v 명령어로 버전을 확인하세요.
✅ MySQL 설치 및 설정
sudo apt update
sudo apt install -y mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
🔹 MySQL 보안 설정
보안을 강화하기 위해 다음 명령어를 실행하여 초기 보안 설정을 완료하세요.
sudo mysql_secure_installation
여기에서 root 비밀번호 설정, 원격 접속 허용 여부 등을 설정할 수 있습니다.
🔹 MySQL 데이터베이스 및 사용자 생성
sudo mysql -u root -p
비밀번호를 입력한 후, 다음과 같이 새 데이터베이스 및 사용자를 생성합니다.
CREATE DATABASE nextjs_db;
CREATE USER 'nextjs_user'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON nextjs_db.* TO 'nextjs_user'@'%';
FLUSH PRIVILEGES;
EXIT;
MySQL 외부 접속을 허용하려면 /etc/mysql/mysql.conf.d/mysqld.cnf 파일을 수정해야 합니다.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address를 0.0.0.0으로 변경 후 저장 (Ctrl + X → Y → Enter)
bind-address = 0.0.0.0
MySQL을 다시 시작합니다.
sudo systemctl restart mysql
📌 3. Next.js + Express 백엔드 설정
이제 Next.js와 Express를 EC2에서 실행할 수 있도록 설정합니다.
✅ 프로젝트 클론 및 패키지 설치
git clone https://github.com/your-repo/your-nextjs-app.git
cd your-nextjs-app
npm install
✅ .env 파일 설정
Next.js 백엔드와 MySQL을 연결하기 위해 .env 파일을 생성합니다.
DB_HOST=your-ec2-ip
DB_USER=nextjs_user
DB_PASSWORD=yourpassword
DB_NAME=nextjs_db
✅ Express 서버 실행
node server.js
📌 4. Nginx를 이용한 Reverse Proxy 설정
Next.js를 실행할 때, 직접 포트를 열기보다는 Nginx를 이용한 Reverse Proxy 설정이 필요합니다.
✅ Nginx 설치 및 설정
sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/default
아래 내용을 추가합니다.
server {
listen 80;
server_name your-domain.com;
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 EC2에서 Next.js + Node.js + MySQL을 완벽하게 배포할 수 있습니다! 🚀
이 포스팅에서 다룬 내용:
- AWS EC2 인스턴스 생성 및 SSH 접속
- Node.js & MySQL 설치 및 설정
- Next.js + Express 백엔드 연결
- Nginx Reverse Proxy 및 HTTPS 적용
- PM2를 이용한 자동 실행 설정
이제 여러분도 AWS에서 강력한 웹 애플리케이션을 운영할 수 있습니다. 🙌
💡 추가 질문이 있다면 댓글로 남겨주세요! 😊
'서버 > AWS' 카테고리의 다른 글
AWS 인스턴스 그누보드 설치하는 법 (0) | 2025.02.13 |
---|