NGINX Agent 를 사용한 관찰 가능성 및 원격 구성

NGINX는 NGINX 오픈소스 프로젝트를 관리하고 커뮤니티와 상호작용 하는 방식을 현대화 하기로 약속했습니다.
이러한 약속의 일환으로 NGINX는 NGINX Agent 의 예정된 릴리스를 발표했습니다.

NGINX Agent 는 동반 소프트웨어로 개별 NGINX 배포를 관리하며, 관측성과 구성 API를 제공합니다.
오늘, NGINX는 Apache 2 라이선스로 NGINX Agent 를 공개함으로써 이 약속을 이행하는 데 자부심을 가집니다.

NGINX의 비전은 애플리케이션 배포와 관리의 모든 측면으로 확장되는 생태계를 구축하는 것입니다.
NGINX Agent 는 그 비전에서 핵심적인 역할을 담당하여 개발 및 플랫폼 운영팀에게 NGINX 인스턴스를 구성, 모니터링 및 관리하기 위한 세분화된 제어 및 추가 기능을 제공합니다.

목차

1. NGINX Agent 기능
2. NGINX Agent 작동 방식
3. NGINX Agent 오픈소스화 이유
 3-1. NGINX 오픈소스 보완
 3-2. 투명성
 3-3. 개발자 친화적
4. NGINX Agent 시작하기

1. NGINX Agent 기능

NGINX Agent는 NGINX 오픈소스 또는 NGINX Plus 인스턴스와 함께 배포할 수 있는 가벼운 데몬입니다.
중요한 점은 NGINX Agent가 NGINX 오픈소스에서 제공하지 않는 여러 기능을 사용할 수 있도록 해줍니다.

  • NGINX Agent는 NGINX 오픈소스 및 NGINX Plus 인스턴스의 보고 및 모니터링 제공
    확장된 메트릭 세트를 사용하여 인프라 문제를 감지, 조사 및 수정할 수 있도록 하여 NGINX 오픈소스 및 NGINX Plus 인스턴스에 대한 더 넓은 가시성을 제공합니다. 운영 체제 메트릭과 함께, NGINX Agent는 NGINX 액세스 및 에러 로그에서 자동으로 메트릭을 수집합니다. NGINX Plus 인스턴스의 경우, RESTful NGINX Plus API에서도 메트릭을 수집합니다. NGINX Agent는 또한 NGINX 인스턴스에서 발생하는 주요 이벤트에 대한 보고도 제공합니다. 이 결과는 Prometheus 형식으로 내보내져 Grafana와 같은 타사 도구를 사용하여 시각화할 수 있는 NGINX 인스턴스의 성능, 상태 및 사용량에 대한 상세한 그림을 제공합니다.
  • 원격 NGINX 구성 관리
    NGINX Agent는 HTTP (REST) 및 HTTP/2 (gRPC) 인터페이스를 제공하여 NGINX 구성을 원격으로 NGINX 인스턴스에 적용할 수 있습니다. 또한 API를 통해 인스턴스 구성을 원격으로 관리할 수도 있습니다. NGINX 구성의 자동화 및 원격 배포는 특히 다수의 인스턴스를 관리할 때 운영 부담을 크게 줄이고 시간을 절약하는 데 도움이 됩니다.
  • Management Plane 통합
    비즈니스가 확장되면 인프라 배포 및 관리가 복잡해집니다. 우리는 NGINX 커뮤니티가 확장 및 전달 도전 과제를 공유하는 데 주저하지 않는다는 사실을 기쁘게 생각합니다. NGINX Agent 로드맵은 이러한 도전 과제를 해결하기 위해 계획되었습니다. NGINX Agent를 사용하면 NGINX 인스턴스를 제어하고 관리하기 위한 고급 메커니즘을 개발할 수 있으며, NGINX 인스턴스와 상호작용하는 자체 관리 솔루션과 NGINX Management Suite와 함께 엔터프라이즈급 데이터 플레인 관리 기능을 사용할 수 있습니다.

