오전 회의 내용
- 등산로
- 웃긴게 사용자가 좌표 정보를 알아야돼요
- 시간 더 필요함
- 예약 시스템
- 링크 연결로 진행
- 대피소 위치를 표기할수 있는 API 명확하게 할 것
- API
- 회원가입/로그인
- 중복확인 (이메일, 닉네임) API
- 인증번호 받기 API
- 성별 라디오 버튼
- 프로필 이미지는 선택사항
- 회원가입하면 기본 포인트 1000 point
- 비밀번호 검증 로직은 프론트에서 해줌
- 크루보드
- fetchCrewBoards에 Page 추가해서 9개씩 묶기
- 날짜 지나면 조회 안되게 로직 추가
- 성별 라디오 식 → DB 숫자로 바꾸자
- 성별이 남자만이면 여자가 신청 못하게 막아야함
- 성별로 조회 필터 일단은 만들어 놓자 (안쓸수도 있음)
- 약속시간 데이터 나눠서 저장하자(날짜, 시간) - 스트링 타입
- 입력값은 모두 필수값
- 글작성 시 500원, 참여 시 200원 (돈있는지 체크 로직)
오늘 할 일
- ERD 및 Docs 수정 할 것 있으면 하기
- 개발 서버 배포 이어서 작업
인스턴스 하나에 dev서버, prod서버 다 하려다가 ssl에서 충돌이 나버렸다...
해결 방법을 잘 모르겠어서 dev서버를 다시 만들어서 정보들을 옮기기로 결정했다
VPC(Virtual Private Cloud)
: 일종의 가상 네트워크 센터
IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경VPC Peering(VPC 피어링)
: 서로 다른 VPC간 통신이 가능하도록 연결하는 것을 의미=> 공개IP를 통해 배포해서 누구나 DB에 접속이 가능하기때문에 VPC 내부에 백엔드 서버를 배포
SQL - 개요 - 수정 - 연결 - 공개IP만 체크 되어있는걸 비공개IP도 체크(개발서버이기때문에 굳이 공개IP 체크를 풀지 않음) - 네트워크 - default - 연결설정 - API 사용 설정 - 자동으로 할당된 IP 범위 사용 - 계속 - 연결 만들기 - 저장
비공개 IP로 로컬 환경에서 접속하려하면 접속이 안된다
why? 외부로부터의 접속은 차단되었기때문에
=> SSH 에서만 접속 가능 (같은 VPC 내에서는 접속 가능)
SOA
레코드 : Start Of Authority의 약자로 DNS 영역을 만들때 기본적으로 등록되는 레코드로써, 관리 권한이 시작되는 곳으로 도메인의 시작점NS
레코드 : NameServer의 약자로 도메인의 네임서버를 지정하는 레코드
터미널 - dig 본인도메인주소 NS
명령어 - 네임서버 변경되었는지 확인
A 레코드 유형
선택 - IPv4주소에 복사해 온 값 붙여넣기 - 만들기터미널 - dig 본인도메인주소 A
명령어 - A레코드 반영되었는지 확인
http://본인도메인주소:3000/graphql
접속되면 성공
Compute Engine - 인스턴스 그룹 - 인스턴스 그룹 만들기 - 비관리형 인스턴스 그룹(New unmanaged instance group) 선택 - 이름 작성, 리전: 서울, 네트워크: default, VM인스턴스: 만들어둔 인스턴스 - 만들기
네트워크 서비스 - 부하분산 - 부하분산기 만들기 - HTTP(S) 부하분산 구성 시작 - 기본값 - 계속 - 이름 작성 - 프론트엔드 구성 - 이름 작성, 프로토콜: HTTP, IP 버전: IPv4, IP 주소: 임시, 포트: 80(HTTP의 기본 포트는 80이다) - 완료
백엔드 구성 - 백엔드 서비스 및 백엔드 버킷 - 백엔드 서비스 만들기 - 이름 작성, 인스턴스 그룹: 위에서 만든 인스턴스 그룹, 포트번호: 3000, Cloud Cdn 사용설정 체크 해제 - 상태확인 - 상태확인(Health checker) 생성 - 이름 작성, 프로토콜: TCP, 포트: 3000 - 저장 - 상태확인에 지금 만든 헬스체커 선택 - 만들기
Health checker : 로드밸런서가 백엔드 서버 컴퓨터로 부하분산을 할 때,
서버가 죽어있는 컴퓨터로 트래픽을 분산시키면 안되기에
비정상적인 인스턴스를 감지하고 정상적인 인스턴스에만 요청을 보낼수 있도록 확인하는 역할
네트워크 서비스 - 부하분산 - 로드밸런서로 들어가서 HTTP IP 주소
복사 - 네트워크 서비스 - Cloud DNS - A 레코드 IPv4 주소에 붙여넣기 - 저장
터미널에서 dig 도메인주소
명령어로 레코드 확인
http://도메인주소:3000/graphql
접속 - 연결 안됨
why? 로드밸런서가 받고있는 IP 포트가 3000번이 아니라 80번이기 때문에
http://도메인주소:80/graphql
로 접속하면 접속 가능
네트워크 서비스 - 부하분산 - 부하분산 만들기 - HTTP(S) 부하분산 구성시작 - 기본값 - 계속 - 이름작성, 백엔드구성: 만들어둔 서비스 선택 - 프론트엔드 구성 - 이름 작성, 프로토콜: HTTPS, IP버전: IPv4, IP주소: 임시, 포트: 433(HTTPS의 기본포트) - 인증서 - 새 인증서 만들기 - 이름작성 - 생성모드: Google 관리 인증서 만들기(Google SSL 인증서를 사용), 도메인: 본인이 구입한 도메인 주소 - 만들기 - 완료 - 만들기
만들어진 로드밸런서로 들어가 프론트엔드 인증서 클릭 - 상태가 PROVISIONING
에서 ACTIVE
로 바뀔때까지 기다리기(꽤 오래 걸림) - 변경되면 HTTPS IP 주소
복사 - Cloud DNS - A 레코드 IPv4주소값에 붙여넣기 - 저장
https://도메인주소/graphql
접속
=> 주소창에 자물쇠 모양 생기고 접속되면 성공
콘솔 - VPC 네트워크 - IP 주소 - 외부 고정 주소 예약 - 이름 작성, 유형: 전역 - 예약
네트워크 서비스 - 부하분산 - 부하분산기 만들기 - HTTP(S) 부하분산 구성시작 - 기본값 - 계속 - 백엔드구성 - 만들어둔 서비스 선택 - 프론트엔드 구성 - 이름 작성, 프로토콜: HTTPS, IP버전: IPv4, IP주소: 1번에서 만든 고정IP주소 선택 - 인증서: 만들어둔 인증서 - HTTP-HTTPS 간 리디렉션 사용 설정 체크 - 완료 - 만들기
만들어진 HTTPS 부하분산기 클릭 - IP 주소 복소 - Cloud DNS - A 레코드 IPv4 주소에 붙여넣기 - 저장
http://도메인주소/graphql
로 접속했을때 자동으로 HTTPS로 리다이렉트 된다면 성공