장고)일단 배포 때리고 프로젝트 시작하기! (2) / EC2 인스턴스 시작 및 접속 ~~ 배포 마무리 -

2024. 10. 2. 15:24카테고리 없음

보통은, 프로젝트 완성 후에 배포를 하지만! 나는 배포를 하고 프로젝트 디벨롭을 하려고 한다 
이유는?
- 배포할 때 시간 단축을 위해서이다. 프로젝트가 무거워질수록 배포할 때 까다로워지고, 오류도 계속 발생하는데 (버전 차이 등)
- 배포를 처음에 때려버리고 프로젝트 디벨롭을 같이 하면서 배포한 곳에 계속 올리면 효율적일 거 같아서이다!

 

저번 글이 궁금하다면?

https://hsjoo126.tistory.com/69

 

장고)일단 배포 때리고 프로젝트 시작하기!

보통은, 프로젝트 완성 후에 배포를 하지만! 나는 배포를 하고 프로젝트 디벨롭을 하려고 한다 이유는? - 배포할 때 시간 단축을 위해서이다. 프로젝트가 무거워질수록 배포할 때 까다로워지고

hsjoo126.tistory.com

 

 

저번 글에선 가벼운 프로젝트 만들고 깃에 올리는 것까지 했었다.

 

- 깃허브 파기

- 가벼운 프로젝트 생성

- 깃에 올리기

- EC2 인스턴스 생성

- 인스턴스 접속 후 깃클론~

- NginX, gunicorn 등 깔기

