Akita의 NGINX Plus 인증 모듈로 API 엔드포인트 문제를 찾아 해결하기

NGINX | 2023년 5월 31일

사용자 수와 관계없이 프로덕션 서비스를 담당하고 있다면, 고객이 담당자보다 먼저 문제를 발견할 때의 고충을 잘 아실 것입니다. Akita는 이 문제를 해결하고자 새로운 NGINX Plus Certified Module을 개발했습니다.

이 블로그에서는 로그에서 한발 물러나 전체적인 상황을 살펴봐야 하는 이유, 시스템 전반의 문제를 신속하게 찾아 해결하는 방법, 그리고 새로운 Akita 모듈을 통해 NGINX 사용자가 이러한 기능을 손쉽게 이용하는 방법 등 모듈의 주요 측면을 다룹니다.

로그에서 API 엔드포인트로 시야 넓히기

오늘날 수많은 개발자가 고객이 사실상 모니터링 시스템 역할을 하는 안타까운 상황에 놓여 있습니다.

소프트웨어 팀이 오류를 기록하지 않는다는 뜻은 아닙니다. 예를 들어 NGINX를 리버스 프록시로 사용하면 NGINX 로그에서 타임스탬프, 요청 길이와 처리 시간, 응답 상태 코드 등 온갖 정보를 확인할 수 있습니다. 시간과 인내심을 들여 찾아보기만 하면 필요한 정보는 이미 그 안에 있습니다.

하지만 다양한 요청과 응답이 오가는 시스템에서는 방대한 로그 속에서 길을 잃기 쉽습니다! 로그를 기반으로 대시보드나 다른 유형의 도구를 미리 구축해 두지 않았다면, 잠재적인 문제와 그 발생 지점을 파악하기 위해 수천 줄, 아니 수백만 줄에 달하는 로그를 일일이 살펴봐야 할 수도 있습니다. 하지만 적절한 대시보드와 모니터링 체계를 구축하는 데는 몇 주, 몇 달, 심지어 몇 분기가 걸릴 수 있습니다. 또한 코드 변경에 맞춰 함께 업데이트해야 하는 경우도 많습니다.

Akita는 로그에서 한발 물러나 API 엔드포인트 수준에서 전체를 조망하는 것이 중요하다고 생각합니다. 이를 통해 소프트웨어 팀은 실제 문제를 파악하는 데 필요한 세분성을 유지하면서도 문제와 주요 병목 지점을 한눈에 빠르게 확인할 수 있습니다. Akita는 코드 변경이나 대시보드 구축 없이도 지연 시간 지표와 오류를 자동으로 모니터링하는 완전한 플러그앤플레이 방식의 메트릭 솔루션으로 모니터링 과정의 정보 과부하 문제를 해결합니다. 이 솔루션은 API 트래픽을 수동적으로 관찰하고 자동으로 분석하여 엔드포인트별 모니터링과 알림을 제공합니다. 무엇보다도 사용자는 가입 후 15분 이내에 바로 시작할 수 있습니다.

Akita의 NGINX Plus 인증 모듈 소개

이제 NGINX 사용자가 이용할 수 있는 Akita 모듈을 소개하게 되어 기쁩니다. NGINX를 웹 애플리케이션 서버, 리버스 프록시 또는 API 게이트웨이로 사용하고 있다면 이제 API 트래픽을 Akita로 전송하여 분석할 수 있습니다. 무료 Akita 계정에 가입하고, Akita 모듈과 에이전트를 설치한 다음, NGINX 구성 파일을 약간 수정하면 됩니다.

몇 분 안에 Akita 콘솔로 이동하여 API 엔드포인트와 속도가 느린 부분, 오류가 발생하는 부분을 확인할 수 있습니다.

Akita 콘솔 개요

