Application Delivery Platform(ADP) NGINX편

애플리케이션 전달은 빠르게 변화하고 있습니다. TechTarget은 “로드 밸런서 에서 ‘ Application Delivery Platform ‘까지: 애플리케이션 전달에 대한 최신 정보”라는 기사를 게시했습니다.

이 포스트에서 Nemertes Research의 John Burke는 애플리케이션을 빠르고 항상 사용 가능하게 만드는 기술이 어떻게 진화했는지를 강조하고 있습니다.

  • 첫 번째, 로드 밸런서 – 펌웨어에 코드가 포함된 전용 하드웨어 디바이스
  • 그 다음 Application Delivery Controller(ADC) – SSL offload, proxy 및 reverse proxy과 같은 더 많은 기능을 갖춘 특별히 제작된 하드웨어 디바이스
  • 오늘날, Application Delivery Platform(ADP)은 다양한 서비스를 제공하는 유연하고 프로그래밍 가능한 소프트웨어 기반의 제품입니다.

TechTarget 기사에서 Burke는 Application Delivery Platform 가 오늘날의 애플리케이션 제공 요구 사항을 충족하는 데 필요한 네 가지 주요 특성을 설명합니다.

NGINX도 이와 같은 진화를 겪었으며, 소프트웨어를 특별히 설계하여 해당 요구 사항을 초월하도록 하였습니다. 아래에는 NGINX가 현대 웹을 위한 Application Delivery Platform 로서 어떻게 작동하는지에 대한 간단한 요약이 있습니다.

목차

1. Flexible Form Factor
2. Scalability
3. Manageability
4. Extensibility
5. Application Delivery Platform – Market Changes
6. Application Delivery Platform 결론

1. Flexible Form Factor

초기 로드 밸런서에는 소프트웨어와 하드웨어가 끊임없이 결합되었습니다. 하드웨어 ADC 공급업체들은 이러한 접근 방식을 옹호하기 위해 암호 모듈과 같은 특수한 하드웨어 구성 요소가 소프트웨어만으로 이루어진 해결책보다 우수한 성능을 발휘한다는 주장을 흔히 내세웠습니다. 이는 ADC가 처음으로 널리 사용될 당시에는 사실일 수 있었지만, 그 이후로 프로세서 속도는 현저히 향상되었습니다. 현대적인 Application Delivery Platform 는 하드웨어에 완전히 독립적으로 작동하며, 성능이나 기능에 있어서 눈에 띄는 손실이 없습니다.

NGINX가 판매용 하드웨어에서 소프트웨어 애플리케이션 전달 솔루션으로 실행될 때, 비용의 일부로 하드웨어 ADC와 최소한 같은 성능을 발휘합니다. 사실, 기능을 추가하는 것이 더 쉬우므로, 소프트웨어 ADC는 종종 기능 면에서 앞서 있을 수 있습니다.

Burke에 따르면, 소프트웨어의 또 다른 장점은 Application Delivery Platform 가 “워크로드가 이동되는 경우 워크로드를 따를 수 있다”는 것입니다. NGINX와 NGINX Plus는 배포에 대한 궁극적인 유연성을 제공합니다. 동일한 소프트웨어가 상용 하드웨어 및 클라우드 배포에서 실행됩니다. AWS Elastic Load Balancer와 같은 클라우드 네이티브 서비스 대신에 사용될 수 있습니다. NGINX가 여러 플랫폼 간에 로드 밸런싱을 처리하면 애플리케이션 클라우드 간에 이동하거나 물리적 서버에서 클라우드로 이동하는 등의 작업을 수행할 때 로드 밸런싱 접근 방식을 변경할 필요가 없습니다. NGINX를 사용하면 팀이 독점 ADC 소프트웨어의 온프레미스 버전과 클라우드 버전 간의 차이점을 추적할 필요 없이 “한 번 배우고 어디서든 사용”할 수 있습니다.

2. Scalability

현재의 Application Delivery Platform 는 다양한 종류의 클라이언트로부터의 대량 트래픽과 백엔드 서비스 간의 증가하는 “east-west” 트래픽을 처리해야 합니다. (서버 간 트래픽은 east-west로 알려져 있으며, client-server 트래픽은 north-south 로 알려져 있습니다. 이는 quora.com에 따른 것입니다) 이러한 상황에 대처하기 위해 Application Delivery Platform 를 수직으로 확장(더 큰 장비 구입), 수평으로 확장(더 많은 장비 구입), 또는 일반적으로는 둘 다 확장해야 할 수도 있습니다.

