ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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로 접속이 되는 것을 확인

    댓글

Designed by Tistory.