Akita 의 NGINX Plus 인증 모듈을 사용하여 API Endpoint 문제 수정

운영 서비스를 담당하고 있고 사용자가 많은 경우, 고객이 문제를 먼저 발견하는 고통을 이미 경험하셨을 것입니다. Akita 에서는 이 문제를 해결하고자 새로운 NGINX Plus 인증 모듈을 개발했습니다.

이 블로그 포스트에서는 로그를 축소하는 이유, 시스템 전체에서 문제를 빠르게 찾고 해결하는 방법, 그리고 새로운 Akita 모듈이 NGINX 사용자에게 이 기능을 쉽게 제공하는 방법과 같은 모듈의 주요 측면을 다룰 것입니다.

목차

1. 로그에서 API Endpoint로 축소
2. Akita 의 NGINX Plus 인증 모듈 소개
3. Akita 의 NGINX Plus 인증 모듈 작동 방식

1. 로그에서 API Endpoint로 축소

오늘날, 수많은 개발자들은 고객이 사실상 자신들의 모니터링 시스템이 된 불운한 상황에 처해 있습니다.

소프트웨어팀이 오류를 기록하지 않는다는 것은 아닙니다. 예를 들어, 리버스 프록시로 NGINX를 사용하는 경우, NGINX 로그에는 타임스탬프, 요청 길이 및 처리 시간, 응답 상태 코드와 같은 다양한 정보가 포함됩니다.
시간과 인내심이 있다면, 정보는 로그에서 찾을 수 있을 겁니다.

그러나 다양한 요청과 응답이 있는 시스템에서는 로그의 바다에서 길을 잃기 쉽습니다! 로그 위에 대시보드나 다른 유형의 도구를 미리 설정하지 않은 경우, 잠재적인 문제와 그 원인을 식별하기 위해 수천 개, 아니면 수백만 개의 로그 라인을 헤매게 될 수 있습니다.
그러나 적절한 대시보드 및 모니터링 방법을 설정하는 것은 몇 주, 몇 달 또는 심지어 분기에 걸칠 수 있습니다. 그리고 이는 종종 코드와 함께 업데이트되어야 합니다.

Akita 에서는 로그에서 API Endpoint로 확대하는 것이 중요하다고 믿습니다.
이를 통해 소프트웨어팀은 문제의 개요와 hotspot을 빠르게 파악할 수 있으면서도 실제 문제를 식별하기 위해 필요한 세분성을 유지할 수 있습니다. Akita 는 모니터링에서의 정보 과부하를 해결하기 위해 완전히 통합 가능한 메트릭 솔루션을 제공하고 있습니다.
이 솔루션은 지연 시간 메트릭과 오류를 자동으로 모니터링하며, 코드 변경이나 대시보드 구축이 필요하지 않습니다. Akita 의 솔루션은 API 트래픽을 수동으로 감시하고 자동으로 분석하여 엔드포인트별 모니터링과 경고를 제공합니다.

2. Akita 의 NGINX Plus 인증 모듈 소개

NGINX Plus 사용자를 위해 이제 Akita 모듈을 소개하게 되어 기쁩니다.

웹 애플리케이션 서버, 리버스 프록시 또는 API Gateway로 NGINX를 사용하고 있다면, 이제 API 트래픽을 Akita로 보내 분석할 수 있습니다. Akita 모듈과 에이전트를 설치하고, NGINX 구성 파일에 작은 변경을 가하면 됩니다. 몇 분 안에 Akita 콘솔로 이동하여 API Endpoint, 느린 동작, 오류를 확인할 수 있습니다.

Akita NGINX Plus Module console overview

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

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

이제 모듈의 기능과 적용되는 영역에 대해 자세히 알아보겠습니다.
먼저, 요청은 NGINX에서 여러 “단계”를 거쳐 처리됩니다. 네트워크에서 요청을 읽어오는 것으로 시작하여 Rewirte 및 Access Control 확인을 거쳐 응답 및 로그 항목 생성으로 끝납니다. Akita의 NGINX Plus 인증 모듈은 이 프로세스의 뒷부분에 자신을 삽입하여 (헤더 리라이팅과 같은 기능 이후의 사전 콘텐츠 단계에서) 애플리케이션이 수신하는 형태와 가장 유사한 형태로 요청을 볼 수 있습니다. Akita는 NGINX 구성에서 서버와 위치에 따라 모니터링을 위해 요청이 플래그로 표시되었는지 확인합니다.

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

다음 단계에서 모듈은 요청 본문을 기록하고 요청이 완전히 수신되면 Akita 에이전트로 보냅니다.
이 동작은 ngx_http_mirror 모듈과 유사하며, 동일한 데이터가 응용 프로그램과 Akita 에이전트로 동시에 전송됩니다.

NGINX 또는 상위 서버에서 응답이 준비되면 Akita 모듈은 이 응답을 기록하고 (최대 1MB까지) 클라이언트로 스트리밍되는 동안 버퍼링합니다. 이 버퍼링은 NGINX “콘텐츠 필터”에서 발생하며, 응답 본문의 각 청크가 사용 가능해질 때마다 처리할 수 있습니다.

서버 응답 시간이 알려지고 응답이 성공적인 경우, 이 응답은 Akita 에이전트로 복제됩니다.
에이전트는 요청과 응답을 매칭한 다음 요청과 응답 본문 콘텐츠를 구문 분석하려고 시도합니다. 이 데이터는 로컬에서 에이전트에 의해 가려진 후 Akita로 분석을 위해 전송됩니다.
즉, Akita는 API 트래픽의 구조를 볼 수 있지만 사용자가 보내거나 사용자에게 전송되는 구체적인 값은 볼 수 없습니다.

Akita의 NGINX Plus 인증 모듈은 응용 프로그램 트래픽의 추적에서 엔드포인트를 자동으로 추론하여 API의 탐색 가능하고 다운로드 가능한 모델을 구축하며 지연 시간 및 오류 정보를 자동으로 표시합니다.
엔드포인트별 오류 비율, 특정 엔드포인트의 높은 지연 시간 또는 예상치 못한 높은 호출량에 대한 경고를 설정할 수 있습니다.

각 엔드포인트에 대해 Akita의 NGINX Plus 인증 모듈을 통해 다음을 확인할 수 있습니다:

  • API 호출 수
  • HTTP 응답 코드 분포
  • 서버 응답 시간

Akita의 NGINX Plus 인증 모듈을 설정하는 자세한 정보는 NGINX STORE에 문의하여 알아볼 수 있습니다.

아래 뉴스레터를 구독하고 NGINX와 NGINX STORE의 최신 정보들을 빠르게 전달 받아보세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required