본문 바로가기

⭐ Kubernetes & EKS/Ingress (잉그레스)

Ingress와 api의 관계에 대한 설명

# Ingress와 api의 관계데 대한 정리 (그림)

- 잉그레스의 사전적 정의 : 입장, 권리, 입장권

ingress_setting.drawio
0.02MB

- 간단하게 설명하면 아래와 같다.

Ingress에 설정된 path 주소화 백엔드 api의 주소의 정보가 일치해야 한다.

즉, RESTful API주소로 정의된 서비스를 제공해주는 연결 통로라고 볼 수 있다.

(프론트 엔드 및 백엔드에 정의된 /api가 개별로 서비스 가능 하게끔 구성이 가능하다.)

예를 들어 설명하면, 스프링부트의 BoardController가 존재하고, 해당 컨트롤러의 api 주소를 아래와 같이 @GetMapping으로 /articles라는 api주소를 설정 했을때, ingress에서 해당 api주소로 아래와 같이 설정을 하면 ALB의 리스너 정책에 해당 정보를 참고하여 맵핑 후 생성한다. (리스너 정보는 아래에 있다.)

- 참고 : 리스너 정보

- Ingress 세팅에 있어서는 port 정보는 상관이 없다. 단지 api path 정보를 기반으로 라우팅을 진행한다. port 정보는 실제로 svc 즉 k8s의 서비스에 맵핑된 port 번호와 정상적으로 설정이 되어 있으면 된다.

- 그리고 또한가지 중요한 점이 있는데, 위에서 보았듯이 FrontEnd의 api 주소 및 BackEnd의 api 주소 등 어떤 api 주소를 맵핑하도 Ingress는 해당 api 주소로만 트래픽을 흘려보낸다.

말이좀 어려운데 간단하게 그림으로 설명하면 아래와 같다.

ingress_service.drawio
0.00MB

- 결론적으로 프론트엔드나 백엔드에 Restful API로 경로를 설정해 놓으면 ingress는 해당 경로를 기반으로 새로운 접속 경로를 생성해 준다.

- 한마디로 ingress는 api의 연결 통로라고 생각하면 된다.