반응형

이전 포스팅에서 GCP의 쿠버네티스 클러스터를 생성하고, 클러스터 내부의 데이터베이스와 Application 작업을 생성하고, 네트워크 연결까지를 다루었다.

 

이번 포스팅에서는 Kubernetes Ingress 설정과 이를 통해서 HTTPS 적용을 해보도록 하겠다.

 

 

 

 

 

 

 


Kubernetes Ingress

 

Kubernetes 클러스터 내에서 HTTP 및 HTTPS와 같은 웹 트래픽을 관리하고 라우팅하기 위한 API 및 리소스이다.

클러스터 외부에서 내부로 들어오는 HTTP/HTTPS 요청을 처리하고 여러 서비스들 앞에서 라우터 역할을 하고, 클러스터의 진입점 역할을 한다.  웹 애플리케이션의 경로 기반 라우팅, 로드 밸런싱, SSL/TLS 암호화, 호스트 기반 라우팅 등 다양한 설정을 지원한다.

 

Kubernetes의 로드 밸런서 역할을 한다고 보면 되고, 기존의 로드밸런서(외부 부하 분산기)를 생성한 이후, Ingress로 업그레이드하는 개념이라고 받아들이면 쉽다.

우리가 사용해볼 GKE Ingress 컨트롤러는 HTTPS 로드 밸런서의 역할을 수행할 수 있다.

 

 

 

 

 

 

 


Service에 Ingress 생성 및 등록하기

 

서비스 및 수신 -> 사용할 서비스 체크 -> 인그레스 만들기를 클릭한다.

Ingress는 외부 부하 분산기에만 생성이 가능하다. 우리는 Application에 HTTPS를 적용시킬 것이므로 해당 서비스를 선택해주자.

 

 

 

 

1. Backend Configuration

 

 

 

 

 

Backend는 로드밸런서와 클러스터 내부 사이의 설정을 정의하는 곳이다. 해당 부분에서는 현재 목적으로는 특별히 따로 설정해야 하는 부분은 없다.

 

 

 

 

2. Host and Path Rules

라우팅 규칙에 따라서 어떤 Deployment Service로 매핑시킬지를 정의하는 부분이다.

현재는 모든 라우팅 규칙을 NestJS 서비스로 매핑시키려고 한다. 따라서 Backends 부분만 Application Service를 넣어주면 된다.

 

 

 

 

3. Frontend Configuration

 

우리는 HTTPS를 적용시킬 것이므로 프로토콜을 HTTPS로 변경해주자.

HTTPS의 인증서가 필요하므로 인증서 추가를 클릭하여 생성해주자. 이전 포스팅에서 GCP에서 HTTPS 인증서를 발급받는 과정과 유사하므로, 만드는 과정을 모르겠다면 아래 포스팅을 참고하자

https://sjh9708.tistory.com/98

 

[GCP] Node.js(NestJS) 클라우드 배포 : (4) 로드밸런서와 HTTPS 적용

이번 포스팅에서는 기존에 http로만 접속 가능했던 배포 API를 SSL 인증서를 적용하여 https로 접속 가능하게 만들고, 로드밸런서를 적용을 통해 HTTPS 및 부하 분산을 적용시키는 것을 다룰 것이다.

sjh9708.tistory.com

 

 

 

 

Ingress가 만들어지는 데에 시간이 조금 걸린다. 빨간불이 들어오더라도 당황하지 말고, 초록색 불이 켜질 때 까지 기다려주자.

그리고 Ingress는 기본적으로 디폴트 경로 "/"로 Health Check를 하므로, 만약 디폴트 경로에 대한 200 Response가 없다면 App에 만들어 주도록 하자. 그렇지 않으면 Appliciation이 죽은 것으로 간주한다.

 

 

 

부하 분산기 세부 정보를 확인할 수 있다.

 

 


도메인 연결

 

Cloud DNS에서 기존에 도메인을 연결할 때 사용했던 A 레코드를 생성한 Ingress의 IP 주소로 변경하자.

도메인을 Cloud DNS에 등록하는 방법은 아래 포스팅에서 자세히 적어두었다.

 

https://sjh9708.tistory.com/97

 

[GCP] Node.js(NestJS) 클라우드 배포 : (3) 도메인 연결

이번에는 앞서 배포해보았던 인스턴스에 도메인을 연결하여, IP가 아닌 도메인으로 접근 가능하도록 만들어보려고 한다. DNS 영역 만들기 구매한 도메인을 백엔드 서버와 연결시키려고 한다. 메

sjh9708.tistory.com

 

 

 


도메인 접속 확인

 

이제 HTTPS 도메인을 통해 Ingress IP로 App에 접근 가능한 것을 확인할 수 있다.

반응형

BELATED ARTICLES

more