카테고리 없음

[항공 예약 챗봇 개발] 2. ec2 인스턴스에 개발용 환경 설정

빠작 2025. 4. 22. 12:29

로컬에 공간이 부족하고, django를 사용할 일이 거의 없기 때문에 ec2 인스턴스에 개발용 환경도 설정하여 작업하기로 결심했다.

[EC2 인스턴스]
    ├── A: 서비스 돌고 있는 현재 디렉토리 (백엔드 서버)
    └── B: 동일 인스턴스에 다른 디렉토리로 깃 클론해서 개발용

[깃 저장소]
    └── 수정사항 push하면 GitHub Actions로 EC2 서버 업데이트

 

 

1. ssh clone하기

2. 환경 설정하기

나는 기존 프로젝트를 fork 해온 후 그 기반으로 작업하고 있다.

기존 프로젝트에서 local 실행은 venv에서 실행하도록 했기 때문에, ec2에도 venv를 설치해줬다.


 

ec2에서 아래와 같이 실행하면 당연히 브라우저에서 접속이 불가하다.

아래 명령어는 127.0.0.0에서 서버가 실행되게 하는데, 그건 ec2 서버 내부 기준 주소이기 때문이다.

python amadeus_demo_api/manage.py runserver

 

따라서 아래와 같이 일차적으로 모든 주소에서 접근 가능하게 실행한 후, settings.py의 allowed host를 통해 필터링 해주면 된다.

기존 코드에는 env를 통해 ec2의 ip주소를 allowed host에 추가하게 만들고 있고, 배포용 서버 역시 이 방식을 따르고 있다.

따라서 개발용 환경에서도 이를 그대로 따라야 한다.

python amadeus_demo_api/manage.py runserver 0.0.0.0:8000

 


 

배포용 환경에서 읽어오는 env 파일을 개발용 환경에서도 읽어오도록 했다.

venv 환경 때문에 작성해야 할 명령어가 많아지기에 script 파일로 작성해두었다.

set -a
source ../flight-booking.env
set +a

echo "[*] 현재 경로: $(pwd)"
echo "[*] 현재 python 경로: $(which python)"
echo "[*] 현재 가상환경: $VIRTUAL_ENV"

source /home/ubuntu/amadeus-flight-booking-django/venv/bin/activate
echo "[*] 가상환경 활성화 후 python 경로: $(which python)"
echo "[*] 가상환경 활성화 후 manage.py 존재 여부:"

cd /home/ubuntu/amadeus-flight-booking-django
python amadeus_demo_api/manage.py runserver 0.0.0.0:8000

 

 

이제 ec2 ip 주소를 통해 아래와 같이 접근이 가능하다.

3. 개발용 브랜치 추가하기

배포용 환경은 master 브랜치에 올라간다.

따라서 dev 브랜치를 생성하여 개발용 환경을 업데이트 할 수 있게 했다.

 

git checkout -b dev
git add .
git commit -m "개발용 브랜치 init"
git push origin dev