Django Project (+ Mysql) 배포하기 - AWS(EC2 , RDS) + uWSGI + Ngnix 사용-1
배포 진행에 앞선 설명
AWS의 EC2 , RDS
EC2 인스턴스와 RDS 인스턴스는 아마존의 VPC(Virtual Private Cloud) 서비스 내에서 가상의 컴퓨터를 임대 받는 것입니다.
EC2 인스턴스란 ?
Elastic Compute Cloud(Amazon EC2) 의 약자입니다.
아마존의 클라우드 컴퓨팅 플랫폼으로 쉽게 생각해서 사용자가 가상의 컴퓨터를 임대받는 것 입니다. 사용자는 원하는 OS를 선택하고 웹서비스에 필요한 프로그램을 설치하면 됩니다.
AWS(아마존 웹서비스)의 EC2에서는 인터넷을 통해서 이 컴퓨터에서 접속 할 수 있는 URL(Public DNS)을 제공하는데, 이 URL을 통해서 웹서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수도 있습니다.
RDS 인스턴스란 ?
아마존이 서비스하는 관계형 데이터베이스 서비스 입니다. 어플리케이션 내에서 관계형 데이터베이스 설정, 운영, 스케일링을 단순하게 하도록 설계된 클라우드 내에서 동작하는 DB웹서비스 입니다.
이제부터 지금까지 로컬환경에서 만든 django 프로젝트를 AWS의 인스턴스를 생성해서 프로그램들을 깔고 , 깃을 통해 코드를 올릴것입니다! 그리고 RDS 인스턴스를 통해 데이터베이스를 생성해서 서비스를 배포 할 예정입니다.
여기까지 진행하시게되면 개발서버를 성공적으로 올리게됩니다.
참고 : EC2 내부에 우분투(Linux) OS를 선택할 예정입니다.
1️⃣. AWS 회원가입 및 로그인
-
해외 결제가 필요하기때문에 Visa카드 또는 Master 카드가 필요합니다.
-
처음 가입시 테스트 결제로 1달러 결제됩니다 . ㅠㅠ
2주후 자동취소 되어 환불되니 걱정말고 해주세요!
-
https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2 접속
!! 진행할 동안 AWS 오른쪽 상단바에 오하이오가 디폴트로 되어 있는데, 서울로 바꿔주세요 !!
서비스 찾기에서 EC2를 검색해 EC2 대시보드로 들어갑니다.
2️⃣. EC2 인스턴스 생성
- 인스턴스 시작 버튼을 눌러 생성페이지로 이동합니다.
- EC2 운영체제 선택하는 화면인데, Ubuntu를 선택하여 진행하겠습니다.
-
인스턴스 유형은 프리티어를 지원하는 t2.micro를 선택,
인스턴스 세부 내부 구성을 클릭합니다.
- 이 단계에선 디폴트값을 그대로 사용, 스토리지 추가를 클릭합니다.
- 크기 기본값이 8GB 로 되어있을텐데, 30GB까지 프리티어로 사용이 가능하므로 30으로 바꿔줍니다. 태그추가 버튼을 클릭합니다.
-
태그는 인스턴스에 할당하는 키 값 입니다. 여러 인스턴스들이 있을 경우 태그별로 검색하거나 그룹짓기 편하기 때문에 본인 서비스의 인스턴스를 나타낼 수 있는 값으로 등록합니다.
**보안 그룹 구성**을 클릭합니다.
- SSH 22번 포트는 AWS EC2 터미널로 접속할때를 의미합니다.소스 > 내 IP를 선택합니다. → 지정된 IP 이외 접근을 차단하기 때문에 0.0.0.0 으로 전체 오픈하셔도 되지만..! 보안상 위험할 수 있습니다. 😅😅 여러분 편하신대로 하시면 될거같아요!!
HTTPS와 HTTP는 외부에서 이 사이트에 접근할 유형입니다. 80, 443 포트를 열어둡니다. (이걸 닫으면 외부에서 접근을 못합니다.)
검토 및 시작을 누릅니다.
-
시작 버튼을 클릭하면 키페어 생성 페이지가 뜹니다.
⭐이 키페어를 갖고있어야만 해당 인스턴스에 접근이 가능합니다! 그리고 다시 다운이 불가능하므로 잘 보관하셔야 합니다! ⭐ 키페어 다운로드를 클릭하고 인스턴스 시작을 클릭합니다.
- 아래와 같이 인스턴스 ID를 클릭하시면 생성한 인스턴스 페이지로 이동하게 됩니다.
- 이렇게 running 상태가 뜨면 인스턴스가 성공적으로 생성 되고 실행중인 것 입니다!