APISIX, 대형 CDN 클라우드 서비스 제공업체의 네트워크 강화
January 31, 2023
개요
UPYUN 소개
UPYUN은 중국의 선도적인 기업 클라우드 서비스 제공업체로, 시나리오 기반 CDN(콘텐츠 전송 네트워크) 솔루션에 특화되어 있습니다. 10개의 데이터 처리 센터, 1000개 이상의 국내 CDN 노드, 100개에 가까운 글로벌 CDN 노드, 40,000대의 서버, 10TB의 예약 대역폭을 보유하고 있으며, 일일 요청 처리량이 1500억 건을 초과하는 다양한 시나리오에 대한 안전한 솔루션을 제공합니다.
도전 과제
-
UPYUN은 공용 네트워크 게이트웨이 역할을 하는 Kong을 사용하여 트래픽 연결을 관리하는 데 어려움을 겪었습니다.
-
Ingress 컨트롤러 측면에서, Ingress-Nginx는 복잡한 컴포넌트 의존성, 낮은 이식성, 약한 의미론적 기능으로 인해 게이트웨이 유지보수에 어려움을 겪었습니다.
결과
-
APISIX는 트래픽 처리에서 두각을 나타내며, 동적 라우팅 기능을 통해 백업 및 트래픽 로드 요구 사항을 충족합니다. UPYUN은 APISIX를 통해 컴포넌트 통일성을 높여 트래픽 처리 및 로깅 효율성을 향상시켰습니다.
-
APISIX 플러그인을 사용하여, UPYUN은 직원 신원 인증 및 Lark와의 통합을 성공적으로 구현하여 공용 네트워크 게이트웨이의 기능을 개선했습니다.
-
APISIX는 Prometheus 및 SkyWalking을 지원하여 UPYUN의 시스템에 대한 고급 모니터링 및 헬스 체크 기능을 제공합니다.
배경
UPYUN의 비즈니스 특성
게이트웨이는 UPYUN의 비즈니스 생태계에서 필수적입니다. 다양한 서비스를 조정, 최적화, 원활하게 운영하여 UPYUN에 효율적이고 안전하며 안정적인 솔루션을 제공합니다. 따라서 UPYUN은 내부 게이트웨이 아키텍처를 개선하기 위해 노력해 왔습니다.
UPYUN의 비즈니스 시나리오
내부적으로, UPYUN은 APISIX를 공용 네트워크 게이트웨이 및 Ingress 컨트롤러로 사용합니다.
-
공용 네트워크 게이트웨이는 인터넷 트래픽을 처리하는 데 중점을 두며, 외부 서비스의 게이트웨이 역할을 합니다.
-
Ingress 컨트롤러는 Kubernetes 클러스터 내 서비스에 대한 외부 접근을 관리하며, Ingress 리소스 구성을 통해 유연한 트래픽 라우팅 및 제어를 가능하게 합니다.
APISIX 사용 전의 문제점
APISIX를 도입하기 전, UPYUN은 Kong을 공용 네트워크 게이트웨이로 사용하고 Ingress-Nginx를 Ingress 컨트롤러로 사용했습니다. 그러나 UPYUN은 빠르게 여러 문제에 직면했습니다.
-
데이터베이스 연결 부담: UPYUN의 Kong 아키텍처 내에서 PostgreSQL 데이터베이스에 연결하면 상당한 수의 연결이 발생하여 데이터베이스 성능이 저하될 수 있습니다.
-
연결 시스템 제어의 복잡성: 프론트엔드에 프록시를 추가했음에도 불구하고, 시스템 업데이트 또는 재시작 시 연결 시스템을 효과적으로 관리하는 데 어려움을 겪어 시스템 유지보수가 복잡해졌습니다.
-
Ingress-Nginx의 운영 복잡성: Ingress-Nginx는 복잡한 의존성으로 인해 플러그인 개발에 어려움을 겪어 이식성이 낮고 개발 및 유지보수가 복잡해졌습니다. 또한, 의미론적 기능이 약해 복잡한 비즈니스 시나리오에서 유연성이 떨어졌습니다. 각 Ingress 규칙 변경 시 리로드 작업이 필요해 지속적인 연결에 의존하는 시나리오에서는 불편했습니다.
기존 로직을 유지하는 복잡성을 극복하기 위해, 이러한 문제들은 UPYUN에게 상당한 도전을 안겨주었습니다. 결과적으로, 팀은 운영 효율성을 높이기 위해 더 간소화되고 고급화된 게이트웨이 대안을 찾기 시작했습니다.
UPYUN이 APISIX를 선택한 이유
강력한 플러그인 아키텍처로 향상된 유연성
Apache APISIX의 플러그인 시스템을 활용하여, UPYUN은 내부 권한 시스템 검증 및 정밀한 속도 제한과 같은 기능을 포함한 내부 플러그인 세트를 설계했습니다. 이 전략적 계획은 회사에 더 적응 가능한 기능 사용자 정의를 제공할 뿐만 아니라, 게이트웨이 클러스터에 다양한 내부 지원을 제공했습니다.
탁월한 안정성
클라우드 기반 운영에서 안정성은 특히 작은 회사나 운영 팀원이 제한된 회사에게 우선순위입니다. APISIX를 게이트웨이 솔루션으로 선택함으로써, 외부 사용자에게 안정적인 사용자 경험을 보장할 뿐만 아니라 내부 비즈니스 배포의 운영 비용을 효과적으로 관리할 수 있습니다.
지원적인 오픈소스 커뮤니티
UPYUN 기술 팀에게 게이트웨이가 오픈소스인지 여부는 중요한 고려 사항입니다. APISIX는 오픈소스 솔루션으로, 활발한 커뮤니티 지원을 통해 보고된 버그에 대한 신속한 응답과 해결을 보장합니다.
인상적인 확장성
폐쇄형 소프트웨어와 달리, APISIX의 놀라운 확장성은 개발자에게 원활한 적응과 통합 방법을 제공합니다. 예를 들어, APISIX의 다국어 확장 기능은 UPYUN이 비즈니스 확장에 맞춤형 기능을 추가할 수 있게 해줍니다. 이 기능은 UPYUN의 개발 효율성을 크게 향상시킬 뿐만 아니라, 후속 기능 반복 및 유지보수에 더 큰 편의를 제공합니다.
원활한 통합 및 간소화된 사용자 정의
UPYUN은 일부 Kubernetes 클러스터에서 Ingress-Nginx를 통합했습니다. 이전에 Ingress-Nginx에 플러그인 시스템이 없었을 때, 특정 플러그인을 사용자 정의했습니다. 내부 데이터 센터 및 컨테이너 환경의 게이트웨이에서 Apache APISIX와 NGINX 간의 기능적 중복이 두드러지면서, UPYUN은 이전에 사용한 모든 Ingress-Nginx 컨테이너 게이트웨이를 Apache APISIX Ingress Controller로 대체할 예정입니다. 이 단계는 게이트웨이 수준에서 컴포넌트를 조화시키고, 향후 개발 및 운영 작업에서 잠재적인 중복을 완화하는 것을 목표로 합니다.
향상된 리로드 지원
APISIX Ingress Controller는 리로드 지원 기능을 제공하여 운영 효율성을 새로운 수준으로 끌어올립니다. 이 기능은 서비스 중단 없이 구성을 동적으로 업데이트할 수 있게 하여 빠른 배포와 유연한 운영 조작을 가능하게 합니다. 결과적으로 운영 효율성이 크게 향상되어 시스템 유지보수가 더 편리하고 빠르게 이루어집니다.
APISIX 구현
UPYUN의 현재 내부 게이트웨이 아키텍처는 다음 다이어그램과 같습니다. 외부 트래픽은 먼저 Apache APISIX를 통해 전달된 후 APISIX Ingress Controller로 전달되어 백엔드 서비스에 도달하여 후속 비즈니스 처리를 수행합니다.
공용 네트워크 게이트웨이
트래픽 제어
공용 네트워크 게이트웨이는 외부 트래픽의 주요 입구 역할을 하며, 내부 데이터 센터로 들어오는 모든 트래픽을 정밀하게 제어하고 관리해야 하는 중요한 책임을 지닙니다. 이 중요한 측면에서, APISIX는 강력한 기능을 통해 UPYUN에 다양한 트래픽 제어 서비스를 제공했습니다.
먼저, APISIX 게이트웨이는 CDN 에지 노드에서의 API 접근을 처리하여 트래픽을 관리했습니다. 이 지원은 CDN 노드의 성능을 최적화하는 데 도움을 주었을 뿐만 아니라, 후속 트래픽 관리를 위한 기반을 마련했습니다. 또한, APISIX는 공식 웹사이트의 정적 페이지 및 기술 지원과 관련된 트래픽을 능숙하게 처리하여 다양한 접근 요구 사항을 유연하게 해결할 수 있게 했으며, 궁극적으로 시스템의 전반적인 효율성을 높였습니다.
신원 인증
플러그인은 UPYUN 내에서 특히 직원이 내부 플랫폼에 접근할 때 중요한 역할을 합니다. 현재 직원들은 이메일 및 Lark와 같은 방법을 통해 인증을 받습니다. Apache APISIX의 강력한 openid-connect
플러그인 덕분에, 이러한 플랫폼과의 원활한 통합이 이루어져 직원 신원 인증이 편리해졌습니다. 이 혁신적인 적용은 APISIX 플러그인의 강력한 기능을 생생히 보여주며, UPYUN에 관리 플랫폼 접근을 위한 효율적이고 통합된 신원 인증 솔루션을 제공했습니다.
지능형 조정 및 보안 보호
보다 구체적인 시나리오에서, UPYUN은 openid-connect
플러그인과 serverless-post-function
플러그인을 함께 사용하여 Feishu 애플리케이션과의 지능형 조정을 달성했습니다. 이러한 플러그인의 협업을 통해, 사용자 이름, 이메일 또는 Lark 내 고유 식별자와 같은 관련 사용자 정보가 공용 네트워크 게이트웨이를 통과한 후 서비스로 전송됩니다. 게이트웨이가 관련 식별자 정보를 얻으면 이를 서버로 효율적으로 전달하여 Lark의 알림 및 멘션과 같은 기능을 가능하게 합니다. 특히, 이 과정에서 consumer-restriction
플러그인은 사용자에게 특정 권한 제한을 부과하여 시스템의 전반적인 보안 및 제어 가능성을 높일 수 있습니다.
Ingress 컨트롤러
내부 아키텍처 전환
Apache APISIX Ingress Controller를 통합한 후, UPYUN의 내부 아키텍처는 다음과 같은 구조를 보여줍니다.
이전에 언급된 Ingress-Nginx 프레임워크와 달리, 기본 데이터 플레인은 Apache APISIX 클러스터로 교체되었습니다. 상위 컨트롤러는 API Server의 변경 사항을 적극적으로 모니터링한 후 etcd를 통해 Apache APISIX 클러스터의 모든 노드에 구성 리소스를 전파합니다.
Apache APISIX의 동적 라우팅 수정 기능은 Ingress-Nginx 구성과의 주요 차이점입니다. Apache APISIX에서는 모든 수신 비즈니스 트래픽이 단일 위치로 수렴되며, Lua 코드를 통해 라우팅 선택이 실행됩니다. 이 효율성은 간소화되고 쉽게 관리할 수 있는 코드 배포를 가능하게 합니다. 반면, 오른쪽의 Ingress-Nginx에 대한 nginx.conf 구성 파일은 복잡하며, 각 Ingress 변경 시 리로드 작업이 필요합니다.
동적 라우팅 및 선언적 구성
Apache APISIX의 동적 라우팅 기능을 활용하여, Apache APISIX Ingress Controller는 그 기능을 효과적으로 구현했습니다. 주요 역할은 APIServer 내의 리소스 변경 사항을 모니터링하고, 세밀한 데이터 구조 변환, 검증 및 중요한 DIFF를 계산하는 것입니다. 마지막 단계는 이러한 변경 사항을 Apache APISIX Admin API에 적용하는 것입니다. 또한, Apache APISIX Ingress Controller는 Kubernetes 리더 선출 메커니즘을 통해 직접 고가용성 솔루션을 도입하여 외부 컴포넌트가 필요 없습니다.
선언적 구성 측면에서, UPYUN은 강력한 의미론을 가진 CRD 리소스를 선택했습니다. 이 구조화된 데이터 구성 접근 방식은 Apache APISIX가 지원하는 모든 기능을 구현할 수 있게 합니다.
APISIX 사용 후의 성과
트래픽 관리 개선
Apache APISIX는 UPYUN의 트래픽 처리 효율성을 크게 향상시켰습니다. 강력한 백업 메커니즘과 뛰어난 트래픽 로드 처리 능력은 UPYUN의 안정성을 보장하며, 특히 대규모 트래픽 처리 시 안정성을 유지합니다. 세심한 트래픽 제어를 통해, APISIX는 백업 및 트래픽 관리와 관련된 도전 과제를 효과적으로 해결하여 UPYUN에 신뢰할 수 있는 비즈니스 지원을 제공하고 시스템 성능을 최적화합니다.
통합 및 인증 간소화
APISIX는 신원 인증 및 플러그인 통합에서 뛰어납니다. openid-connect
플러그인을 사용하여, APISIX는 다양한 인증 방법을 효율적으로 수용하며, UPYUN에 효과적인 신원 인증 솔루션을 제공합니다. serverless-post-function
및 consumer-restriction
과 같은 플러그인의 결합 기능은 지능형 데이터 전송 및 강력한 접근 제어를 가능하게 하여 시스템의 전반적인 통합 능력을 크게 향상시킵니다.
로그 처리 효율성 향상
로그 처리 측면에서, UPYUN은 내부적으로 여러 Apache APISIX 클러스터를 구현하여 데이터 센터 게이트웨이와 컨테이너 게이트웨이에서 통일된 사용을 보장합니다. 이 일관성은 후속 로그 처리 및 소비를 위한 표준화된 로직을 확립합니다. 특히, Apache APISIX의 로그 플러그인 기능은 강력합니다. 내부적으로, UPYUN은 사용자 정의 로그 형식을 지원하는 Kafka-Logger
플러그인을 선택했습니다.
모니터링 및 헬스 체크 최적화
모니터링 측면에서, UPYUN은 Prometheus
및 SkyWalking
과 같은 도구를 사용하며, Prometheus
를 선호합니다. 기본 프록시로 작동하는 Apache APISIX는 앱 상태 코드 및 요청을 모니터링할 수 있습니다.
요약
CDN 클라우드 서비스 분야의 주요 업체로서, UPYUN은 특히 공용 네트워크 게이트웨이 및 Ingress 컨트롤러에서 Apache APISIX를 인프라에 통합했습니다. APISIX의 강력한 플러그인 시스템과 뛰어난 트래픽 관리 기능은 UPYUN의 운영 품질과 효율성을 크게 향상시키는 데 중요한 역할을 했습니다.
앞으로, UPYUN은 APISIX와의 추가 협력을 통해 시나리오 기반 CDN을 강화하고, 클라우드 스토리지, 클라우드 처리, 클라우드 보안 및 트래픽 마케팅을 포함한 서비스 제품군을 제공할 것으로 기대합니다.