Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

NGINX | 2021년 9월 27일

편집자 – 이 글은 10부작 시리즈의 일부입니다:

  1. 프로덕션급 Kubernetes로 복잡성 줄이기
  2. 고급 트래픽 관리로 Kubernetes의 복원력을 향상하는 방법
  3. Kubernetes에서 가시성을 개선하는 방법
  4. 트래픽 관리 도구를 사용하여 Kubernetes를 보호하는 6가지 방법
  5. 인그레스 컨트롤러 선택 가이드 1부: 요구 사항 파악하기
  6. 인그레스 컨트롤러 선택 가이드 2부: 위험 요소와 미래 대비
  7. 인그레스 컨트롤러 선택 가이드 3부: 오픈 소스 vs. 기본 제공 vs. 상용
  8. 인그레스 컨트롤러 선택 가이드, 4부: NGINX 인그레스 컨트롤러 옵션(이 게시물)
  9. 서비스 메시를 선택하는 방법
  10. 동적 Kubernetes 클라우드 환경에서 NGINX Ingress Controller 성능 테스트

전체 블로그 모음을 무료 eBook으로 다운로드할 수도 있습니다. – Kubernetes를 테스트에서 프로덕션으로 전환하기.

Cloud Native Computing Foundation(CNCF)의 2020년 설문조사에 따르면, NGINX는 Kubernetes용 Ingress 컨트롤러에서 가장 널리 사용되는 데이터 플레인입니다. 그런데 ‘NGINX Ingress Controller’가 하나만 있는 것이 아니라는 사실을 알고 계셨나요?

이 블로그의 이전 버전은 2018년에 잠깐, 내가 사용 중인 Kubernetes용 NGINX Ingress Controller는 어느 것일까?라는 제목으로 게시되었으며, NGINX를 사용하는 두 가지 인기 있는 Ingress Controller가 존재한다는 사실에 관해 커뮤니티 구성원과 나눈 대화에서 착안했습니다.

지금까지 본 컨테이너 이미지 위치를 통해 서로 다른 두 가지 Ingress 컨트롤러가 있다는 사실은 어렴풋이 알고 있었지만, NGINX 관계자가 이를 이렇게 명확하게 밝힌 것은 처음인 것 같습니다.

왜 혼란이 있었고 지금도 여전히 혼란스러운지 쉽게 이해할 수 있습니다. 두 Ingress 컨트롤러는 모두 다음과 같습니다:

  • “NGINX Ingress Controller”라고 불림
  • 오픈 소스
  • 매우 유사한 리포지토리 이름으로 GitHub에 호스팅됨
  • 비슷한 시기에 시작된 프로젝트들의 결과물

물론 가장 큰 공통점은 동일한 기능을 구현한다는 것입니다.

NGINX와 Kubernetes 커뮤니티 Ingress 컨트롤러 비교

명확한 구분을 위해 두 버전을 다음과 같이 구별합니다:

  • 커뮤니티 버전 – GitHub의 kubernetes/ingress-nginx 리포지토리에서 제공되는 커뮤니티 Ingress 컨트롤러는 NGINX Open Source를 기반으로 하며, 관련 문서는 Kubernetes.io에서 확인할 수 있습니다. Kubernetes 커뮤니티에서 유지 관리합니다.
  • NGINX 버전 – GitHub의 nginxinc/kubernetes-ingress 리포지토리에서 제공되는 NGINX Ingress Controller는 F5 NGINX에서 개발 및 유지 관리하며, 관련 문서는 docs.nginx.com에서 확인할 수 있습니다. 다음 두 가지 에디션으로 제공됩니다:
    • NGINX Open Source 기반(무료 오픈 소스 옵션)
    • NGINX Plus 기반 (상용 옵션)

Kong과 같이 NGINX를 기반으로 하는 다른 Ingress 컨트롤러도 여러 개 있지만, 다행히 이름으로 쉽게 구분할 수 있습니다. 사용 중인 NGINX Ingress Controller가 무엇인지 확실하지 않다면 실행 중인 Ingress 컨트롤러의 컨테이너 이미지를 확인한 다음, Docker 이미지 이름을 위에 나열된 리포지토리와 비교하세요.

