카테고리 없음

django restAPI, aws 연결 차근차근 해보기(2)

띵지니 2025. 4. 23. 22:15

이번엔 aws 연결해 보기!!

 

1. aws 접속 -> 왼쪽 상단 선 3개 -> All services -> 컴퓨팅에서 EC2 접속

2. 인스턴스로 들어가서 프리티어로 설정하기(테스트니까!)

여기 키페어는 pem으로 만들어주고 절대 보안!

이 정도 설정해 주고 인스턴트 시작!

 

3. Elastic IP(탄력적 IP) -> 탄력적 IP 주소 할당 -> 새로 생긴 주소를 클릭해서 탄력적 IP 주소 연결

이렇게 연결해 주면 아래에 보이는 퍼블릭 IPv4 DNS 대신 퍼블릭 IPv4주소로 연결할 수 있고
나중에 EC2를 재시작, 새로고침할 때 변경되는 IP 값이 Elastic IP로 고정됨

 

4. 여기까지 했다면 다시 터미널로 가서 이전에 만들었던 프로젝트 경로로 이동

pip freeze > requirements.txt

 

위 명령어를 쳐줌

pip freeze는 django 프로젝트에 어떤 패키지들이 깔려있는지 확인할 수 있는데 이걸 requirements.txt에 옮겨서 나중에 가상 서버에서 설치할 수 있도록 설계

 

여기서 프로젝트에서 settings로 간다음 추가 코드 입력

나중에 static(정적 파일) 설정을 서버에서는 직접 설정해줘야 하므로 모든 앱의 정적 파일을 한 폴더에 모아줄 위치를 설정

ALLOWED_HOSTS = ["*"]을 통해 어떤 IP나 도메인에서 들어오는 요청을 받아주는 것

 

그리고 git에 push

 

5. pem키 설정

다운로드된 pem키는 홈 폴더에 .ssh로 옮김

(~/.ssh 폴더가 없을 경우)mkdir ~/.ssh/
mv ~/Downloads/testBugi.pem ~/.ssh/

 

그리고 키 페어 파일의 권한을 소유주만 읽을 수 있도록 변경

chmod 400 ~/.ssh/testBugi.pem

 

6. 서버 접속

아까 만들어준 Elastic IP로 접속할 수 있음

ssh -i ~/.ssh/testBugi.pem ubuntu@13.124.185.128

 

뭐 뜨면 yes 해줌

그럼 ubuntu 서버에 접속할 수 있다!

 

sudo apt-get update
sudo apt-get install build-essential // (Y눌러줌)
sudo apt-get install python3
sudo apt-get install python3-pip // (Y눌러줌)

 

필요한 패키지들 설치

 

7. public 키 발급

ssh-keygen -t rsa

 

이러면 경로 설정 -> 그냥 엔터(기본 주소에 저장)

비밀번호 입력 -> 외울 수 있는 걸로

비밀번호 다시 입력

이러면 키 발급이 된 것이고

cat /home/ubuntu/.ssh/id_rsa.pub

 

이 명령어를 통해 키 값을 복사

 

 

이걸 프로젝트의 Settings에 Deploy keys로 가서 Add deploy key를 누르고 

제목과 복사한 키를 복붙 해주면

 

성공적으로 키 생성!

이걸 통해서 나중에 git clone 하고 업데이트하고 할 때 매번 아이디, 비번 적는 게 아니라 간편하게 키 등록으로 쉽게 git에 연결할 수 있음

이제 clone을 할 건데 https가 아니라 ssh로 복사!

 

그리고 clone 명령어를 입력하면 뭐 yes 누르고 비번을 작성하라고 하는데 아까 키 만들 때 작성했던 비밀번호를 입력하면 됨

성공적으로 clone이 되었다면 해당 프로젝트로 경로를 이동한 뒤 확인

 

8. 가상환경 설치

 

virtualenv를 설치해 주고

sudo apt-get install virtualenv

 

venv라는 이름으로 가상환경 만들기

virtualenv -p python3 venv

 

가상환경 활성화 명령어를 입력해 주면 앞에(venv)가 떠주면서 활성화됨

source venv/bin/activate

 

이제 가상환경에 requirements의 패키지들을 설치

pip install -r requirements.txt
더보기

note: This error originates from a subprocess, and is likely not a problem with pip.

error: subprocess-exited-with-error

 

× Getting requirements to build wheel did not run successfully.

exit code: 1

╰─> See above for output.

갑자기 이런 오류가 떠서 뭐지..

sudo apt update && sudo apt install -y pkg-config libmysqlclient-dev

이걸 적어주고 다시 했더니 잘 된다!

 

가상환경에서 runserver로 서버를 다시 켜보기

 

aws 홈페이지에 가서 인스턴스 클릭 -> 보안 -> 보안 그룹

보면 아래 인바운드 규칙이 있는데 8000 포트에 접속하고 싶으면 추가해 주면 된당

저장하고 테스트하면

python manage.py runserver 0.0.0.0:8000

내 IP로 접속이 되는 것을 확인