AWS

정현석·2020년 12월 12일
1

AWS

  • 아마존 웹 서비스의 약자로 아마존닷컴에서 개발한 클라우드 컴퓨팅 플랫폼입니다.

    EC2 : 다양한 종류의 가상서버를 만들어주는 서비스

리전: 2개이상의 가용영역으로 구성

EC2 인스턴스 구성

인스턴스 시작 클릭
1. EC2에서 사용할 OS버전 선택 > Ubuntu Server 18.04

  1. CPU 메모리 등 서버의 규모를 선택 (프리티어 t2.micro선택)

    다른 사이즈로 선택할 시 과금 우려

  2. 인스턴스 구성화면 서브넷

    Virual Private Cloud (VPC) : AWS계정 전용 가상 네트워크,
    인터넷에 연결되어야 하는 리소스는 퍼블릭 서브넷, 인터넷에 연결되지 않는 리소스에는 프라이빗 서브넷을 사용
    ip주소를 기반으로 한 논리적인 네트워크 공간 구성, 방화벽 설정 가능, 서브넷에 배치

    종료방지 기능 (우발적인 종료로 부터 보호 체크)

  3. 스토리지 추가
    용량을 기본 8기가 보다 더 증가하면 추가 과금

  4. 태크 추가
    키와 값 형태로 태그를 정의
    용도에 따라 여러 태그를 지정 가능
    (키 : 계정 네임, 값 : 프로젝트 네임 으로 지정)

  5. 보안그룹 구성
    기본적으로는 모든 ip로 부터 ssh 접속을 허용
    규칙 추가 : 포트범위 8000 소스 위치무관

  6. 검토 및 시작
    새 키페어 생성 (키페어 이름 설정, 키페어 저장하여 관리)
    키페어 권한 설정 : aws폴더에 가서 키페어 파일 권한 설정
    $ chmod 400 키페어이름.pem
    ssh 접속
    $ ssh -i 키페어이름.pem ubuntu@공인 아이피(Ec2서버의 공인 IP)

AWS_RDS

  1. 데이터 베이스 항목 클릭 데쉬보드

  2. 파라미터 그룹 클릭 생성
    (설정값 변수값 설정)
    파라미터 그룹 패밀리 (데이터베이스 종류에 따른 파라미터의 기준이 되는 데이터베이스의 정보를 선택)
    Mysql5.7 선택
    그룹이름 : 생성할 RDS이름

  3. 파라미터 그룹에서 파라미터 그룹 편집 클릭
    AWS에 전달하는 설정값

검색 : character_set
character_set에 관련된 값 utf8mb4 설정 (utf8을 개량하여 만든 이모티콘까지 저장 가능한 모듈)
character_set_client
character_set_connection
character_set_database
character_set_fillesystem
character_set_results
character_set_server

검색: collation
collation_connection: utf8mb4_general_ci 설정
collation_sercer : utf8mb4_unicode_ci 설정 저장

  1. RDS 데이터베이스 생성
    표준생성 > MySql > 버전 선택 > 탬플릿(프리티어) > 설정 DB인스턴스 식별자(프로젝트에 맞는)> 마스터 사용자이름(root) > 마스터 암호 > DB 인스턴스 크기(프리티어 자동설정) > 스토리지 (범용, 20GB)

연결 > 추가연결 구성
퍼플릭 엑세스 가능 (데이터베이스를 외부에서 접속 허용)

보안그룹 설정 이름 설정, 가용영역(ap-northeast-2a, 포트 3306)

추가구성 : 초기데이터베이스 이름 지정 (생성시 같이 생성)
DB파라미터 그룹 : 내가 설정한 파라미터 그룹으로 설정하여 생성
삭제방지 활성화

데이터베이스 생성!

데이터베이스

생성된 데이터베이스 클릭 (엔드포인트) 확인
보안 그룹 규칙 클릭 (인바운드) > 인바운드 규칙 편집 > 소스(위치무관)변경 규칙 저장

AWS데이터 베이스 실행

터미널 실행 후
$ mysql 실행확인
$ mysql -h AWS-RDS엔드포인트 -u root -p
비밀번호 입력 후 접속

로컬 데이터 덤프

로컬 mysql 접속 후 데이터 베이스 확인 후 다시 나가기!!!
$ mysqldump -u root -p 데이터베이스명 > 파일이름.sql
비밀번호 입력 후 파일 생성

AWS로 데이터 전송하기

AWS 데이터베이스 실행 후 데이터베이스 만들기
$ create datebase 이름 charater set utf8mb4 collate utf8mb4_general_ci;
서버 접속 해제 후
$ mysql -h AWS-RDS엔드포인트 -u root -p 데이터베이스명 < 파일이름.sql
실행시 비밀번호 입력 후 데이터 파일 AWS-RDS로 업로드

EC2 RDS 프로젝트 배포

  1. ssh EC2 서버 접속
  2. 터미널 실행 후 pem파일 위치로 이동
  3. $ ssh -i pem파일이름.pem ubuntu@퍼블릭 IPv4 주소 > 실행
  4. 환경설정 ubuntu로 설치 하여야함.
  5. 미니콘다 설치(ubuntu형으로 설치)
    $ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

실행권한 설정
$ chmod +x Miniconda3-latest-Linux-x86_64.sh

미니콘다 실행 설치
$ ./Miniconda3-latest-Linux-x86_64.sh
모두 yes

설치 후 로컬환경과 동일한 설정(base 생김)
$source .bashrc

패키지 업데이트, 업그레이드
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install gcc

Mysql client 설치
$ sudo apt-get install libmysqlclient-dev

미니콘다 가상환경 설정
$ conda create-n 이름 python=3.7
$ conda activate 이름

레파지토리 클론
$ git clone 깃헙주소

requirements.txt 확인 후 설치
$ pip install -r requirements.txt

pip 설치 확인
$ pip freeze

settings.py에 EC2 서버의 퍼블릭 IP설정

  • sttings.py 수정

    EC2퍼플릭 ip로 수정

내프로젝트에 my_settings.py 만들기
로컬 내프로젝트의 my_settings.py 복사

서버 동작
$ python manage.py runserver 0:8000

구니콘 설치
$ pip install gunicorn

백그라운드에서 실행
$ nohup gunicorn --bind=0.0.0.0:8000 어플이름.wsgi &
실행확인
$ ps -ef | grep python
(실행시 처음보이는 숫자4개 pid)

서버 종료
$ kill (pid)

profile
기록하는 벨로그

0개의 댓글