NGINX Ingress Controller의 목표 및 우선순위

NGINX Ingress Controller와 커뮤니티 Ingress 컨트롤러(및 NGINX Open Source 기반의 기타 Ingress 컨트롤러)의 주요 차이점은 개발 및 배포 모델이며, 이러한 모델은 서로 다른 목표와 우선순위를 바탕으로 합니다.

  • 개발 철학 – 모든 NGINX 프로젝트와 제품에서 가장 중요하게 생각하는 것은 장기적인 안정성과 일관성을 갖춘 빠르고 가벼운 도구를 제공하는 것입니다. 릴리스 간 동작 변경, 특히 이전 버전과의 호환성을 저해하는 변경을 방지하기 위해 가능한 모든 노력을 기울입니다. 업그레이드할 때 예상치 못한 문제가 발생하지 않도록 보장합니다. 또한 선택의 자유를 중요하게 생각하므로 모든 솔루션을 베어 메탈, 컨테이너, VM, 퍼블릭·프라이빗·하이브리드 클라우드를 비롯한 모든 플랫폼에 배포할 수 있습니다.
  • 통합 코드베이스 – NGINX Ingress Controller는 부하 분산을 위해 100% 순수한 NGINX Open Source 또는 NGINX Plus 인스턴스를 사용하며, NGINX의 기본 기능만으로 모범 사례에 따른 구성을 적용합니다. 상호 운용성 테스트를 거치지 않은 타사 모듈이나 Lua 코드에는 의존하지 않습니다. 당사는 여러 타사 리포지토리의 코드를 조합하여 Ingress Controller를 만들지 않습니다. 부하 분산기(NGINX 및 NGINX Plus)와 Ingress Controller 소프트웨어(Go 애플리케이션)를 직접 개발하고 유지 관리합니다. 당사는 Ingress Controller의 모든 구성 요소를 총괄하는 단일 주체입니다.
  • 고급 트래픽 관리 – 표준 Kubernetes Ingress 리소스의 한계 중 하나는 고급 기능을 사용하도록 사용자 지정하려면 어노테이션, ConfigMap, 사용자 지정 템플릿과 같은 보조 기능을 사용해야 한다는 점입니다. NGINX Ingress 리소스는 네이티브 방식의 형식 안전성과 들여쓰기를 지원하는 구성 스타일을 제공하여 TCP/UDP, 회로 차단, A/B 테스트, 블루-그린 배포, 헤더 조작, 상호 TLS 인증(mTLS), 웹 애플리케이션 방화벽(WAF) 등의 Ingress 부하 분산 기능을 더 쉽게 구현할 수 있도록 합니다.
  • 지속적인 프로덕션 준비성 – 모든 릴리스는 지원 가능한 프로덕션 표준에 맞춰 빌드되고 유지 관리됩니다. NGINX Open Source 기반 에디션을 사용하든 NGINX Plus 기반 에디션을 사용하든 이러한 “엔터프라이즈급” 접근 방식의 이점을 동일하게 누릴 수 있습니다. NGINX Open Source 사용자는 GitHub에서 엔지니어링 팀의 답변을 받을 수 있으며, NGINX Plus 구독자는 최고 수준의 지원을 받을 수 있습니다. 어느 쪽이든 DevOps 팀에 NGINX 개발자가 합류한 것과 같습니다!

NGINX Open Source와 NGINX Plus 비교 – 상용 에디션으로 업그레이드해야 하는 이유

