AI Chatbot 만들다!

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (2) - 인스턴스 생성과 도메인 연결/ 코드 옮기기

wy-family 2024. 11. 13. 01:23

도메인을 구입할 것이다. 

회사를 다니면서 진행중인 프로젝트가 아니라 개인적으로 하고 있는 거니까 추가로 개인 돈이 조금(?) 발생한다. 엄청 무리되는 금액은 아닌데, 소비를 많이 하지 않는 성향을 가진 나에게는 쓰라린(?) 금액이다. 아픈 건 아니고, 쓰라린...ㅋㅋㅋㅋ

아무튼, 도메인 구입을 할 것이다. 그런데, 내가 생각하기에 구입이라는 단어는, 완전히 나의 소유가 되는 것이라는 의미를 가지게 되는데, 완전 소유는 아니고 도메인을 1년간(또는 년단위의 원하는 기간)만 내 소유로 인정을 받는 구조다.

아무튼, 가보자.

 

나는 도메인 주소를 뭔가 특별한 걸 찾는게 절대 아니다.

그래서 도메인 주소는, aichatbot-wyfamily 이런 느낌으로, 누가봐도 내가 만든 프로젝트성 페이지라는 걸 알 수 있게 하려고 한다.ㅋㅋㅋㅋㅋ ai chatbot, wy-family가 만든~ 이라는 뜻으로다가!

AWS console 에서 route 53 으로 간다.

나는 딱 1년간만 이용하는 걸로 결제하려고 한다. 14달러.....

 

등록 완료!

궁금해서 한 번 들어가봤는데 아무것도 없다.


AWS RDS 에서 DB 를 준비했고, AWS Route 53 에서 도메인을 준비했다.

PostgreSQL (RDS - AWS에서 제공하는 DB 서비스)                                            ----1
|
Django - Python - Gunicorn - Nginx (Lightsail Ubuntu (우분투 리눅스))               ----2
|
도메인 (Route 53 - AWS에서 제공하는 도메인 관련 서비스)                                ----3
|
웹브라우저 - 사용자

 

1번과 3번을 했으니, 이제 2번을 하면 된다. 1번과 3번이 2번을 하기 위한 재료 준비랄까.

이제, Django project code 를 실제 서비스로 배포를 하는 과정을 겪어야 한다.

 

지금까지의 내용들이, 각각의 Documentation을 확인해서 여기까지 올 수 있는 과정이라면 이제부터는 GPT의 도움을 받는다.

 

I need a step-by-step guide to deploy my locally written Django project code as a real service. I'll be using the following stack.
1. AWS Lightsail, clean Ubuntu Instance
2. Gunicorn
3. Nginx
4. Code cloned from Github

이렇게 GPT에게 질문을 한다.

 

차근 차근 알려줬지만 세부적인 걸 이해하는게 아니라 알려준대로 한 번 스스로 해보는 것이 중요하다는 생각이 든다.

가보자!


  1. AWS Lightsail 인스턴스 설정
  2. 서버 업데이트 및 필수 패키지 설치
  3. Django 프로젝트 코드 클론
  4. Python 가상환경 설정 및 의존성 설치
  5. Django 프로젝트 설정
  6. Gunicorn 설정
  7. Systemd 서비스 파일 생성
  8. Nginx 설정
  9. 방화벽 설정
  10. Django 정적 파일 수집

이제 서버에서 브라우저로 Lightsail IP 주소 또는 도메인에 접속하여 Django 앱이 잘 동작하는지 확인합니다.

 

라고 GPT가 알려주었다. 상세한 건, 굳이 여기에 쓰지 않았다. 차근 차근 따라가보겠다.


일단 AWS 에서 리눅스 우분투 서버 (인스턴스) 를 생성했고,

아까 결제했던 도메인을 리눅스 우분투 서버와 연결하는 것까지 했다.

 

그 다음에, SSH 를 이용해서 서버 업데이트 및 필수 패키지 설치를 하라고 했다.

서버 업데이트랑 필수 패키지 설치하는 것도, 그냥 단순히 알려준 코드를 복사 붙여넣기 하면 되는건 아니다.

GPT랑 소통하면서 아무튼, 업데이트랑 설치를 완료했다.

새로고침 하는 것도 GPT가 알려줘서 새로고침을 했지만, 그래도 reboot 버튼을 눌러서 껐다키는 과정을 한 번 해보자.

어쨌든 원격으로 나의 클라우드 컴퓨터를 작동시키는 거니까.


그 다음으로 해야 하는 건, Django 프로젝트 코드 클론.

git clone <your-github-repository-url>
cd <your-project-directory>

나의 github 레퍼지토리 url과 프로젝트 디렉토리를 입력해야 한다.

 

역시가 역시인가.

GPT가 알려준 방법대로 해도 깃헙에 연결이 안 되고 있다.

해결책을 찾아서, 코드 클론을 해야 한다.

아이디 비밀번호로 깃헙에 접속하는건 더이상 안 된다고 한다.

후후,,,

SSH key를 이용해서 연결을 해야 한다고 한다.

꽤 복잡해보이지만, GPT의 도움과 github official documentation을 활용해서 찾아내보면 어떻게든 해결가능하다.

 

우선, github 에서 SSH key를 생성한다.

그 전에 ubuntu에서 public key를 생성해서 그걸 가지고 와야 github에서 key가 만들어진다는 점.

public key, private key를 통한 보안은 이해가 안 되면 검색해서 다시 이해하고 오자. (나 스스로에게 하는 말)

SSH key 생성 완성

이거 ssh key 하나 만드는데에도 생각보다 꽤 오래 걸린다. 여기 글을 쓰고 있는 시점에서,

글을 보는 사람에게는 이 과정이 그냥 몇 줄로 지나가는것 같지만, 막상 본인이 해보면 그렇지 않을 것이다

 

잠깐 정리를 해보자면,

내가 지금 쓰고 있는 컴퓨터 (Local)로 Ubuntu AWS 에 원격으로 접속한다.

그리고 AWS에서 Github 서버에 접속하려고 한다.


<<코드 서버(github)에서 서비스 서버(aws)로 코드를 다운 받는 과정>>

[Local 컴퓨터]

-->

Web Browser 기반 SSH (lightsail에서 connect using ssh를 눌러서 서버/Ubuntu AWS에 접속한 것)

-->

[AWS 컴퓨터 / 서버]

-->

SSH(public key, private key 방금까지 한 것들)

-->

[Github 서버]


이런 구조로 서버에 접속하고 있는 것.

그러니까

Local 과 AWS 서버 간에도 SSH, AWS와 Github 간에도 SSH.


전에 <<코드를 써서 코드 서버에 올리는 과정>>으로는

[Local 컴퓨터]

-->

Visual Studio Code github plugin

-->

[Github 서버]

 

이렇게 정리를 해볼 수가 있다.


그러니까, 결국은 저기 AWS - Github 사이의 SSH key 과정이 조금 시간이 걸릴 수 있다는 것.

자, 이제 Django code clone을 하러 가보자.


이렇게 복사해오고 싶은 레퍼지토리에서 url 코드를 복사하는 방법은 저렇게.

복사가 되었다는 걸 확인할 수 있다, 휴우,,,, 코드 옮기기 성공!!!