NGINX는 공유 메모리 기반 아키텍처를 사용하여 다중 프로세서 환경을 기본적으로 지원합니다. NGINX는 각 코어마다 “worker process”를 실행하여 가장 수직으로 확장된 하드웨어에도 완전히 활용할 수 있습니다. NGINX는 Owen Garrett의 NGINX 성능 확장을 위한 설계 방법에 대한 블로그 글에서 자세한 내용을 확인할 수 있습니다. NGINX는 세션 지속성, 캐싱, 속도 제한과 같은 공유 메모리 코어 기능을 다중 프로세서 아키텍처에서 제공합니다.

Application Delivery Platform NGINX

InkaBinka의 이미지 제공

확장성을 가능하게 하는 첫 번째 단계는 일반적으로 NGINX를 리버스 프록시 서버로 배포하는 것입니다. NGINX를 전면에 배치하면 애플리케이션 서버가 웹 트래픽에 직접 노출되지 않고 버퍼링되며 필요에 따라 더 많은 서버를 배포할 수 있습니다. 일반적인 응답은 NGINX에 의해 캐시되어 애플리케이션 서버의 부하를 줄일 수 있습니다.

NGINX가 적용되면 수직으로 (더 큰 장비 또는 인스턴스를 사용)와 수평으로 (여러 물리적 디바이스, 가상 인스턴스 또는 클라우드 인스턴스 간에 부하를 공유)확장하는 것이 쉽습니다. 이것이 NGINX가 세계에서 가장 바쁜 사이트와 웹 애플리케이션에서 많이 사용되는 이유입니다.

3. Manageability

과거의 관리 방식은 각 공급업체가 자사의 로드 밸런서에서만 작동하는 특수화된 소프트웨어를 제공하고, 그 뒤에 있는 각각의 물리적 서버에 대해 별도의 관리 뷰를 제공하는 것이었습니다. 새로운 관리 방식은 오픈 소스 도구를 물리적 디바이스, 가상 인스턴스 및 클라우드 인스턴스 전반에 유연하게 사용하는 것입니다.

NGINX Plus는 고급 모니터링 및 관리 도구를 포함하고 있으며, Burke가 언급한 대로 NGINX 소프트웨어와 모든 업스트림 디바이스에 대한 단일 인터페이스를 제공합니다. 이를 통해 NGINX Plus는 모든 관련 요소를 한 곳에서 모니터링하고 관리할 수 있는 환경을 제공합니다.

Application Delivery Platform NGINX Plus 대시보드는 인프라 모니터링 및 관리를 위한 자세한 통계를 제공합니다.

마찬가지로 NGINX는 Ansible, Chef 및 Puppet과 쉽게 통합되어 구성 관리에 사용될 수 있습니다. 이러한 도구들은 운영 및 스테이징 환경에서 NGINX 인스턴스의 구성을 완전히 관리하는 데 사용될 수 있습니다. 이러한 도구들을 사용하면 NGINX와 애플리케이션 인프라의 다른 구성 요소를 배포하고 구성하는데 공통 인터페이스를 얻을 수 있습니다.

NGINX Plus는 JSON 형식으로 live activity monitoring을 제공하여, 요청 수/초 및 대역폭 사용량과 같은 중요한 통계를 원하는 도구로 쉽게 내보낼 수 있습니다. AppDynamics, Data DogNew Relic을 위한 사전 구축된 플러그인도 제공됩니다. 구성과 마찬가지로 NGINX Plus의 사용은 NGINX와 애플리케이션 인프라의 다른 구성 요소와 함께 공통 모니터링 인터페이스를 제공합니다.

NGINX는 Docker, Kubernetes 및 기타 고급 컨테이너화 및 오케스트레이션 플랫폼과도 작동합니다. NGINX는 Docker Hub에서 가장 인기 있는 앱 중 하나입니다.

4. Extensibility

Application Delivery Platform 는 광범위한 클라이언트와 함께 작업하고 광범위한 서비스를 제공해야 하며 함께 웹 애플리케이션을 호스팅하고 전달하는 데 필수적인 서버 및 서비스의 조합에 강력한 기여를 해야 합니다.

특히 NGINX Plus는 로드 밸런싱뿐만 아니라 정적 파일에 대한 캐싱, SSL/TLS termination 및 HTTP/2 termination, 클라이언트의 IP 지리적 위치, 보안 개선, 관리 기능 등을 포함한 환전한 Application Delivery Platform 의 모든 기능을 제공합니다.