이와 함께 NGINX Plus 기반 NGINX Ingress Controller가 제공하는 주요 이점도 몇 가지 살펴보겠습니다. Kubernetes Ingress Controller 선택 방법, 3부: 오픈 소스 vs. 기본 제공 vs. 상용에서 설명했듯이 오픈 소스 Ingress Controller와 상용 Ingress Controller 사이에는 상당한 차이가 있습니다. 대규모 Kubernetes 배포와 복잡한 애플리케이션의 프로덕션 운영을 계획하고 있다면, 당사의 상용 Ingress Controller를 통해 몇 가지 핵심 영역에서 시간과 비용을 절약할 수 있습니다.

보안 및 규정 준수

많은 조직이 Kubernetes 앱을 프로덕션 환경에 배포하지 못하는 주된 이유 중 하나는 보안과 규정 준수를 유지하기가 어렵기 때문입니다. NGINX Plus 기반 NGINX Ingress Controller는 앱과 고객을 안전하게 보호하는 데 필수적인 5가지 사용 사례를 지원합니다.

독일의 자동차 대기업 Audi가 Red Hat OpenShift 앱을 어떻게 보호했는지 Audi, NGINX로 미래 지향적인 기술 비전과 앱 혁신 실현에서 알아보세요.

애플리케이션 성능 및 복원력

가동 시간과 애플리케이션 속도는 개발자와 플랫폼 운영 팀이 중요하게 여기는 핵심 성과 지표(KPI)인 경우가 많습니다. NGINX Plus 기반 NGINX Ingress Controller는 Kubernetes의 이점을 실현하는 데 도움이 되는 5가지 사용 사례를 지원합니다.

  • 실시간 모니터링 활용 – NGINX Plus 대시보드에는 수백 가지의 주요 부하 및 성능 지표가 표시되므로, 앱이 느려지거나 중단된 원인을 신속하게 파악하고 해결할 수 있습니다.
  • 장애를 더 빠르게 감지하고 해결 – TCP 및 UDP 업스트림 서버의 상태를 선제적으로 모니터링하는 능동 상태 확인 기능으로 회로 차단기를 구현하세요.
  • 재시작 없이 재구성 – 더 빠르고 중단 없는 재구성을 통해 일관된 성능과 리소스 사용량으로 애플리케이션을 제공하고, 오픈 소스 대안보다 더 짧은 지연 시간을 실현할 수 있습니다.
  • 새로운 기능과 배포를 철저히 테스트 – 키-값 저장소를 활용해 다시 로드하지 않고도 비율을 변경할 수 있으므로 A/B 테스트와 블루-그린 배포를 더 쉽게 수행할 수 있습니다.
  • 지원 요구 사항을 신속하게 해결 – 커뮤니티의 답변을 기다릴 수 없거나 민감한 데이터가 노출될 위험을 감수할 수 없는 조직에는 기밀이 보장되는 유료 지원이 필수적입니다. NGINX 지원은 요구 사항에 맞게 여러 등급으로 제공되며 설치, 배포, 디버깅 및 오류 수정에 대한 지원을 포함합니다. 무언가가 제대로 작동하지 않는 것처럼 느껴질 때도 도움을 받을 수 있습니다.

비즈니스 문자 메시징 기업 Zipwhip이 SaaS 앱에서 99.99%의 가동 시간을 달성한 방법을 NGINX로 Amazon EKS의 보안 및 트래픽 가시성 강화에서 알아보세요.

다음 단계: NGINX Ingress Controller 사용해 보기

오픈 소스 Ingress 컨트롤러가 애플리케이션에 적합하다고 판단하셨다면, 다음 GitHub 리포지토리에서 빠르게 시작할 수 있습니다.

대규모 프로덕션 배포에는 NGINX Plus 기반의 상용 Ingress 컨트롤러를 사용해 보시기 바랍니다. 30일 무료 평가판으로 이용할 수 있으며, NGINX App Protect가 포함되어 있습니다.


공유

작성자 소개

관련 블로그 게시물

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
NGINX | 2023. 11. 30.

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric

이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
NGINX | 2023. 03. 23.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법

앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
NGINX | 2021. 09. 27.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX | 2021. 07. 06.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법

NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX | 2021. 06. 30.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리

NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
NGINX | 2015. 03. 25.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유

Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.