- 끝?!(아마도...

 

이번 글에선 EC2 인스턴스 생성하고 접속까지 다뤄보겠다

https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwjEpdWi1O6IAxW8P3sHHYX2H2MYABAAGgJ0bQ&co=1&ase=2&gclid=Cj0KCQjwu-63BhC9ARIsAMMTLXRAqhJBBXdrGDIAzUGV_dD3jCXpAK6xWxvARL5n2Bd-DmHigpZ1Hv4aAjYkEALw_wcB&ohost=www.google.com&cid=CAESVeD2u1nsBFneOMqxs4BPjFNVwVPwBuDcMzx9HzI-J7gIXyKYl1Qb0d-JSFYYX5TA0fMv5bKStA287twU8Tj_g0ggZuw8kSafuaXd13-aoRHkofgePSs&sig=AOD64_0Gb8G_mKh8LUFUTEjsKKsgOkLXIA&q&nis=4&adurl&ved=2ahUKEwiWp9Ci1O6IAxXPsFYBHWYIAoIQ0Qx6BAgIEAE

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과할 경우

aws.amazon.com

일단 여기 들어가서 회원 가입 & 로그인 하시고 ~ 

서울로 지역 바꿔주세용검색창에 EC2 검색해서 들어와봅시다

 

 

 

대충 이런 화면이 뜨겠죠?

인스턴스 시작을 누릅시당

 

이름을 지어주세요 ! 그리고 우분투 선택한다음에

이걸로 선택해주세요!

 

 

 

그리고 키 페어를 해줘야 하는데 없으신 분은 새 키 페어 생성 눌러주세용

 

이름 입력하고 만들어주시면 됩니다!

 

 

키페어 선택 후 인스턴스 시작을 누릅시다 ~ 

 

 

잠시후 기다려 보면 인스턴스가 실행 중이라고 뜰겁니다 ! (안 뜨면 새로고침 ㄱ)

 

 

자 이제 이걸 어떻게 들어가면 될까요 ? 

뭐 터미널로 하는 방법도 있지만 윈도우와 맥사용자 둘다 제 글을 볼테니까 ? 쉬운 방법으로 가봅시다

진짜 쉬움... 인스턴스 실행되어있는 상태에서 연결 누르고

 

 

그럼 이런 페이지가 뜰텐데 연결을 또 눌러주면?

 

 

 

이렇게 터미널같은 창이 뜰 것이다 ! 우리가 만든 인스턴스에 들어온 것이다 ! 

 

어딘가에 있는 AWS 서버에서 우리가 아주 조그마한 서버를 빌렸고, 이 서버에 접속한 것! (서버=컴퓨터)

아무것도 깔려있지 않은 아주아주 깨끗한 컴퓨터! 이다 ~ 

자 여기에다가 깃에 올려놨던 프로젝트를 가져와볼 것이다 ! 

 

 

혹시 뭐 업데이트 안 된게 있을 수 있으니까 업데이트 한 번 때려주고 

sudo apt-get update # 패키지 정보 업데이트

파이썬을 깔아주자!

sudo apt-get install python3-pip

Y치고 엔터! (대문자로 해야합니다!)

 

다 설치 후에 버전을 확인해보면 잘 깔려있는 것을 볼 수 있음!

 

 

오케 - 이제 우리의 깃헙을 받아옵시다 ! 

git clone repository 주소

 

우리 프로젝트는 매우매우 가볍기 때문에 ~ 아주 빨리 끝났다 ! 

 

오 명령어로 확인해보니 우리 프로젝트가 잘 들어와있는 것을 볼 수 있다 .

 

이제 프로젝트에 필요한 패키지를 설치하면 된다. requirments.txt 를 이용하면 되겠죠 ?

하기 전에 ! 

#requirements 설치시 필요할 수 있는 시스템 패키지 사전 설치 
#(중간에 나오는 창에서는 모두 OK로 진행)

sudo apt-get install build-essential libpq-dev -y

 

이거 먼저 설치해주시구요!  다 하셨으면 requirements.txt 설치해줍시다! 

pip install -r requirements.txt

 

다 하셨으면 config 파일을 만들어줘야합니다 왜 ?

깃에 올릴 때 config 파일은 안 올려놨으니까 ~ 이게 있어야 장고가 작동을 하겠죠 ?

 

홈디렉토리에 가서 config.py를 만들어봅시다 ! 

#홈 디렉토리로 이동

cd ~

#config.py 생성

touch config.py

 

만드셨으면 ! 여기에 secret key를 넣어주면 됩니다 ! 

 

# vi 편집기 열기
vi config.py

# i 입력해서 Insert 모드 열기

# vs코드에서 secret key 복붙하기

그럼 이런 화면이 되겠죠 ?

 

 

이제? esc를 누르고(누르면 insert 모드 해제됨) :wq 를 눌러서 빠져나옵니다 ! 

 

 

이렇게 만든 config.py 는 홈디렉토리에 있기 때문에 원래의 위치로 옮겨 주어야 한다

원래 위치는 ? settings.py 가 있던 곳이다. 

ls와 cd를 이용해서 settings.py 를 찾아주고 ! 그 경로를 그대로 복사하면 되겠죠 ?

#config.py 원하는 위치로 복사해주기

cp config.py 원래있던 경로 입력

cp config.py han_pjt/han_pjt/han_pjt #나의 경우는 이렇게!

 

복사하기 위해서 다시 홈디렉토리도 이동 -> 복사해주기

settings.py 가 있던 곳에 들어가서 확인해보면 ? config.py 가 잘 있는 것을 볼 수 있다.

 

이쯤에서 migrate 한 번 해주고 ~ 

python3 manage.py migrate

 

 

EC2 로 다시 돌아가서 포트를 열어주자 ! 

 

보안 -> 보안그룹 링크 클릭

 

인바운드 규칙 편집

 

규칙 추가 눌러서 설정한 뒤 규칙 저장!

 

 

잘  추가된 걸 볼 수 있습니다 !

 

 

자 그리고? 저희 ip 주소를 장고에 추가해줘야 합니다 ! 

다시 우리 인스턴스로 돌아가서 ! 

ip 주소 복사해주세요! 

 

장고에서 ALLOWED_HOSTS를 설정해주러 갑시다 ! 

다시 vs code 로 ㄱㄱㄱㄱ

#settings.py

ALLOWED_HOSTS = [
    "ip 주소 넣어주세요",
    "127.0.0.1",
    "localhost",
]

 

자 이렇게 넣어주었으면 ! Push 하고 ec2에서 pull 때려주면 된다 !

vs code 에서 push 때리고?
ec2에서 pull 받은 모습

 

 

이제 접속을 해봐야겠죠 ??

python3 manage.py runsersver

 

검색창에 우리 ip 주소 + 8000을 입력해주면 됩니다 !

 

 

쨘 - 배포가 끝났습니다 ~!! 

 

 

 

 

 

휴 - 고생하셨읍니다 .... (수고했다 나자신!)

이제 다음단계로 넘어가야하는데 ! 이쯤에서 체크리스트 다시 들고 옵시다 ~ 

 

- 깃허브 파기

- 가벼운 프로젝트 생성

- 깃에 올리기

- EC2 인스턴스 생성

- 인스턴스 접속 후 깃클론~

- NginX, gunicorn 등 깔기

- 끝?!(아마도...

 

원래 순서대로라면, nginx , gunicorn 을 써야하지만 ? 

나는 비동기 서버를 쓸거기 때문에 gunicorn이 필요가 없다...! 

 

다시 말해 ! 이번 배포 글은 여기까지! 라는 것 ~ 

나는 배포해놓은 이 서버에다가 이거저거 올려서 계속 디벨롭할 생각이다 ! 

사실 뭐... nginx나 비동기 서버도 굳이? 지금 안 붙여도 되니까 ~ 

다음에 그런 글을 다루게 되면 또 돌아오겠다 ! 

그럼 안녕!!