될때까지

((TURTLE HOME)) 프로젝트 배포해보기 본문

프로젝트/wecode1차 : TURTLE-HOME

((TURTLE HOME)) 프로젝트 배포해보기

랖니 2022. 7. 31. 16:24
728x90

1. AWS 계정 생성하기

2. Application 배포

  EC2 서버 생성하기(가상 서버)

  • 지역은 서울 선택
  • ubuntu 18.04 64bit 선택
  • t2.micro 선택
  • 보안그룹 설정
  • 키 페어 생성 및 다운로드
  • 인스턴스 시작
  • .pem파일 권한 변경하기
    • .pem파일 있는 폴더로 이동하기
    • ls 명령어 후 .pem파일 여부 확인하기
    • chmod 400 [pem파일이름.pem]
    • ssh -i [pem파일이름.pem] ubuntu@공인ip(ec2 서버의 IP4 퍼블릭IP)  

 

  RDS 생성하기(데이터베이스)

    파라미터 그룹 설정

  • 데이터 베이스 생성하기 전 파라미터 그룹 설정
  • 파라미터 그룹 패밀리 : mysql5.7
  • 파라미터 그룹 편집
  • : character_set 검색 후  utf8mb4 사용
  • : collat 검색 후 collation_connectionutf8mb4_general_ci 선택
  • : collat 검색 후 collation_serverutf8mb4_unicode_ci선택
  • 변경 사항 저장

 

    데이터 베이스 생성

  • 엔진 옵션 MySQL 5.7.26 선택
  • 프리 티어
  • DB 인스턴스 식별자 : first-db or wecode-db
  • 마스터 사용자 이름 root로 변경
  • 스토리지 자동 조정 활성화 체크 해제
  • 퍼블릭 액세스 가능 예 선택
  • VPC 보안 그룹 새로 생성 및 이름 작성, 가용 영역 2a
  • DB 파라미터 그룹 위에서 생성한 파라미터 그룹 선택
  • 자동 백업 비활성화
  • 생성하면 엔드포인트가 보임

 

    덤프뜨기

  • 덤프 뜨기 : mysqldump -u root -p [DB이름] > [파일이름.sql]
  • mysql -h [호스트주소] -u root -p
  • aws 데이터베이스 비밀번호 입력
  • 데이터베이스 생성하기 - DB가 있어야만 밀어넣기 가능
    • create database [DB이름] character set utf8mb4 collate utf8mb4_general_ci;
    • exit
  • 덤프 밀어넣기 : mysql -h [호스트주소] -u root -p [DB이름] < [파일이름.sql]

 

  EC2  + RDS 연동 gunicorn 배포

  • pem파일이 있는 폴더로 이동
  • pem파일 이용해서 SSH로 EC2에 접속 : ssh -i [pem파일이름.pem] ubuntu@공인ip
  • 미니콘다 우분투용 설치(설치 주소 복사)
    • wget [복사한 주소]
    • ls 명령어로 설치 내역 확인하기 (예 : Miniconda3-latest-Linux-x86_64.sh)
  • chmod +x [Miniconda3-latest-Linux-x86_64.sh]
  • ./[Miniconda3-latest-Linux-x86_64.sh
  • 미니콘다 설치
  • 모두 yes
  • source .bashrc 입력하면 명령라인 앞에 (base) 생성

 

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install gcc
  • sudo apt-get install libmysqlclient-dev

 

  • conda create -n [가상환경이름] python=버전이름
  • conda activate [가상환경이름]
  • git clone [레포지토리 주소]
  • pip install -r requirements.txt 로 모두 설치하기
  • pip freeze 로 패키지 설치 내역 확인하기
  • vi my_settings.py 작성하기
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB이름',
        'USER': 'root',
        'PASSWORD': 'DB 비밀번호',
        'HOST': '[SSH주소]',
        'PORT': '3306',
    }
}

SECRET = {
    'secret': '시크릿키',
}
  • settings.py의 ALLOWED_HOSTS에 ['*', 'IP주소', 'IP주소:8000'] 추가
  • python manage.py runserver 0:8000 후 포스트맨으로 확인하기

 

  구니콘 설치하기

  • pip install gunicorn
  • nohup gunicorn --bind=0.0.0.0:8000 [프로젝트명].wsgi &
  • ps ef | grep python으로 PID가 몇인지 확인할 수 있음
  • 포스트맨으로 확인 후 kill [PID번호] 구니콘 꼭 종료하기
  • nohup gunicorn --bind=0.0.0.0:8000 [프로젝트명].wsgi 입력해서 구니콘 정상종료 확인 가능
728x90