애플리케이션 전송 컨트롤러(ADC)는 일반적으로 애플리케이션 전송 네트워크(ADN)의 일부로 인터넷을 통한 애플리케이션 전송을 최적화하는 데 사용되는 네트워킹 디바이스입니다.
ADC는 하드웨어 어플라이언스 또는 소프트웨어 프로그램일 수 있으며 일반적으로 방화벽과 하나 이상의 애플리케이션 서버 사이에 있는 엔터프라이즈 네트워크의 비무장 영역(DMZ)에 배치됩니다. ADC는 암호화된 응답을 사용자에게 다시 보내기 전에 클라이언트 요청을 수신, 암호 해독, 유효성 검사 및 라우팅하는 역방향 프록시 역할을 합니다.
ADC는 기업이 네트워크 애플리케이션을 현대화하고, 클라이언트 시스템과 웹 서버 간의 연결을 가속화하고, 글로벌 서버 로드 밸런싱(GSLB)을 간소화하고, 최종 사용자를 위한 전반적인 애플리케이션 가용성을 높이는 데 도움이 됩니다.
애플리케이션 전송 컨트롤러의 진화는 웹 애플리케이션, 데이터 센터 및 광범위한 네트워크 관리 분야의 개발과 밀접하게 연관되어 있습니다.
1990년대 후반과 2000년대 초반, 인터넷이 상용화되고 웹 트래픽이 증가함에 따라 기업은 웹사이트와 앱이 대용량 애플리케이션 트래픽을 효율적으로 처리할 수 있는 방법이 필요했습니다. 주요 과제는 고가용성과 네트워크 복원력을 보장하기 위해 들어오는 요청을 여러 서버에 분산하는 방법을 찾는 것이었습니다.
이 문제를 해결하기 위한 1세대 디바이스는 로드 밸런서라고 불렸습니다. 처음에는 단순하게 전송 계층에서 운영되었습니다. 로드 밸런서는 들어오는 트래픽을 여러 서버에 분산하여 로드 밸런싱을 수행하고 단일 서버에 과부하가 걸리지 않도록 하는 데 중점을 두었습니다.
그러나 앱과 웹 사이트가 더욱 복잡해짐에 따라 레거시 로드 밸런서는 IP 주소 및 포트뿐만 아니라 사용자 요청 콘텐츠를 읽고 결정을 내릴 수 없다는 점에서 선호도가 떨어졌습니다. 이로 인해 개발자는 애플리케이션 계층에서 메시지 콘텐츠를 검사할 수 있는 계층 7 로드 밸런싱 솔루션으로 업그레이드하게 되었습니다.
고급 로드 밸런서는 HTTP 헤더, 쿠키 또는 특정 페이지 요청과 같은 요소를 기반으로 트래픽을 라우팅하여 세션 지속성(또는 '고정성') 및 콘텐츠 기반 라우팅과 같은 보다 정교한 트래픽 관리 전략을 용이하게 할 수 있습니다. 시간이 지남에 따라 개발자가 계속해서 기능을 추가함에 따라 이러한 로드 밸런서는 현재 ADC라고 하는 지능형 컨트롤러가 되었습니다.
최신 애플리케이션 전송 컨트롤러는 탄력적이고 가용성이 높은 IT 인프라, 특히 네트워크 데이터 센터의 필수 구성 요소입니다. 이는 클라이언트 디바이스와 백엔드 서버 간의 효율적이고 안전한 데이터 흐름을 보장하는 일련의 복잡한 프로세스와 기능을 사용하여 앱 트래픽을 관리합니다. 다음과 같은 특징이 있습니다.
ADC의 주요 기능 중 하나는 최소 연결, 라운드 로빈 및 서버 응답 시간과 같은 알고리즘을 기반으로 들어오는 트래픽을 여러 서버에 분산(로드 밸런싱)하는 것입니다. 한 서버가 오버로드되거나 오프라인 상태가 되면 ADC는 트래픽을 다른 서버로 리디렉션하여 비정상 서버로 인해 병목 현상이 발생하지 않도록 하여 네트워크 성능과 사용자 환경에 영향을 주지 않거나 최소한으로 영향을 줄여 줍니다.
또한 로드 밸런서는 세션 지속성을 유지하여 사용자의 세션 데이터가 캐시되고 상호 작용하는 동안 동일한 서버에 유지되도록 합니다.
로드 밸런서용 로드 밸런싱이라고도 하는 글로벌 서버 로드 밸런싱(GSLB)을 사용하면 ADC는 서로 다른 지리적 위치에 있는 여러 서버에 요청을 분산하여 사용자가 가장 가깝거나 성능이 가장 좋은 데이터 센터로 자동으로 연결되도록 할 수 있습니다.
전송 계층 보안(TLS) 및 보안 소켓 계층(SSL) 처리는 웹 서버의 리소스에 부담을 줄 수 있습니다. SSL 오프로딩을 사용하면 ADC가 백엔드 서버를 대체하고 SSL 또는 TLS 엔드포인트로서 암호화 및 암호 해독을 관리하여 앱 데이터 처리를 위한 CPU 리소스를 확보하고 서버 성능을 개선할 수 있습니다.
ADC는 풀링 또는 재사용을 통해 수많은 클라이언트 측 TCP 연결을 적은 수의 서버 측 연결로 통합하는 TCP 멀티플렉싱 프로세스를 사용하여 네트워크 연결을 최적화합니다. ADC는 영구 서버 연결 세트를 사용하여 이러한 연결을 통해 클라이언트 요청을 동적으로 멀티플렉싱하여 서버 오버헤드를 줄일 수 있습니다.
ADC는 자주 요청되는 콘텐츠(예: 이미지, 비디오, 웹사이트)를 사용자에게 더 가까운 곳에 캐시할 수 있으므로 웹 서버에서 해당 콘텐츠를 반복적으로 생성하거나 가져올 필요가 없습니다. 이러한 캐싱 정책을 사용하면 원본 서버의 처리 부하를 크게 줄이고 최종 사용자에게 제공되는 서버 응답 시간을 개선할 수 있습니다.
ADC는 웹 콘텐츠(예: HTML, CSS, JavaScript 등)를 클라이언트로 전송하기 전에 압축하여 대역폭 수요를 줄이고 특히 인터넷 연결 속도가 느린 사용자의 콘텐츠 전송 속도를 높입니다.
ADC에는 들어오는 트래픽에서 악성 패턴을 검사하고 잠재적으로 유해한 요청을 차단하여 SQL 삽입, 쿠키 중독, 교차 사이트 스크립팅(XSS) 및 기타 애플리케이션 계층 공격과 같은 일반적인 보안 취약성으로부터 보호하는 DNS 애플리케이션 방화벽 및 웹 애플리케이션 방화벽(WAF)이 포함되는 경우가 많습니다.
ADC는 악성 트래픽이 애플리케이션 인프라에 과부하를 일으키기 전에 이를 걸러내어 분산 서비스 거부(DDoS) 공격으로부터 앱을 보호하는 데도 도움이 됩니다. 앱별 액세스 제어, 속도 제한 프로토콜 및 봇 관리 기능을 갖춘 ADC는 제로 트러스트 아키텍처를 구축하고 네트워크 남용 및 공격을 방지하는 데 중요한 역할을 합니다.
ADC는 트래픽의 우선순위를 지정하여 트래픽이 가장 많은 시간대에도 중요한 애플리케이션이 필요한 대역폭을 확보할 수 있도록 하여 시간에 민감한 미션 크리티컬 데이터가 네트워크를 더 빠르게 통과할 수 있도록 합니다. 또한 서비스 품질(QoS) 정책을 사용하여 대역폭을 관리하고 네트워크 혼잡을 방지하는 데 도움을 줄 수 있습니다.
ADC는 디렉터리 서비스(예: 온프레미스 Active Directory)와 상호 작용하여 사용자 앱 액세스를 제어하고 클라이언트 인증 및 권한 부여 확인을 위한 중앙 인증 지점을 제공할 수 있습니다. 또한 네트워크 보안 강화를 위해 다중 인증(MFA) 및 싱글사인온(SSO)과 같은 최신 프로토콜도 지원합니다.
클라우드 네이티브 애플리케이션으로의 전환으로 인해 애플리케이션 전송 컨트롤러는 컨테이너화된 환경과 마이크로서비스 아키텍처를 지원하도록 발전해야 했습니다. 하드웨어 및 소프트웨어 기반 ADC는 여전히 여러 면에서 효과적이지만, 기존의 ADC는 모놀리식 앱용으로 설계되었기 때문에 오늘날 클라우드 네이티브 애플리케이션의 동적 특성을 따라잡는 데 어려움을 겪는 경우가 많습니다.
이 문제를 해결하기 위해 Citrix, VMware, Amazon Web Services(AWS), Microsoft Azure 및 IBM과 같은 서비스 제공업체는 고급 민첩성, 확장성 및 자동화 기능을 제공하는 클라우드 네이티브 ADC(IaaS, PaaS 및 SaaS 형태)를 개발했습니다. 최신 ADC는 클라우드 제공업체 API 및 컨테이너 오케스트레이션 툴(예: Kubernetes)과 원활하게 통합되어 우수한 서비스 검색, 자동 확장 및 트래픽 관리 기능을 제공하도록 설계되었습니다.
애플리케이션 전송 컨트롤러는 기본 로드 밸런서로 시작되었지만, IT 인프라 및 애플리케이션 전송 솔루션의 동적 요구 사항을 충족하기 위해 지속적으로 발전해 왔습니다. 오늘날의 ADC는 복잡한 멀티클라우드 환경에서 애플리케이션 성능, 보안, 전송 최적화를 제공하는 다면적인 애플리케이션 전송 플랫폼입니다.
대규모의 복잡하거나 분산된 Content Delivery Network(CDN)를 운영하는 모든 기업은 ADC를 사용하여 네트워크 애플리케이션의 일관된 가용성과 우수한 성능을 보장할 수 있습니다.
ADC는 다음을 통해 기업에 도움이 될 수 있습니다.
ADC는 네트워크 트래픽을 네트워크 전반의 데이터 센터에 있는 서버 클러스터로 리디렉션할 수 있습니다. 특히 다른 ADC와 협력하여 트래픽이 인터넷을 통과하는 경로를 최적화함으로써 각 ADC가 클라이언트에서 가장 가까운 데이터 센터로 요청을 라우팅하고 지연 시간과 왕복 시간을 최소화할 수 있도록 합니다.
ADC는 타임아웃과 버퍼 크기를 적절히 조정하여 빠르고 느린 클라이언트를 처리합니다. 또한 컨트롤러는 연결을 종료하여 불필요한 리소스를 확보하고 연결을 멀티플렉스하여 네트워크 효율성을 높일 수 있습니다.
ADC는 앱 서버의 실시간 상태를 지속적으로 모니터링하여 트래픽이 응답성이 높고 사용 가능한 서버로만 라우팅되도록 합니다. 이는 웹 서버를 ping하고, TCP 연결을 설정하고, 앱 수준 요청을 통해 서버가 최적으로 작동하는지 확인할 수 있습니다.
서버에 장애가 발생하거나 최적이 아닌 상태로 작동하기 시작하면 ADC는 트래픽을 다른 서버로 리디렉션하고 서버 재시작 및 기타 복구 작업을 시작할 수도 있습니다(서버가 그렇게 구성되었다는 가정 하에).
멀티테넌시 설계를 사용하면 조직 내의 여러 그룹(DevOps, 마케팅 및 영업 또는 고객 서비스, 재고 및 결제와 같은 특정 애플리케이션 팀)이 동일한 애플리케이션 인프라를 공유할 수 있습니다. 가상이든 물리적이든 더 적은 수의 디바이스에 더 많은 서비스를 통합하면 조직이 네트워크 민첩성을 높이고 관리, 확보 및 지속적인 지원과 관련된 비용을 절감할 수 있습니다.
ADC는 보다 프로그래밍 가능하고 SDN 아키텍처와 더 쉽게 통합될 수 있도록 발전했으며, SDN 아키텍처는 네트워크의 제어 계층을 데이터 계층에서 분리하여 보다 중앙 집중화되고 유연한 리소스 관리를 제공합니다. 이제 소프트웨어 컨트롤러를 사용하여 ADC를 동적으로 구성하고 관리할 수 있으므로 네트워크 트래픽 변동 및 앱 수요에 보다 민첩하게 대응할 수 있습니다.
애플리케이션 전송 컨트롤러는 특히 대용량 웹 트래픽을 처리하거나 미션 크리티컬 애플리케이션을 호스팅하거나 높은 수준의 데이터 보안이 필요한 기업의 경우 트래픽 라우팅을 최적화하고 네트워크 가용성을 극대화하는 데 도움이 됩니다.
ADC는 기업에 다음과 같은 이점을 제공합니다.
ADC는 광범위한 메트릭(예: 트래픽 볼륨, 서버 상태 및 보안 이벤트)에 대한 데이터를 수집하여 기업이 네트워크 기능에 대한 인사이트를 얻는 데 도움이 될 수 있습니다.
ADC는 콘텐츠 스위칭과 같은 다양한 기술을 사용하여 데이터를 압축, 재활용 및 캐시하여 네트워크 앱 및 웹 사이트를 가속화합니다.
ADC는 사용 가능한 애플리케이션 서비스를 자동으로 확장하여 특히 지연 시간이 긴 네트워크와 모바일 네트워크에서 고성능 트래픽 라우팅을 보장할 수 있습니다.
ADC는 장애 조치 기능을 제공하여 비즈니스가 계속 운영되고 서버에 장애가 발생할 경우 사용자가 지연을 최소화할 수 있도록 지원합니다. ADC는 서버 간에 사용자 세션을 복제하고 동기화하여 서버가 오프라인 상태가 되면 실행 책임이 세션 복제본으로 넘어갈 수 있도록 합니다.
온프레미스, 클라우드 또는 메인프레임의 모든 애플리케이션에 대한 소프트웨어 제공을 자동화합니다.
DevOps 소프트웨어 및 도구를 사용하여 여러 장치 및 환경에서 클라우드 네이티브 앱을 구축, 배포 및 관리합니다.
IBM Cloud 컨설팅 서비스를 통해 새로운 역량을 개발하고 비즈니스 민첩성을 향상하세요. 하이브리드 클라우드 전략 및 전문가 파트너십을 통해 솔루션을 공동으로 개발하고, 디지털 혁신을 가속화하고, 성능을 최적화하는 방법을 알아보세요.