📘서버

서버 ip받아서 배포 방법

기존 서버 ip

기존 서버 ip를 통해 서버를 배포 하는 방법이다.

  1. 서버 os 가 뭔지 조사한다.
  2. 서버 주소 ip를 받으면 ssh로 연결해서 해당 컴퓨터 터미널에 원격으로 접근
  3. 자기가 짠 파일을 접근한 컴퓨터에서 돌린다.

ssh로 연결하고 나면 aws의 ec2랑 똑같다고 보면 된다

자기가 짠 파일을 접근한 컴퓨터로 옮기는 방법이다.

  1. usb들고 컴찾아가서 옮기기
  2. git 깐다음에 git clone 뜨기
  3. sftp로 옮기기(파일 질라 쓰면된다.)

EC2

백엔드에서는 기존의 장고 프로젝트에서 runserver를 했을때는 단일스레드로 작동했었다. 하지만 실제로 배포될 프로젝트에서 단일스레드로는 모자람이 많기 때문에 Gunicorn을 이용해서 스레드를 늘리고, nginx를 이용해서 느린 파이썬 코드->빠른c코드로 변환하며 솔도를 늘린다

Docker

하지만 이 상태로도 문제가 있다. 수많은 사용자의 요청을 하나의 EC2서버에서 받아들이고 있기 때문이다. 서버를 늘린다는 것은 기존의 EC2서버와 똑같은 환경을 가진 서버를 하나 더 늘린다는 것인데, 저 서버 자체를 복사할 때 유용한 도구가 바로 docker이다. docker는 서버를 이미지로 관리하면서 여러개의 EC2환경을 쉽게 구축할 수 있도록 해준다 새로운 EC2 컴퓨터가 생겼을 때 docker 이미지만 받으면 똑같은 환경의 서버가 하나 탄생하는 것이다.

Load balancer

이렇게 새로운 EC2서버를 만들었다. 하지만 문제가 생겼다. 기존의 EC2서버와 새로운 EC2서버는 ip주소가 다르다 프론트에서 각각 다른 ip주소로 요청을 보낼수 없다. 이를 해결하기 위해 load balancer가 필요하다 요청이 들어오면 요청을 잘 분배해서 각각의 EC2서버에 도달하도록 해준다 AWS에서는 로드밸런서를 ELB라고 한다.

RDS와 R3

각각의 EC2서버가 media 폴도와 db를 갖고 있다. 그러면 어떤 유저 정보는 A EC2서버에는 있는데 B EC2서버에는 존재하지 않는 불상사가 발생할 수 있따. 따라서 db나 미디어 폴더 같은 친구들은 각각 RDS와 S3에 따로 저장해주어야 한다.

태그:

카테고리:

업데이트: