TIL#82 AWS 배포하기

Dasom·2020년 10월 4일
0

project

목록 보기
10/19

AWS EC2 인스턴스 생성하기

EC2(Elastic Compute Cloud)
다양한 OS 버전의 가상환경을 제공하는 아마존 웹서비스

서비스 -> EC2 -> 인스턴스시작
1. EC2에서 시작할 OS 머신을 선택 -> ubuntu 64비트 18.04
2. cpu 메모리 등의 서버의 규모를 선택 -> t2.micro
3. 인스턴스 구성화면 -> 종료방식에는 중지와 종료가 있음/ 중지: EC2 셧다운시 OS 가 정지되어 보존, 재시작하면 같은 상태로 시작이 됨 / 종료 : OS를 정지하는 것과 동시에 EC2 인스턴스가 삭제됨 -> 정지 선택 -> 종료방지기능 체크
❗️ VPC(Virtual Private Cloud): AWS 계정 전용 가상 네트워크
4. 스토리지 추가 클릭
5. 태그 추가 클릭 -> key는 ex.계정네임 value은 ex.프로젝트이름
❗️ EBS(Elastic Block Store):ec2의 마운트에서 사용하는 스토리지 타입
6. 보안 그룹 구성 클릭 -> 규칙 추가 -> 포트범위8000 -> 소스 위치무관설정 -> 검토 및 시작 클릭 -> 시작하기

터미널 열기 -> $chmod 400 pem파일이름.pem -> $ssh -i pem파일이름.pem ubuntu@<공인ip:ec2서버의IPv4의공인ip>
-> EC2인스턴스보기에서 IPv4 퍼블릭 IP
-> yes -> EC2 서버 접속 확인

AWS RDS 생성하기

아마존에서 제공하고 있는 관계형 데이터베이스를 제공하는 서비스

데이터베이스 항목 첫번째의 RDS -> 파라미터(설정값) 그룹 생성 -> 파라미터 그룹 패밀리 mysql5.7 -> 그룹이름 원하는거로 -> 생성 -> 사용할 파라미터를 선택하여 편집 -> character_set 검색하여 나오는 값들을 utf8mb4로 설정 -> 변경사항저장 클릭 후 -> collat 까지 쓴 후 검색 -> connection은 utf8mb4_general_ci -> server는 utf8mb4_unicode_ci -> 변경사항 저장 -> 데이터베이스 생성 클릭 -> 표준생성 -> mysql -> 버전은 기본값 -> 탬플릿은 프리티어(맛보기) -> db인스턴스 식별자(프로젝트라고쓰면됨. 1차때 만든 db에 데이터베이스만 따로 create해서 2차에도 사용.) -> 마스터사용자이름은 root -> 연결에서 퍼블릭엑세스가능은 예 -> 추가기능설정 후 데이터베이스생성 -> 보안그룹규칙의 inbound(원래는 ip를 정해놓는게 안전) -> 인바운드 규칙 편집 -> 위치무관설정 -> 저장 -> 엔드포인트주소 복사 -> 터미널열기 -> $mysql -h 엔드포인트주소(host address)붙여넣기 -u root -p (AWS 상에 있는 데이터베이스)

로컬에서 쓰는 데이터베이스를 넘기는법

로컬에서 $mysqldump -u root -p 넘길데이터베이스이름 > 넘길데이터베이스이름.sql
$mysql -h 엔드포인트주소(host address) -u root -p 접속
$create database 넘길데이터베이스이름 character set utf8mb4 collate utf8mb4_general_ci;
$exit
$mysql -h 엔드포인트주소(host address) -u root -p 넘길데이터베이스이름 < 넘길데이터베이스이름.sql

프로젝트 배포하기

터미널 열기 -> $cd pem파일이름.pem -> $ssh -i pem파일이름.pem ubuntu@<공인ip:ec2서버의IPv4의공인ip> 접속 -> 리눅스 버전 python3.7 64bit 미니콘다 설치 -> source .bashrc (명령라인 제일 앞에 base가 생김) -> 가상환경 생성 및 실행 -> 레파지토리 클론 -> requirement 확인 -> $pip install -r requirement.txt -> requirement 에 있는 모든 설치 파일들이 설치됨 -> settings.pyALLOWED_HOSTS 에 퍼블릭 ip 추가 -> my_settings.py 생성 후 로컬에 있는 my_settings.py 내용 복사 후 추가 -> my_settings.py 수정 : HOST 는 RDS host address 로 수정

django python manage.py runserver 명령어는 단일 쓰레드로 동작하여 개발 및 테스트로는 적당하지만 request가 많을 수 있는 운영환경에서는 사용하기 적합하지 않음. 멀티 쓰레드를 지원하는 웹애플리케이션 서버 프로그램인 구니콘을 설치.
$pip install gunicorn
구니콘 백그라운드 실행(동작)모드
$nohup unicorn —bind=0.0.0.0:8000 프로젝트명.wsgi &
구니콘 실행되었는지 확인 명령어
$ps - ef | grep python
구니콘 종료 명령어
$kill

profile
개발자꿈나무🌲

0개의 댓글