Buydig, 코드 변경 없이 NET App 확장 및 보안 달성
Buydig 은 카메라, 비디오, 홈 엔터테인먼트 및 다양한 가전제품을 종합적으로 판매하는 선구적인 가전제품 소매업체입니다.
목차
1. Buydig 의 도전과제
2. 해결책 – NGINX Plus
3. Buydig 의 NGINX Plus 채택 결과
3-1. 뛰어난 퍼포먼스 확보
3-2. 강력한 구성 도구
3-3. 강화된 Buydig 보안
3-4. Health Checks를 통해 강화된 Buydig 애플리케이션
4. 결론
1. Buydig 의 도전과제
Buydig 은 빠르게 성장하는 온라인 스토어로, 매일 5만 명에 가까운 방문자가 방문하며 쇼핑 성수기에는 그 이상이 방문합니다. 사진 장비부터 컴퓨터 액세서리, 홈 엔터테인먼트 시스템에 이르기까지 다양한 가전제품을 여러 국가에서 저렴한 가격에 제공합니다.
Buydig 의 초창기인 2003년에 웹사이트는 IIS 웹 서버와 SQL Server를 Backend 데이터베이스로 사용하는 2계층 Microsoft .NET 애플리케이션으로 구축되었습니다.
하지만 시간이 지남에 따라 방문자 수가 증가하면서 이러한 아키텍처로는 트래픽을 감당할 수 없게 되었습니다.
페이지 속도가 느려지고 결국 응답이 중단되었습니다. 또한 프론트엔드 로드 밸런서와 리버스 프록시가 없는 Buydig 은 분산 서비스 거부(DDos) 공격에 취약했습니다.
“더 나은 솔루션을 찾기 시작한 것은 웹사이트에 흔히 발생하는 디도스 (DDos) 공격을 겪으면서부터였습니다.
이 공격에서는 여러 대의 컴퓨터가 동시에 Buydig 사이트의 한 페이지를 공격하도록 프로그래밍되어 있었습니다.
CPU 사용량이 증가했고 안타깝게도 사이트가 다운되었습니다. 사이트가 다시 복구되었을 때 속도가 느리고 성능이 좋지 않았습니다.
더 나은 방법을 찾아야 했기 때문에 새로운 솔루션을 찾기 시작했습니다.”라고 Buydig 의 IT 디렉터인 Charles Bender는 말합니다.
Buydig 은 구성이 쉽고, 사이트 트래픽 양에 관계없이 페이지를 빠르게 제공하고, 악성 트래픽으로부터 Backend 서버와 데이터베이스를 보호하며, 확장 가능성이 있는 failover 아키텍처를 제공하는 프론트엔드 솔루션이 필요했습니다.
다른 여러 솔루션을 사용해 보았지만 개선 효과를 보지 못한 Buydig 은 Frontend 로드 밸런서로 NGINX Plus를 검토했습니다.
“다른 솔루션으로는 필요한 성능, 보안, 확장성을 얻을 수 없었습니다. 우리가 사용해 본 다른 제품들은 모두 NGINX Plus의 유연성, 성능, 기능이 부족했습니다.” 라고 Bender는 말합니다.
또한 그는 “NGINX Plus를 통해 우리는 우리의 요구 사항에 고유하게 맞춰진 솔루션을 찾았습니다.” 라고 덧붙혔습니다.
2. 해결책 – NGINX Plus
트래픽이 많은 웹사이트를 위해 세계에서 가장 인기 있는 오픈 소스 웹 서버를 기반으로 구축된 NGINX Plus는 배포하기 쉬운 하나의 패키지에 엔터프라이즈급 기능을 추가하여 Buydig 의 요구 사항에 매우 적합했습니다.
Buydig 은 백엔드 서버와 완전히 분리된 Frontend 애플리케이션 레이어에 NGINX Plus를 구현했습니다.
NGINX Plus는 들어오는 모든 HTTP 및 HTTPS 트래픽을 처리하며 Amazon Web Services(AWS)에서 호스팅됩니다.
Buydig 은 미국 동부 및 미국 서부 두 곳의 AWS 위치에서 각각 2개의 EC2 인스턴스를 사용하여 Red Hat Enterprise Linux 7 및 NGINX Plus를 실행합니다.
클라이언트로부터 AWS 데이터 센터로 요청이 들어오는데, NGINX Plus는 Buydig 의 모든 트래픽에 대한 최전선에서 이를 처리합니다.
“들어오는 모든 트래픽을 처리하기 위해 Frontend 로드 밸런서 및 리버스 프록시로 NGINX Plus를 구현한 이후 단 한 번도 다운되거나 속도가 느려진 적이 없습니다. 성능은 환상적입니다. 백엔드에서 연결 사용량을 낮게 유지해야 하는데, NGINX Plus를 사용하면 매우 쉽게 이를 수행할 수 있습니다.”
– Charles Bender, Buydig 의 IT 디렉터
3. Buydig 의 NGINX Plus 채택 결과
3-1. 뛰어난 퍼포먼스 확보
NGINX Plus를 사용하면 매우 많은 수의 동시 연결을 쉽게 처리하여 백엔드 애플리케이션이 과부하되지 않도록 보호하고 사이트의 가동 시간과 성능을 개선할 수 있습니다.
NGINX Plus의 HTTP Keepalived Connection을 통해 Buydig 은 연결이 들어오는 대로 Pulling 하여 Backend에 대한 연결 수를 최대한 줄일 수 있습니다.
“들어오는 모든 트래픽을 처리하기 위해 Frontend 로드 밸런서 및 리버스 프록시로 NGINX Plus를 구현한 이후 단 한 번도 다운되거나 속도가 느려진 적이 없습니다.
성능은 환상적입니다. 백엔드에서 연결 사용량을 낮게 유지해야 하는데, NGINX Plus를 사용하면 이를 매우 쉽게 수행할 수 있습니다.”라고 Bender는 말합니다.
또한 Bender는 “NGINX Plus로 첫 연휴 시즌을 막 마쳤는데 완벽하게 작동했기 때문에 매우 만족스럽습니다.” 라고 덧붙였습니다.
3-2. 강력한 구성 도구
Buydig 은 NGINX Plus의 강력한 구성 언어를 활용하여 Backend 애플리케이션의 요구 사항을 충족하도록 사용자 정의합니다.location 블록과 같은 기능을 통해 제공되는 유연성 덕분에 Buydig 은 사이트의 여러 부분을 효과적으로 처리할 수 있습니다.
예를 들어, 전체 Buydig 사이트에서 사용되는 주요 스크립트는 단일 디렉터리에서 호스팅됩니다.
Buydig 은 요청 속도를 제한하고 액세스 제어를 구현하여 이 디렉터리 위치를 남용 및 무단 트래픽으로부터 보호합니다.
이미지 및 CSS Stylesheet와 같은 정적 자산을 저장하는 /assets 디렉토리와 같은 다른 위치의 경우, 클라이언트가 이미지를 빠르게 불러올 수 없는 경우 페이지 로딩 속도가 느려지거나 실패할 수 있으므로 Rate Limit을 사용하지 않습니다.
“NGINX Plus의 location 블록을 사용하여 설정을 사용자 지정할 수 있다는 것은 우리에게 매우 유연하고 강력한 기능입니다.”라고 Bender는 말합니다.
3-3. 강화된 Buydig 보안
또한 NGINX Plus는 Buydig 에 몇 가지 보안 강화 기능을 제공합니다.
보안 및 개인 정보 보호를 위해 Buydig 과 자매 사이트인 Beachcamera의 결제 프로세스는 암호화됩니다.
NGINX Plus에서 TLS SNI를 지원하므로 하나의 IP 주소를 사용하여 두 사이트를 암호화하고 서비스할 수 있습니다.
“여러 서버에 여러 SSL 사이트가 있기 때문에 TLS SNI는 우리에게 당연한 선택입니다.” 라고 Bender는 말합니다.
“구성이 거의 필요하지 않습니다. NGINX Plus에서 TLS SNI를 사용하면 필요한 사이트 보안을 확보하는 동시에 작업을 대폭 간소화할 수 있습니다. TLS SNI는 복잡성을 제거합니다.”
다음으로, NGINX Plus는 필요에 따라 로그 형식을 사용자 지정할 수 있는 유연한 로깅을 제공합니다.
온라인 구매를 위해 신용카드를 받는 온라인 소매 사이트인 Buydig은 모든 트래픽을 로깅해야 하는 요구 사항이 포함된 PCI(Payment Card Industry) 보안 표준을 준수해야 합니다.
사용자가 사이트에 처음 접속하여 탐색할 때는 HTTP를 사용하지만, 구매 프로세스에서는 HTTPS를 사용해야 하기 때문에 Buydig 의 트래픽 로깅은 복잡했습니다.
다른 솔루션을 사용할 경우, Buydig은 서로 다른 형식의 두 개의 별도 로그 파일 세트(HTTP용과 HTTPS용)를 사용해야 했기 때문에 전체 요청 경로를 기록하기 어려웠습니다.
NGINX Plus의 구성 가능한 로깅을 통해 Buydig 은 HTTP와 HTTPS 로그를 함께 결합할 수 있게 되었습니다.
“NGINX Plus 내에서 로그를 결합할 수 있어 PCI 규정 준수에 도움이 되고 디버깅에 매우 유용합니다.” 라고 Bender는 말합니다.
3-4. Health Checks를 통해 강화된 Buydig 애플리케이션
두 대의 백엔드 서버가 있는 Buydig 은 한 대의 서버가 잠기고 페이지 제공이 중단되는지 알아야 합니다. NGINX Plus의 Health Checks를 통해 서버에 장애가 발생할 경우 효과적으로 부하를 분산하고 트래픽 흐름이나 사용자 경험을 방해하지 않으면서 일상적인 유지 관리를 완료할 수 있습니다.
“우리 사이트는 새로운 기능을 추가하고 서버를 업그레이드하는 등 지속적으로 개선되고 있기 때문에 전체 사이트를 오프라인으로 전환하지 않고도 웹 노드를 업데이트할 수 있어야 합니다.
NGINX Plus의 Health Checks를 통해 로드 밸런싱 영역에서 서버를 정상적으로 제거하여 작업할 수 있도록 한 다음 작업이 완료되면 쉽게 다시 도입할 수 있습니다.
파일 이름을 바꾸는 것만큼이나 간단합니다. NGINX Plus의 상태 확인 기능 덕분에 서버 유지 관리를 수행하고 새로운 기능을 출시하는 것이 확실히 쉬워졌습니다.”라고 Bender는 말합니다.
또한 NGINX Plus는 백엔드 애플리케이션을 지속적으로 모니터링하고 장애가 감지되면 트래픽을 Redirection 하기 때문에 Buydig은 DDoS 공격을 완화할 수 있습니다.
“NGINX Plus는 DDoS 공격으로부터 우리를 보호합니다. NGINX Plus를 통해 향상된 성능과 보안에 만족하고 있습니다.”라고 Bender는 말합니다.
“성능 향상을 위해 다양한 기술을 시도해 보았습니다. NGINX Plus는 처음부터 눈에 띄었고, 우리가 필요로 하는 기능을 바로 수행했습니다. 그리고 새로운 문제가 발생했을 때도 여전히 필요한 작업을 수행했습니다. NGINX Plus는 역동적이고 유연합니다. 정말 잘 작동하며 목표를 달성하는 데 도움이 됩니다.”
– Charles Bender, Buydig 의 IT 이사
4. 결론

