Why Not SW CAMP 5기/수업 기록

[4월 1주차-4/4]🚀 Pybo Q&A 게시판 AWS Lightsail로 배포하기

rubii 2025. 4. 7. 09:21

Flask로 만든 Pybo 프로젝트를 AWS Lightsail을 통해 배포하는 과정을 정리했습니다. 실습형 미니 프로젝트를 실제 클라우드에 띄워보며 웹 개발 경험을 한 단계 끌어올려보세요! 🌍


☁️ 1. AWS Lightsail 인스턴스 생성

  1. AWS Lightsail 접속 → 인스턴스 생성 클릭
  2. 플랫폼: Linux/Unix
  3. 앱 + OS: Ubuntu 선택
  4. SSH 키: 사용자 지정 키 생성 → 이름: pybo_key
  5. 나머지는 기본값으로 생성

 

✅ 고정 IP 설정

  • 생성한 인스턴스 클릭 → 네트워킹 탭
  • 고정 IP 연결 → 생성 및 연결

✅ 방화벽 설정

  • 인스턴스 > 네트워킹 > 방화벽 규칙에 Custom TCP 5000 포트 추가

 


🔐 2. 서버 접속 (MobaXterm)

  1. MobaXterm 실행 > Session > SSH 탭 선택
  2. Remote host: 고정 IP 입력
  3. Specify username: ubuntu
  4. Use private key: pybo_key.pem 선택
  5. 접속 후 인스턴스 재부팅

 


🕹️ 3. 서버 초기 설정

✅ hostname 변경 및 시간 설정

sudo hostnamectl set-hostname jumpto
sudo reboot

# 재접속 후
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

✅ 파이썬 확인

python3

🧪 4. 가상환경 구성

sudo apt update
sudo apt install python3-venv

mkdir projects
mkdir venvs

cd venvs
python3 -m venv myproject
cd myproject/bin
. activate

# 필수 패키지 설치
pip install wheel
pip install flask
pip install flask-migrate
pip install flask-wtf
pip install email_validator

📦 5. Pybo 프로젝트 가져오기

cd ~/projects
git clone https://github.com/erimii/flask-pybo.git myproject

🚀 6. Pybo 실행하기

cd ~/projects/myproject

# Flask 실행 전 환경 변수 설정
export FLASK_APP=pybo
export FLASK_DEBUG=true

# DB 초기화
flask db init
flask db migrate
flask db upgrade

# Flask 앱 실행
flask run --host=0.0.0.0

🔗 브라우저에서 고정IP:5000 으로 접속!

🎉 Pybo 사이트가 실제 서버에 올라간 것을 확인할 수 있습니다.


🧹 7. 인스턴스 및 리소스 정리

  • Lightsail 콘솔 > 고정 IP > 분리
  • 인스턴스 > 삭제
  • 네트워킹 탭 > 고정 IP 삭제

✅ 마무리

Pybo는 단순한 플라스크 프로젝트를 넘어서, 배포까지 마친 진짜 웹 서비스 형태의 앱으로 성장했습니다.