Akita의 NGINX Plus 인증 모듈은 기존 NGINX 환경의 확장 기능으로서 NGINX 사용자에게 Akita의 다양한 이점을 제공합니다. Akita는 HTTP 요청에서 트래픽을 캡처하고 지연 시간과 오류를 측정하는 동시에, 사전 구축된 대시보드를 통해 프로덕션 환경에서 어떤 일이 일어나고 있는지 보여줍니다.

Akita의 NGINX Plus 인증 모듈 작동 방식

이제 모듈의 기능과 이 모듈이 어느 단계에서 작동하는지 자세히 살펴보겠습니다. 먼저 요청은 NGINX에서 여러 ‘단계’를 거쳐 처리됩니다. 네트워크에서 요청을 읽는 것으로 시작해 재작성 및 액세스 제어 검사를 거친 후, 응답과 로그 항목을 생성하는 것으로 끝납니다. Akita의 NGINX Plus Certified Module은 이 처리 과정의 후반부(콘텐츠 처리 전 단계, 즉 헤더 재작성과 같은 기능이 적용된 후)에 개입하므로 애플리케이션이 수신하는 형태와 가장 유사한 요청을 확인할 수 있습니다. Akita는 NGINX 구성의 서버 및 위치 설정을 기준으로 수신되는 각 요청이 모니터링 대상으로 지정되었는지 확인합니다.

참고: 다른 NGINX 기능 및 모듈과 마찬가지로, 웹 서비스의 일부에만 Akita를 활성화하거나 NGINX가 제공하는 모든 항목에 기본적으로 적용할 수 있습니다.

다음 단계에서 모듈은 요청 본문을 기록하고, 요청이 완전히 수신되는 즉시 Akita 에이전트로 전송합니다. 동일한 데이터가 애플리케이션과 Akita 에이전트 양쪽에 동시에 전달된다는 점에서 이 동작은 ngx_http_mirror 모듈과 유사합니다.

NGINX 또는 업스트림 서버에서 응답이 준비되면 Akita 모듈은 응답이 클라이언트로 스트리밍되는 동안 해당 응답을 기록합니다(최대 1MB). 이 버퍼링으로 인해 응답이 지연되지는 않습니다. 버퍼링은 응답 본문의 각 청크가 준비되는 즉시 처리할 수 있는 NGINX의 ‘콘텐츠 필터’에서 이루어집니다.

서버 응답 시간이 확인되고 응답이 성공적이면 해당 응답이 Akita 에이전트로 미러링됩니다. 에이전트는 요청과 응답을 서로 연결한 다음 요청 및 응답 본문의 콘텐츠를 파싱합니다. 이 데이터는 분석을 위해 Akita로 전송되기 전에 에이전트에서 로컬로 난독화됩니다. 즉, Akita는 API 트래픽의 구조는 볼 수 있지만 사용자에게 전송되거나 사용자가 전송한 구체적인 값은 볼 수 없습니다.

Akita의 NGINX Plus 인증 모듈은 이 애플리케이션 트래픽 추적을 기반으로 엔드포인트를 자동으로 추론하여 탐색 및 다운로드가 가능한 API 모델을 구축하고 지연 시간과 오류 정보를 자동으로 표시합니다. 또한 엔드포인트별 오류 발생률, 특정 엔드포인트의 높은 지연 시간, 예상보다 많은 호출량에 대한 알림을 설정할 수 있습니다.

각 엔드포인트에 대해 Akita의 NGINX Plus Certified Module을 사용하면 다음 정보를 확인할 수 있습니다:

  • API 호출 수
  • HTTP 응답 코드 분포
  • 서버가 응답하는 데 걸린 시간

Akita의 NGINX Plus 인증 모듈 설정에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Akita의 NGINX Plus 인증 모듈 시작하기

Akita는 현재 오픈 베타로 제공되고 있습니다. 베타에 가입하면 30분 이내에 결과를 확인할 수 있습니다.


공유
태그: API, F5 NGINX, News

관련 블로그 게시물

시청하기: 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에게서 알아보세요.