Frontend 애플리케이션 Layer에서 로드 밸런싱, Health Checks 구현, HTTP 및 HTTPS 로그 결합을 위해 NGINX Plus를 추가하여 사이트 안정성과 성능을 획기적으로 개선한 결과, Buydig 은 사이트 안정성과 성능을 크게 향상시켰습니다.
속도와 보안을 제공하는 NGINX Plus를 통해 Buydig은 증가하는 고객층에게 훌륭한 서비스와 함께 우수한 제품을 판매하는 데 집중할 수 있게 되었습니다.
“성능 개선을 위해 다양한 기술을 시도해 보았습니다. NGINX Plus는 처음부터 눈에 띄었고 우리가 필요로 하는 기능을 바로 수행했습니다. 그리고 새로운 문제가 발생했을 때도 여전히 필요한 작업을 수행했습니다. NGINX Plus는 역동적이고 유연합니다. 정말 잘 작동하며 목표를 달성하는 데 도움이 됩니다.” 라고 Bender는 말합니다.
Buydig 의 사용사례와 같이, Frontend 애플리케이션 Layer에서 로드 밸런싱, Health Checks, HTTP 및 HTTPS 로그 결합을 구현하고 싶으신가요?
지금 NGINX Plus의 30일 무료 체험판으로 시작할 수 있습니다. 또한 NGINX STORE에 문의하여 다양한 사용 사례에 대해 상담 받아보세요.
댓글을 달려면 로그인해야 합니다.