CodeCamp 37강

최창서·2022년 7월 1일
0

CodeCamp 37일차

→ 슬리드로 보기


‏‏‎ ‎

SSR => HTTPS

지난번에 했던 과정

브라우저에서 DNS 통해서 LB로 연결 => 스토리지(HTLM,JS,CSS)=>LB=>DNS=>브라우저

VM인스턴스(git clone, yarn build:ssr, yarn start)

‏‏‎ ‎

브라우저 => Ip주소 입력 => VM인스턴스(HTML,JS,CSS) => 브라우저

\=>다이렉트로 접속하는것이 아니라 LB와 VM인스턴스를 연결(boards/[SSR])

‏‏‎ ‎

  1. LB와 VM인스턴스 연결하기

인스턴스 그룹에 VM인스턴스가 3대가 있으면 LB가 여러가지 알고리즘에 의해 트래픽을 3대에 나눠서(round-robin,least-connection) 보내게 된다. VM인스턴스를 계속 늘리는 작업(Scale Out)을 자동으로 해주는 작업(Auto-Scaling) 이런 작업을하려면 LB가 필요하다. 하지만 이렇게되면 트래픽이 올라가기 때문에 SSR이 필요없는 작업의 경우 Storage를 이용한다.

인스턴스 그룹 -> 인스턴스 그룹 만들기(network default default)

네트워크 서비스 -> 부하분산 수정->backend 설정(상태확인)

헬스체커(상태확인) => LB에서 VM구역으로 트래픽을 보낼 때 어떤 컴퓨터에서 데이터가 넘어오지 않으면 LB에 알림(포트:3000, 프로토콜:TCP)

네트워크로 https로 들어와도 LB를 거치면서 http로 보낼수있다. 반대로 하는 것도 가능하다

Docker

  1. 개발/배포환경 통일

  2. 프로그램 미리 설치

  3. 가벼운 가상 컴퓨터

4. SSH를 꺼도 유지가 될 수 있게

Windows , Mac-OS , 신입사원 Linux => 신입사원 Node16 설치, Mysql8 설치...

신입사원 : 버전까지 맞춰서 설치했는데 왜 안돼? 운영체제에 따라 달라지는 환경때문에

이후에 해결방법으로 각자 운영체제 안에 가상머신을 설치하여 Linux 운영체제 설치

\=> 컴퓨터 안에 컴퓨터가 또 있으니까 너무 느림

그래서 나온 해결방법이 Docker => Dockerfile을 만들어 필요한 명령어들 실행

\=> 부팅 등 운영체제의 핵심 기능(커널)을 공유하는 가상머신

\=> OS 전체를 새로 설치하지 않아도되서 가벼워짐

\=> Window는 Linux랑 너무 다름 WSL(window subsystem for Linux)을 설치해줘야함

주의사항

‏‏‎ ‎

RUN mkdir class_build 굳이 따로 만들 필요 없음

CMD는 한번밖에 못 씀 RUN은 원하는대로 마음껏 사용

설치까지 다 된 파일을 만들어놓음 실행중인 명령어(yarn start)는 RUN에 들어갈 수 없음

CMD는 압축된 파일을 실행시키는 용도

‏‏‎ ‎

Npm Git Docker를 설치하면 각각 라이브러리 git docker를 올릴 수 있음 docker도 npm이나 git 처럼 pull push가능

‏‏‎ ‎

VM 인스턴스에 Docker로 바꿔치 기

VM 인스턴스 Linux에 Docker 설치하기(그럼에도 내 컴퓨터에 Docker를 설치한 이유는 테스트를 하기 위해서)

LB에서 분기시켜주기

‏‏‎ ‎

SSH 에서도 docker 설치

설치 후 sudo docker-compose up

이렇게해도 SSH를 끄면 접속할 수 없음 그래서 백그라운 환경에서 실행시켜야하는데

sudo docker-compose up -d 해줘야한다.

백그라운드에서 실행되는지 확인하는 방법은 sudo docker ps 로 확인가능

‏‏‎ ‎

yarn build를 할때마다 html css js 파일을 만드는데 build마다 id가 생성되고 id값을 storage와 vm이 동일해야함

\=> next.config.js 가서 하기 generateBuildId()=>"aaaaaa"

\=> static build(build:ssg) 할때는 next.config.js 가서 exportPathMap: () => ({"/": { page:"/" },"/boards": { page:"/boards" },"/404": { page:"/404" }, }),

‏‏‎ ‎

분기처리하기(ssg,ssr)

부하분산 => 호스트 및 경로규칙 => 백엔드 구성에 백엔드 버킷 추가 후 아래 이미지

/boards/ 이것도 설정을 안해주면 ssr로 감

/boards/index.html 주소를 치면 자동으로 뒤에 index.html이 붙는데 이것도 ssr로 감

‏‏‎ ‎

profile
프론트엔드 개발자

0개의 댓글