NGINX의 IP 지리적 위치 기능은 Application Delivery Platform 에서 실제로 큰 장점입니다. NGINX는 다른 국가의 클라이언트를 해당 언어에 적합한 사이트로 라우팅할 수 있습니다. 프랑스 사용자는 자동으로 프랑스어 사이트로 이동하고, 미국 사용자는 미국 영어 사이트로 이동하게 됩니다. 이 기능을 활용하여 특정 국가나 위치에서의 사용자를 차단할 수도 있습니다. 예를 들어 수출이나 저작권 제한으로 인해 자원을 자신의 국가 외의 사용자에게 제공하는 것이 금지된 경우에 사용할 수 있습니다.

NGINX Plus는 HTTP 기반 API Gateway 서비스를 제공하며, 이는 해당 서비스를 제공하는 서버의 용량에 맞추어 API 호출을 속도 제한할 수 있는 기능과 정적 파일에 대한 캐싱 지원을 포함합니다.

5. Application Delivery Platform – Market Changes

Burke의 기사의 주제는 IT 전문가들이 기능 범위가 제한된 하드웨어 기반 로드 밸런서에서 다양한 능력을 갖춘 소프트웨어 기반 Application Delivery Platform 로 이동하고 있다는 것입니다. Gartner의 최근 보고서인 “Application Delivery Controller Magic Quadrant“는 하드웨어에서 소프트웨어로의 이동이 로드 밸런싱 시장에 어떤 영향을 미치고 있는지 보여줍니다. F5와 Citrix와 같은 기기 제조업체에게는 성장이 둔화되고 있으며, 흥미로운 것은 작고 빠르게 움직이는 기업들의 앱 중심(즉, DevOps 중심) 세계에 있습니다. 이에 대한 인식을 반영하여 NGINX는 Gartner의 “Cool Vendors”중 하나로 웹 스케일 플랫폼에 선정되었습니다.

DevOps 구매자 및 마이크로서비스로 전환하는 사용자들은 로드 밸런싱이 다양한 능력과 서비스의 “Swiss Army” 나이프의 일부로 제공되는 소프트웨어 기반 접근 방식을 선호합니다. 더 중요한 것은 이것이 공개 및 사설 클라우드 인프라로의 이동에 절대적으로 중요하다는 것입니다. 애플리케이션 전달을 소프트웨어로 정의하는 것은 전통적인 하드웨어 중심적인 접근 방식이 제한하는 방식으로 시장 변화에 적응할 수 있는 유연성을 제공합니다.

6. Application Delivery Platform 결론

Burke의 기사는 유행어들의 다양성을 논리적이고 진화적인 진행 과정으로 조직화하는 데 도움을 줍니다. 로드 밸런서에서 애플리케이션 전달 컨트롤러(ADC)로, 그리고 지금은 Application Delivery Platform(ADP)으로 발전해왔습니다. Application Delivery Platform 에서 찾아야 한 주요 속성은 유연한 형태 요소, 확장성, 관리 용이성 및 확장성입니다.

NGINX는 고급 Application Delivery Platform 에 대한 기사의 요구 사항을 충족하며, 캐싱 기능과 SSL/TLS 및 HTTP/2 termination 기능을 갖추고 있습니다. 이러한 기능과 기타 기능은 “NGINX 애플리케이션 성능 향상을 위한 10가지 팁“라는 포괄적인 블로그 글에서 설명되어 있습니다. 이 글에서는 로드 밸런싱, 캐싱, 모니터링을 포함하여 웹 애플리케이션의 성능을 높이기 위한 핵심 개념과 방법에 대해 논의합니다.

NGINX Plus는 광범위한 로드 밸런싱 기능 및 모니터링 기능과 더불어 복잡한 멀티벤더 IT 환경에서 높은 가치를 제공하는 지원 및 서비스를 제공합니다.

NGINX 소프트웨어는 사설 환경에서 사용될 수 있으며, NGINX는 세계에서 가장 바쁜 100만 개 웹사이트에서 1위 서버로 사용되고 있습니다. 또한 NGINX는 아마존 웹 서비스에서 주요 웹 서버로 사용되고 있습니다. NGINX가 애플리케이션 전달 솔루션의 일부가 되면. 사설 서버, 가상 머신, 사설 클라우드, 공개 클라우드에서 재사용될 수 있습니다.

Burke의 분석은 첫 번째 하드웨어 기반 로드 밸런서부터 현재의 고능력 및 유연성을 갖춘 소프트웨어 및 서비스 기반 Application Delivery Platform 까지의 개발의 전반적인 흐름을 포착하고 있습니다. 이를 귀사의 애플리케이션 포트폴리오를 계속 확장하고 깊게 파고들며 귀사의 요구 사항을 평가하는 데에 프레임워크로서 권장합니다.

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.

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