🌳 고급 인프라
Ingress가 뭔가요?
쉽게 이해하기
Ingress는 대형 쇼핑몰 입구의 안내 데스크예요. 방문객이 "옷 가게"라고 하면 3층으로, "식당"이라고 하면 지하로 안내해주죠. 마찬가지로 example.com/api로 들어오면 API 서버로, example.com/admin으로 들어오면 관리자 페이지로 자동으로 연결해줘요.
핵심 정리
Ingress는 쿠버네티스에서 외부 트래픽을 내부 서비스로 라우팅하는 규칙이에요.
자세히 알아보기
쿠버네티스에서 여러 서비스를 실행하면, 각 서비스는 클러스터 내부에서만 접근할 수 있어요. 외부에서 접근하려면 각 서비스마다 LoadBalancer를 만들어야 하는데, 이러면 비용도 많이 들고 관리도 복잡해져요. Ingress는 이 문제를 해결해줘요.
Ingress는 하나의 진입점(IP 주소)으로 여러 서비스를 제공할 수 있게 해줘요. 예를 들어 myapp.com으로 들어오는 요청 중 /api로 시작하는 건 백엔드 서비스로, /admin으로 시작하는 건 관리자 서비스로 자동으로 라우팅해요. 도메인별로도 나눌 수 있어서 api.myapp.com은 API 서버로, admin.myapp.com은 관리자 페이지로 보낼 수도 있죠.
Ingress는 단순 라우팅뿐 아니라 SSL/TLS 인증서 관리, URL 재작성, 인증, 속도 제한 같은 기능도 제공해요. 실무에서는 보통 Nginx Ingress Controller나 Traefik 같은 도구를 사용해요. 클라우드 환경이라면 AWS ALB, GCP Load Balancer 같은 관리형 서비스와 연동할 수도 있고요.
중요한 건 Ingress는 '규칙'일 뿐이고, 실제로 작동하려면 Ingress Controller가 필요하다는 거예요. Ingress에 "이 경로로 오면 저 서비스로 보내"라고 규칙을 쓰면, Ingress Controller가 그 규칙을 읽고 실제로 트래픽을 처리해요. 쿠버네티스로 웹 서비스를 운영한다면 Ingress는 필수예요.