APISIX를 API Gateway로 활용한 클라우드 네이티브 전환을 위한 금융 실무 사례
Yonghui Lu
January 13, 2023
이 글은 2022년 ApacheCon Asia에서 Essence Securities의 API Gateway 디렉터인 Yonghui Lu가 발표한 내용을 기반으로 합니다. Yonghui는 Essence Securities의 클라우드 네이티브 API 게이트웨이를 Apache APISIX를 기반으로 한 실천 사례를 공유했습니다.
개요
도전 과제
- 기존 기술 스택이 복잡하여 NGINX, Spring Cloud Gateway, 자체 개발 시스템 등으로 구성됨
- 통일된 기술 스택이 없어 시스템 관리가 어려움
- 다양한 비즈니스 프로젝트에서 중복 작업과 높은 비용 발생
목표
- 클라우드 네이티브이며 Essence Securities의 비즈니스 시스템과 쉽게 통합 가능
- 배포, 모니터링, 알림 관리를 수행
- 고성능 및 확장 가능한 능력
- 기능 커스터마이징 및 시스템과의 빠른 통합
- 트래픽 관리, 보안, 프로토콜 변환, 인가, 인증 등과 같은 강력하고 다양한 기능 제공
결과
- 트래픽 관리 촉진, 급증하는 트래픽을 안전하게 관리
- R&D 효율성과 편의성 향상
- Essence Securities의 클라우드 네이티브 개발 강화
- 독립적인 도메인 설정을 통해 데이터 보안 및 권한 관리 강화
Essence Securities 소개
Essence Securities Co., Ltd. (Essence Securities)는 중국의 주요 증권사 중 하나입니다. 2006년 설립 이후, Essence Securities는 중국 상위 15대 증권사 중 하나로 빠르게 성장하며 민간 및 공공 부문에 최고의 서비스를 제공해 왔습니다. 전국 25개 주요 도시에 120개 이상의 소매 지점과 4개의 독립 자회사를 보유하고 있습니다.
Essence Securities의 주요 사업은 증권 중개, 증권 투자 상담, 증권 거래 및 투자와 관련된 금융 자문 서비스, 증권 인수 및 후원, 증권 투자, 자산 관리 및 중국 증권 규제 위원회가 승인한 기타 사업에 이릅니다.
왜 APISIX를 선택했나요?
2021년부터 Essence Securities는 애플리케이션을 클라우드로 마이그레이션하고 API 게이트웨이 계획을 시작했습니다. 2022년에는 API 게이트웨이 구축에 착수했습니다. 신중한 비교 끝에, Essence Securities는 다양한 API 게이트웨이 솔루션 중 Apache APISIX를 선택했습니다. 그 이유는 다음과 같습니다:
고성능
증권사는 일반적으로 피크 시간에 트래픽 급증이 발생하는 특징이 있습니다. Apache APISIX는 단일 코어 QPS 23,000, 평균 지연 시간 0.6밀리초로 가장 높은 성능을 가진 API 게이트웨이입니다.
“우리는 API 게이트웨이가 급증하는 트래픽을 감당할 수 있어야 하며, 다음 병목 현상이 되지 않아야 합니다. OpenResty나 기타 기술 스택을 기반으로 한 일부 API 게이트웨이를 비교한 결과, Apache APISIX는 높은 성능이라는 경쟁력 있는 장점으로 우리의 API 게이트웨이 요구 사항을 충족시킬 수 있었습니다.” Yonghui는 말했습니다.
확장성 및 개발자 친화적
APISIX는 사용자에게 다양한 기능을 지원합니다. Essence Securities에서는 속도 제한, 서킷 브레이커, 인가 및 인증, 카나리 릴리스가 가장 널리 사용됩니다.
이를 위해 Essence Securities는 비즈니스 그룹의 내부 요구를 충족시키기 위해 일부 플러그인을 자체 개발했습니다. APISIX는 공식적으로 Java, Golang, Python, Lua 등 많은 프로그래밍 언어를 지원합니다. 커뮤니티와 일관성을 유지하기 위해 Essence Securities는 Lua를 선택했습니다. 결과적으로 개발 과정이 매우 원활하게 진행되었습니다. Essence Securities는 자체 개발한 플러그인을 커뮤니티에 기여할 계획도 있습니다.
가상 머신 및 컨테이너 시나리오
현재, 애플리케이션을 클라우드로 마이그레이션하는 것은 Essence Securities의 중요한 전략입니다. 그러나 가상 머신에 배포된 시나리오도 상당히 많습니다.
“API 게이트웨이를 선택할 때 이 두 상태 애플리케이션의 호환성을 고려해야 합니다. 비록 우리의 계획은 컨테이너에 더 초점이 맞춰져 있지만, APISIX는 이러한 시나리오 호환성에서 많은 지원을 제공합니다.” Yonghui는 말했습니다.
클라우드 네이티브 개발 트랙
Apache APISIX는 클라우드 네이티브 시나리오를 지원하는 데 탁월하며, Essence Securities는 클라우드 네이티브 트렌드에 발맞추고 있습니다. APISIX, APISIX Ingress Controller, Service Mesh를 사용하며, Essence Securities는 APISIX의 새로운 발전과 개발을 기대하고 있습니다.
활발한 커뮤니티
오픈소스 프로젝트로서 APISIX는 커뮤니티에서 활발히 활동하고 있습니다. 문제는 시간 내에 논의되고 해결됩니다. 2022년에는 APISIX 커뮤니티에서 거의 40회의 오프라인 및 온라인 이벤트가 개최되었습니다. APISIX에 익숙한 사람들은 이러한 활동에 대해 매우 흥미를 느끼고 있습니다.
Essence Securities는 APISIX 사용으로 어떤 혜택을 얻고 있나요?
아래는 클라우드 네이티브 시나리오에서 흔히 볼 수 있는 Essence Securities의 마이크로서비스 아키텍처입니다.
-
권한 및 인증: APISIX 사용 전, 권한 및 인증은 여러 마이크로서비스에서 제어되어 많은 반복적인 개발 작업이 발생했습니다.
-
트래픽 관리: Essence Securities는 APISIX와 통합하여 트래픽 관리를 실현했습니다. 그 중 가장 전형적인 시나리오는 속도 제한과 카나리 릴리스입니다. APISIX 사용 전, 이러한 기능은 NGINX를 통해 구현되었으며, conf를 수정하고 노드를 재시작해야 했습니다. 반면, APISIX의 가시적인 대시보드와 핫 리로딩 기능은 Essence Securities의 트래픽 관리에 큰 편의를 제공합니다.
-
카나리 릴리스: APISIX는 카나리 릴리스에서 유연하며, 요청 헤더, 요청 매개변수, 쿠키 등과 같은 트래픽 특성에 따라 부분적으로 구현할 수 있습니다. 예를 들어, Essence Securities는 사용자 ID에 따라 사용자 트래픽을 카나리 릴리스 버전 서버로 프록시해야 합니다.
-
관측 가능성: 이전에는 Essence Securities가 메트릭, 추적, 로그를 통해 관측 가능한 관리를 실현해야 했습니다. 다차원 관리를 실현하는 것은 어려운 일이었습니다. 그러나 APISIX 사용 후, 간단한 설정으로 세 가지 플러그인을 활성화하면 동일한 효과를 얻을 수 있습니다. 얼마나 놀라운 발전인가요!
APISIX 기반의 혁신
CAS 단일 로그인
Essence Securities는 CAS (Central Authentication Service)를 표준 인증 방법으로 사용하며, 이는 게이트웨이에 인증을 배치하는 데 적합합니다.
Essence Securities는 APISIX를 확장하여 CAS 단일 로그인 기능을 추가했습니다. 이를 통해 몇 가지 장점이 있습니다.
게이트웨이 계층에 CAS를 배치하면 CAS에 접근하고 그 기능을 쉽게 도입할 수 있습니다. 예를 들어, 사용자 정보를 가져오기 위한 통합 인증 서비스가 있습니다.
또한, CAS는 사용자 정보를 요청 헤더에 설정하고 이를 업스트림 서비스로 전달하여 사용자의 로그인 상태를 유지합니다. 따라서 다른 시스템에 반복적으로 로그인할 필요가 없어 많은 사용자의 시간을 절약하고 편의성을 향상시킵니다.
authz - casbin 인증 플러그인
APISIX authz-casbin
인증 플러그인은 Lua Casbin 기반의 인가 플러그인입니다. 이 플러그인은 RBAC (역할 기반 접근 제어) 모델을 기반으로 강력한 인가 시나리오를 지원합니다.
CSV 파일 저장, APISIX 플러그인 구성, 메타데이터를 통한 정책 저장을 지원합니다.
아래는 예시입니다.
Essence Securities에서는 도메인이라는 중요한 개념이 있습니다. 사용자는 다양한 도메인에서 다른 권한을 가집니다. 예를 들어, 직원 A는 도메인 A의 관리자일 수 있지만 도메인 B에서는 단순히 뷰어일 수 있습니다.
요청, 정책, 역할을 정의할 때 도메인을 지정해야 합니다. 따라서 Essence Securities는 이러한 시나리오에 맞게 casbin을 수정했습니다. 이 플러그인은 도메인과 함께 RBAC를 지원하는 Lua 저장소에 의존합니다. 결과적으로, 위의 요구 사항은 Lua 저장소의 해당 인터페이스를 호출하는 것만으로 충족될 수 있으며, 이는 매우 간단합니다. 이 방법은 데이터 보안과 권한 관리를 크게 강화할 수 있습니다.
관측 가능성
APISIX는 메트릭, 추적, 로그 수집과 같은 다차원 모니터링을 제공합니다. 이러한 모든 기능은 간단한 설정으로 달성할 수 있습니다.
Prometheus 플러그인을 활성화한 후, 요청 지연, 대역폭, HTTP 상태 코드 전송률과 같은 메트릭을 관측할 수 있습니다. 이는 문제 해결에 유용합니다.
추적 분석의 경우, 업스트림이 Skywalking과 연결되면 Skywalking을 활성화하면 완전한 호출 추적을 추적할 수 있습니다.
Essence Securities는 로그 수집의 더 많은 가치를 발굴할 계획입니다. 접근 로그를 kafka로 푸시하면 Essence Securities가 데이터를 분석하고 통계를 낼 수 있습니다.
향후 계획
멀티 테넌시
이전에는 Essence Securities의 시스템이 오류 위험을 줄이고 사용자 정보를 분리하기 위해 독립적인 클러스터를 가지고 있었습니다. Apache APISIX는 현재 단계에 적합한 etcd를 구성 센터로 사용합니다.
공유 클러스터는 통합 리소스 관리와 O&M 효율성 향상에 도움이 됩니다. Essence Securities는 독립 클러스터와 멀티 테넌시를 결합하여 관리 능력을 극대화할 계획입니다.
애플리케이션 마켓플레이스
Essence Securities는 사용자에게 로깅, 모니터링, 알림 플랫폼, 데이터 센터와 같은 많은 마이크로서비스를 제품으로 제공할 계획이며, 이들의 중앙 집중식 관리는 APISIX를 통해 실현될 수 있습니다.
게이트웨이 계층을 도입한 후, 인증, 인가, 트래픽 관리와 같은 많은 API 게이트웨이 거버넌스가 추가되었습니다.
관측 가능한 데이터 모니터링
APISIX의 플러그인 kafka-logger는 Essence Securities가 게이트웨이의 접근 로그를 kafka로 푸시하는 데 도움을 줄 수 있습니다. Kafka는 정보를 정리, 형식화, 통계를 내어 호출 상위 N, 비정상 요청, 요청 지연과 같은 더 가치 있는 통계를 얻을 수 있습니다.
“또는 상태 코드 분포, 클라이언트 IP 분포, 트래픽 통계, 트래픽 피크, 비피크 시간 분포, 비정상 트래픽 탐지 등을 얻을 수 있습니다. 이 부분은 우리 시스템의 관측 가능한 능력을 확장하는 데 매우 중요합니다.” Yonghui는 말했습니다.
Essence Securities는 APISIX Ingress Controller 및 Service Mesh와의 더 많은 협력을 기대하고 있습니다.
APISIX 지원을 찾고 계신가요?
Apache APISIX는 오픈소스, 동적, 확장 가능, 고성능 클라우드 네이티브 API 게이트웨이로, 모든 API와 마이크로서비스를 위한 것입니다. API7.ai가 Apache Software Foundation에 기부한 APISIX는 최상위 오픈소스 Apache 프로젝트로 성장했습니다.
Essence Securities처럼 자신 있게 개발을 가속화하고 싶으신가요? APISIX 지원을 극대화하려면 API7이 필요합니다. 우리는 귀하의 요구에 기반한 APISIX 및 API 관리 솔루션에 대한 심층 지원을 제공합니다!
지금 문의하세요: https://api7.ai/contact.