C1 · 훅
영어학원 GKE 배포
아직 한 통으로 올립니다
한 통을 셋으로 나눕니다
02 · 통념
한 통이 편하죠?
나눌수록 배포가 쉽습니다
- ❌ 홈·강의·신청 한 통
- ⭕ 각각 올리고 갈아끼움
GKE가 그 상자입니다
03 · 반전
GKE에 나눠 올립니다
수강·강의·홈을 각각 배포
- 클러스터 노드 3개
- Cloud Build로 이미지
- LoadBalancer로 공개
준비물부터 봅시다
04 · 준비물
Cloud Shell이면 됨
GCP 프로젝트 하나면 충분
- Google Cloud 계정
- 결제 가능 프로젝트
- ${GOOGLE_CLOUD_PROJECT}
준비됐으면 전체 그림부터
05 · 흐름
7칸만 갑니다
클론부터 프론트 분리까지
1클론
2클러스터
3통합
4수강신청
5강의목록
6프론트
7정리
먼저 저장소부터
06 · 실행1
클론과 클러스터
academy-prod를 만듭니다
- setup.sh로 의존성 설치
- API container 사용
- 존 europe-west1-b · 노드 3
✅ gcloud compute instances list
다음은 통합 사이트
07 · 실행2
통합 사이트 배포
academy-monolith:1.0.0
- Cloud Build로 이미지
- deployment 만들고
- 포트 80→8080 노출
⚠️ EXTERNAL-IP가 pending이면 잠시 대기
이제 API를 뺍니다
08 · 실행3
수강·강의·프론트
8081·8082·8080을 80으로
- enrollments → 수강신청 API
- courses → 강의목록 API
- .env에 REACT_APP_* URL
⚠️ IP 바꾼 뒤 모놀리스 이미지 재빌드
✅ kubectl get services
막히는 지점만 점검
09 · 검수
여기서 막힙니다
| 증상 | 조치 |
|---|---|
| pending IP | 1~2분 후 재조회 |
| 존 미설정 | compute/zone 지정 |
| 옛 URL | .env 재빌드 |
다 됐으면 이 목록만