SSG

OwlSuri·2022년 5월 3일
0

SSG

스토리지에 정적파일 배포
LB(로드밸런서)도 ip주소 있음
브라우저에서 사이트주소 입력하면 DNS에서 LB의 ip로 보냄
LB에서 분기시켜줌

  1. storage에 html, css, js 업로드
    배포를 위한 폴더 설치(build)

    npx create-next-app

    혹시 .git 폴더가 있으면 삭제
    버전 맞추기

    package.json 수정

    yarn build:ssg

    getServerSideProps가 있는 페이지가 있으면 '정적파일을 만들 수 없습니다'라는 오류 생김
    index.js에 Image라는 컴포넌트 문제됨(img태그와 무관, lazy로딩과 관련). 주석처리


    .next와 out 폴더 만들어짐
    out폴더를 스토리지에 업로드

    폴더를 맞추기위해
    next.config.js 폴더에서

    trailingSlash: true 추가
    다시

    yarn build:ssg

    	페이지의 구조와 동일한 구조로 변경됨

    out 폴더
    gcs cloud storage-브라우저-버킷(폴더)만들기
    이름 정하고
    멀티리전-가까운 곳(아시아 선택)
    다음다음
    폴더 드래그해서 업로드

    비공개로 되어있으면 엑세스 수정
    allUsers
    클라우드 스토리지-저장소개체 뷰어

    웹사이트 구성 수정

  • 명령어로 복사하는 방법

    클릭하면 터미널 뜸
    vscode에서 git add . commit push 한다음
    gcp 터미널에서 git clone 한다음 폴다 찾아들어가서
gsutil cp -r ./out/* gs://폴더명

승인

yarn start는 아직 안함... LB로 이동

yarn start

yarn dev는 refresh가 됐지만,
yarn start는 refresh가 안됨(배포됐기 때문)
최적화 과정(build)을 거쳐야 yarn start할 수 있음

  1. LB
    왼쪽 네이게이션바 추가-네트워크서비스-부하분산(LoadBalancer)
  • rount-robin : 돌면서 한번씩
  • least-connection : 가장 접속량이 적은 곳에 줌

컴퓨터 한대한대는 인스턴스, 인스턴스 여러대는 인스턴스 그룹
인스턴스 자동으로 확장되는 것 - AutoScaling

https로통신하려면 인증서 필요 -유/무료, 인증서하는것이 복잡 but gcp는 구글에서 무료인증서 쉽게 LB에 설치해줌(aws도 같음)

http 구성시작
서버리스는 서버를 24시간 띄워놓는 것이 아니라 api를 함수로 만들어서 실행 -> 브라우저에서 요청하면 - 컴퓨터 켜져서 함수실행한 후 컴퓨터 꺼짐(처음요청시 느림)

이름쓰고 백엔드(로드밸런서 뒤쪽) 구성-백엔드베킷만들기
클라우드 스토리지 버킷 - 아까 만든 것

  • CDN(Contents Delivery Network) 체크안함

  • TTL(Time To Leave)

80번포트는 http의 기본(default) 포트(생략가능)
https의 기본포트는 443

만들기

ip주소 입력하면 접속된다!

ip주소를 외우고 다닐 수 없으니 dns..

  1. DNS
    1) 권한이전 : 도메인 설정 권한이 가비아에 있음 -> 구글로 옮겨줘야함
    cloud DNS

SOA - Start Of Authority
NS - Name Server record(권한이전할때 사용됨)

dns이름은 가비아에서 구매한 dns이름으로!

가비에서 로그인하고, dns 통합관리-네임서버 다 지우고
gcp에 있는 네임서버 복붙

(맨뒤에 . 빼고)
소유자인증 - 적용

2) 도메인 확인
git bash나 터미널 쉘

dig 도메인주소 NS

시간이 좀 걸린다.....

레코드 세트 만들기

짠!

profile
기억이 안되면, 기록을 -

0개의 댓글