영어학원 GKE 배포

따라하기
1/10
한 상자와 세 상자가 나란히 있는 학원 사이트
C1 · 훅

영어학원 GKE 배포

아직 한 통으로 올립니다

한 통을 셋으로 나눕니다

큰 상자 하나와 작은 상자 셋의 대조
02 · 통념

한 통이 편하죠?

나눌수록 배포가 쉽습니다

  • ❌ 홈·강의·신청 한 통
  • ⭕ 각각 올리고 갈아끼움

GKE가 그 상자입니다

세 서비스 상자가 GKE 위에 놓인 그림
03 · 반전

GKE에 나눠 올립니다

수강·강의·홈을 각각 배포

  • 클러스터 노드 3개
  • Cloud Build로 이미지
  • LoadBalancer로 공개

준비물부터 봅시다

브라우저 속 Cloud Shell 터미널
04 · 준비물

Cloud Shell이면 됨

GCP 프로젝트 하나면 충분

  • Google Cloud 계정
  • 결제 가능 프로젝트
  • ${GOOGLE_CLOUD_PROJECT}

준비됐으면 전체 그림부터

1부터 7까지 이어진 단계 칸
05 · 흐름

7칸만 갑니다

클론부터 프론트 분리까지

1클론 2클러스터 3통합 4수강신청 5강의목록 6프론트 7정리

먼저 저장소부터

git clone과 클러스터 생성 명령이 보이는 터미널
06 · 실행1

클론과 클러스터

academy-prod를 만듭니다

  • setup.sh로 의존성 설치
  • API container 사용
  • 존 europe-west1-b · 노드 3

✅ gcloud compute instances list

다음은 통합 사이트

LoadBalancer EXTERNAL-IP가 채워진 kubectl 출력
07 · 실행2

통합 사이트 배포

academy-monolith:1.0.0

  • Cloud Build로 이미지
  • deployment 만들고
  • 포트 80→8080 노출

⚠️ EXTERNAL-IP가 pending이면 잠시 대기

이제 API를 뺍니다

세 서비스 IP와 .env URL이 나란히
08 · 실행3

수강·강의·프론트

8081·8082·8080을 80으로

  • enrollments → 수강신청 API
  • courses → 강의목록 API
  • .env에 REACT_APP_* URL

⚠️ IP 바꾼 뒤 모놀리스 이미지 재빌드

✅ kubectl get services

막히는 지점만 점검

pending·존·URL 세 줄 함정 표
09 · 검수

여기서 막힙니다

증상조치
pending IP1~2분 후 재조회
존 미설정compute/zone 지정
옛 URL.env 재빌드

다 됐으면 이 목록만

학원 홈이 열린 브라우저와 삭제된 모놀리스
10 · 행동

프론트 IP로 확인

통합 배포는 지웁니다

  • frontend EXTERNAL-IP 접속
  • 수강·강의 JSON 확인
  • monolith deployment 삭제
따라하기 글 열기