2. NGINX Agent 작동 방식

NGINX Agent 는 NGINX 인스턴스와 함께 실행되며, Control Plane과 Management Plane에서 인스턴스와 원격 상호작용을 위해 REST 및 gRPC 인터페이스를 노출시킵니다.
이를 통해 고급 모니터링 및 자동화 기능을 구축할 수 있습니다.

Diagram showing how NGINX Agent is colocated on the data plane with NGINX instances and communicates with a server on the control/management plane for metrics collection and configuration management

3. NGINX Agent 오픈소스화 이유

NGINX Agent 를 오픈소스로 개발하는 데에는 몇 가지 목표가 있습니다.

3-1. NGINX 오픈소스 보완

NGINX Agent를 오픈소스화함으로써, 우리는 NGINX 오픈소스를 더 다양한 사용 사례와 유연성으로 활용할 수 있도록 커뮤니티에 권한을 부여하고자 합니다. NGINX Agent 를 오픈소스로 공개함으로써, NGINX 오픈소스에서 현재의 기능적인 빈 곳을 메우고, 커뮤니티에 기능을 더 빠르게 제공할 수 있는 완전히 새로운 방법을 개척할 수 있게 되었습니다.
NGINX Agent는 NGINX 오픈소스 인스턴스와 함께 설치하여 REST 또는 gRPC 인터페이스를 사용하여 NGINX 구성을 관리하거나, NGINX 이벤트와 메트릭에서 정교한 시각화를 개발할 수 있도록 지원합니다.

3-2. 투명성

NGINX는 우수한 오픈소스 소프트웨어를 커뮤니티에 제공하고, 비즈니스를 지원하기 위해 높은 확장성과 견고한 인프라를 구축할 수 있도록 도와주는 데 자부심을 가지고 있습니다.
이러한 성공의 핵심 요소 중 하나는 오픈소스 커뮤니티가 NGINX 소프트웨어에 대해 가지는 신뢰입니다.
NGINX Agent의 설계 철학은 NGINX 인프라에서 데이터가 어떻게 처리되는 지에 대해 완전히 개방적이고 투명하게 되어 있다는 것입니다.
우리는 커뮤니티와 완전히 투명하게 소통하며, 여러분에게 기쁨을 주는 기능을 제공하는 것이 우리의 오픈소스 비전을 실현하는 데 중요한 역할을 한다고 생각합니다.

3-3. 개발자 친화적

NGINX가 NGINX Sprint에서 한 약속 중 하나는 개발자 경험을 최적화하는 것입니다. NGINX Agent는 NGINX 제품의 가치를 신속하게 누리도록 도와주는 제어 및 기능을 제공함으로써 NGINX를 더 많은 사용자에게 매력적으로 만들기를 희망합니다. NGINX Agent는 개발자가 환경에서 NGINX를 효율적으로 관리, 배포 및 구성할 수 있는 세분화된 제어 기능을 제공합니다.
NGINX의 목표는 개발자가 제어 및 관리 계층 또는 자체 제품과 통합하여 NGINX의 제품군과 상호작용할 수 있도록 하여 개발자가 편한 환경에서 사용할 수 있도록 하는 것입니다.

4. NGINX Agent 시작하기

NGINX Agent는 NGINX Management Suite Instance Manager에서 환경 내의 모든 NGINX 인스턴스를 찾기 위해 사용되는 에이전트로 시작되었습니다.
이 기능을 계속 제공할 것이지만, 오픈소스로 공개함으로써 더 넓은 NGINX 오픈소스 커뮤니티에 유용한 기능을 제공하기 위해 독립적인 경로로 출발했습니다. 이러한 역사를 감안할 때, NGINX Agent가 성장해야 할 많은 방법이 있다고 예상되므로 GitHub의 NGINX Agent 리포지토리를 방문하여 참여하고 기여하는 방법을 알아보고 제안을 하고 문제를 보고할 수 있도록 여러분을 초대합니다.

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