배포 이론

내승현·2022년 6월 26일
0

배포 ? 세상에 공개

배포란 - backend , database , frontend 도 배포가 되어야한다

내 컴퓨터에서 localhost:3000으로 들어가면 나 이외에는 볼 수가 없다

다른 사람들이 접속해서 html , css , javascript등을 다운로드 받아서 볼 수 있게끔 하는 것이 배포 이다

문제점 : 접속량이 많아지면 메모리가 부족해진다

접속을 보관 , 기록을 해놓기 위해선 저장을 해야하는데 이것의 역할이 메모리

  • 동시접속자가 많아질 수록 메모리가 부족해진다
  • 일 처리의 양 : 메모리
  • 일 처리 속도 : CPU

한 컴퓨터로 일 처리 진행했던 것을 다른 컴퓨터에서도 하게 되면(컴퓨터를 1대 더 사는) 트래픽이 분산이 된다
이렇게 되면 트래픽을 받기 힘들어진다 → 접속자가 100명 , 200명 늘어나는 것이면
괜찮겠지만 훨씬 큰 단위로 늘어나게 되면 이렇게 할 수가 없다

그래서 컴퓨터가 굉장히 많은 회사가 등장하기 시작했다...

그리하여 나타난 것이 AWS , GCP , Azure
: 우리가 그 컴퓨터 빌려줄게 , 그 대신 사용 요금을 내 !

빌려주는 방식은 ? 메모리 설정 , 운영체제 , cpu 등 설정 가능하다
이렇게 해서 터미널을 통해 폴더를 생성하면 실제 내 컴퓨터에 생기는 것이 아닌
저 셋 중 하나의 서비스 컴퓨터에 폴더가 생성이 되는 것이다

이렇다면 shell을 끄더라도 컴퓨터가 꺼지는 것이 아니고 yarn dev 상태가 24시간 실행된다 그래야 사용자들이 접속을 할 수 있다 > 내 컴퓨터를 끈다고 접속이 불가능 하면 안되기 때문이다 이러한 상태를 배포라고 한다.

사용량: AWS > GCP > Azure 이런 서비스들을 Cloud Provider(제공업체)라고 한다

스타트업의 Cloud 사용법: GCP → AWS
처음에 GCP를 사용하는 이유는 가격이 저렴하기 때문이다.
최근에는 이 두개를 같이 사용하는 곳이 늘어난다 : 멀티클라우드
메뉴만 다를 뿐이지 기능은 같기 때문에 멀티 클라우드가 가능하다


컴퓨터 빌리는 곳 : 메뉴 > Compute Engine > vm 인스턴스

목록은 빌린 컴퓨터들 , 초록색은 켜져있는 컴퓨터

목록에 SSH : Secure Shell

명령어를 입력해서 , 목록 , 폴더 등을 생성할 수 있음 이 쉘을 닫는다고 해서 컴퓨터가 꺼지지 않는다 초록색으로 들어있는 컴퓨터를 중지 시켜줘야 비용도 지불되지 않고 꺼진다 - 단점은 접속이 되질 않는 상태인 것

빌릴 컴퓨터를 설정 할 수 있다
국내에서 서비스를 할 경우 서울로 설정 ,물리적으로 가까운 곳으로 설정해놔야한다 - 네트워크 전송 속도가 다르기 때문에

이후 만들기하면 끝


VPC 네트워크 > 방화벽

컴퓨터에서 yarn dev 를 해서 네트워크를 열어주면 사용자들이 html ,css , javascript를 다운받아서 쓸 수 있음 > 일반적으로 컴퓨터에는 방화벽이 있음 포트 별로 존재한다 - 3000 , 5000 등

기본적으로 포트가 방화벽으로 전부 다 막혀있다 : 접속을 허용해주려면 해지를 해야한다(보안목적)
방화벽을 부분적으로 해지가능 (ex: 국가별) , 또 특정ip에 대해서만 막아줄 수도 있다

그 해지하는 부분이 위의 사진 !!

네트워크 서비스 > Cloud DNS :

구입한 도메인의 주소(mysite.com)를 위의 숫자로 바꿔주는 역할

근데 이 컴퓨터를 계속 관리해줘야댐 - 꺼지지 않게


이러한 불편함을 해결할 방법은 ??

이와 같은 정적 파일을 이미지를 저장할 때 쓰이는 스토리지에 올려준다 : 스토리지는 우리가 관리하는 것이 아니라 구글에서 관리하기 때문에 무한으로 트래픽을 받을 수 있게 된다.

이런것을 static 파일을 제공해준다 > Static File Serving

구글이 제공해주는 것이기 때문에 우리랑 상관이 없다 , 하지만 모든 파일이 가능한 것은 아니다

SSR(Server Side Rendering)

브라우저에서 프론트엔드로 보내고 > 백엔드 > 데이터베이스로 데이터를 보내서 이것을 다시 프론트엔드로 보내서 새로 만드는 것이 SSRf

서버사이드 렌더링을 하기 위해서는 yarn dev가 필요함 : 모든 페이지가 서버사이드렌더링은 아니다

여기서 요청을 분산해주는 역할을 하는 애를 두는 것 : Load Balancer 부하 분산기

브라우저에서 DNS 요청을 하면 DNS에서는 ip주소로 바꿔주고 이것을 LB로 보내줘서 SSR이면 프론트로 보내고 아니면 스토리지로 보낸다

결론 : 다 스토리지에 넣는 것이 좋지만 그럴 수 없기 때문에 SSR이 필요한 페이지는 어쩔 수 없이 컴퓨터로 빼는 것

profile
아토언니의 프론트엔드 개발자로서의 기록

0개의 댓글