AWS 배포

흑이·2022년 1월 13일
0

블로그 글 추가 및 수정 필요

scale up- 서버의 사양을 늘린다.
scale out - 서버를 늘린다.

장점
-유연성, 사용한만큼 금액을 지불, 확장성, 고가용성

AWS Key Services

  1. EC2 - 몇분안에 구동 가능한 가상 서버
  2. VPC - AWS 네트워크 망안의 사용자 전용의 사설 네트워크 망
  3. S3 - 파일 업로드 및 공유
  4. CloudFront - CDN
  5. Route53 - DNS
  6. RDS (Relational Database Service) - 클라우드에서 데이터베이스 관리
  7. ELB (Elastic Load Balancing) - 서버로 들어오는 트래픽을 골고루 여러개의 머신으로 전달

종료 방식 - 중지, 종료

중지 - EC2 인스턴스 셧다운시 OS가 정지되서 OS이미지가 보존이 되고 재시작 하면 같은상태로 시작이 됨
종료 - OS를 종료가 되고 EC2인스턴스가 삭제가 된다.

실수로 인스턴스가 삭제되는걸 방지하기 위해 (종료 방지 기능 활성화 체크)

태그 추가

키와 값으로 EC2 리소스 태그를 지정해서 비용을 관리하거나 IAM 정책 관리를 제어 할 수 있다.
용도에 따라 제어

키(wegabox) 값(wegabox_project)


RDS

  • 아마존에서 제공하는 관계형 데이터 베이스

RDS 생성전에 파라미터 그룹 설정

AWS에서 제공하는 데이터베이스 종류
파라미터의 기준이 되는 데이터베이스 정보(다양한 버전의 데이터 베이스)

아마존에서 만든 aurora-mysql
Mysql보다 더 성능면에서 좋다?

파라미터 설정하는것 자체가, aws설정되는 데이터베이스의 설정값을 전달하기 위한 행동
파라미터 설정을 통해서 데이터베이스가 참조할 설정값으로 config 설정

문자열을 표현하는 방식을 한글도 지원하도록 설정
다 utf8mb4(이모티콘까지 지원)

Collation_connection는 utf8mb4_general_ci

collation_server는 utf8mb4_unicode_ci

my_settings 파일 작성
EC2 서버에서 RDS로 접속해서 로컬에서 서버를 돌리는것 처럼 똑같이 구현 가능

포스트맨으로 테스트 가능
EC2에서 내프로젝트를 배포 가능

엔드포인트는 호출이 되지만 장고에서 쓰는 manage.py runserver 멸령어는 단일 쓰레드로 동작하여 개발 및 테스트로는 적당하지만
리퀘스트가 많은 운영환경에서는 사용하기 적합하지 않음

멀티 스레드를 지원하는 웹 어플리케이션 서버 프로그램인 gunicorn 을 이용

gunicorn 은 웹어플케이션 서버가 있고 < — > 장고웹 애플리케이션을 돌려주는 방식

ssh가 끊어져도 gunicorn이 돌아가도록 nohup 을 사용

명령어

gunicorn —bind=0.0.0.0:8000 welonmusk.wsgi (welonmusk/wsgi.py 파일)

nohup unicorn —bind=0.0.0.:8000 welonmusk.wsgi &
(welonmusk/wsgi.py 파일을 &(백그라운드)로 동작하는 명령어)

gunicorn --bind 0:8000 config.wsgi:application 명령을 수행했다. 명령을 쪼개서 설명하면 --bind 0:8000은 8000번 포트로

WSGI 서버를 수행한다는 의미이고, config.wsgi:application은 WSGI 서버가 호출하는 WSGI 애플리케이션이 config/

wsgi.py 파일의 application이라는 의미이다.

config.wsgi:application 명령에서 config.wsgi 와 application을 구분하는 구분자는 '.'이 아니라 ':'임을 주의하자.

https://wikidocs.net/76904

0개의 댓글