NGINX로 트래픽 급증에 대한 리스크를 제거하는 방법
COVID-19 팬데믹으로 인해 고객들이 연말 연시에 쇼핑하는 장소와 방법이 바뀌었습니다. 이로 인해 많은 오프라인 매장이 문을 닫은 쇼핑객들은 그 어느 때보다 더 많은 온라인 소매업체로 몰려들었고, 2020년 전자상거래 매출이 2019년 대비 33% 증가한 1,890억 달러로 급증했습니다. 그래서 이번 포스트는 NGINX를 활용하여 갑작스러운 트래픽 급증 에 대비할 수 있는 몇 가지 방법을 소개합니다.
목차
1. 1단계: 경쟁사에 대한 귀사의 입장 파악
2. 2단계: 세계에서 가장 바쁜 웹사이트들은 NGINX를 사용합니다.
2-1. 캐싱을 통한 웹 페이지 응답 시간 향상
2-2. 연결, 속도 및 대역폭 제어를 사용하여 방문자 트래픽 관리
2-3. 탄력적인 확장을 통해 서버 과부하 방지
2-4. 내장된 보안으로 고객 데이터 보호
3. 결론
1. 1단계: 경쟁사에 대한 귀사의 입장 파악
스택을 변경하기 전에 “Cyber Season” 성능을 극대화하는 데 필요한 것이 얼마나 필요한지 파악하는 것이 도움이 됩니다. 경쟁 웹사이트의 성능에 대한 데이터를 수집하는 것부터 시작하십시오. 페이지를 로드하는 데 걸리는 시간은 아마도 가장 중요한 지표일 것입니다. 오늘날 성급한 사용자의 대부분은 3초 이내에 로드되지 않으면 사이트를 포기하고 떠납니다. Load Time을 측정하는 데 사용할 수 있는 많은 도구가 있으며, 대부분이 무료입니다. 11가지 테스트 도구에 대한 최근 리뷰는 Geekflare에서 쉽게 찾아볼 수 있습니다.
다음 페이지에 대한 Load Time 측정을 고려해 보십시오.
- 홈페이지
- 제품 검색 결과
- 상품페이지상세
- 구매 버튼을 누른 후 확인 페이지
자신의 사이트와 함께 6개 경쟁 업체의 주요 페이지를 테스트하는 데 몇 시간 밖에 걸리지 않습니다. (다운로드 시간을 측정하기 전에 Shift+Refresh 사용하여 브라우저 Cache를 지우십시오.) 결과를 저장한 후 다음 작업을 수행합니다.
- 총 실적 지수 – 다양한 사이트에서 “soup to nuts” 프로세스(방문, 검색 및 구매)가 얼마나 걸립니까?
- 강점과 약점 파악 – 사이트의 성능이 앞서거나 경쟁력이 있거나 뒤처지는 특정 영역을 찾으십시오.
- 기능 차이점 참고 – 경쟁업체들은 추가 기능을 통해 어떻게 쇼핑 경험에 가치를 더하는지, 귀하의 사이트는 사용자 경험을 차별화하기 위해 무엇을 제공하는지 파악하십시오.
- 계획 만들기 – 하나 이상의 사이트 성능 영역에서 경쟁사보다 훨씬 뒤처져 있다면 그들의 평균 응답 시간을 맞추는 것을 목표로 하십시오. 이미 경쟁력이 있다면 1위가 되기 위해 노력하십시오.
2. 2단계: 세계에서 가장 바쁜 웹사이트들은 NGINX를 사용합니다.
올해 초 NGINX는 인터넷에서 1위 HTTP 서버가 되었습니다. 많은 웹사이트와 애플리케이션을 제공하기 위해 저희를 신뢰하는 것을 영광으로 생각하며 여러분도 그러길 바랍니다. 그러나 NGINX는 단순한 HTTP 서버 그 이상입니다. 이것은 Reverse Proxy, Load Balancer, Cache 및 API Gateway가 포함됩니다.
NGINX의 가장 중요한 이점 중 하나는 사이트로의 트래픽 흐름을 최적화하는 방법입니다. NGINX를 당신의 매장 앞에서 교통을 관리하는 문지기로 생각해보세요. 살며시 줄을 서서 각 쇼핑객(HTTP 요청)를 받아들이면서 보도 위의 혼란스러운 스크럼(Scrum)을 매장 내 매끄럽고 질서정연한 행렬로 변화 시킵니다. 쇼핑객은 자신들의 위시리스트에 있는 아이템의 특정 위치로 안내되어 트래픽이 고르게 분산되고 모든 리소스가 동일하게 사용되도록 보장합니다.
NGINX는 이를 달성하기 위해 주로 두 가지 기본 기술을 사용합니다.
- Keepalive 연결을 사용하는 HTTP Offload는 느리게 도착하는 HTTP 요청을 버퍼링하고 준비가 된 경우에만 Backend 서버로 전달합니다. 트랜잭션은 멀리 있는 클라이언트에서 시작될 때보다 NGINX(고속 로컬 네트워크)에서 시작될 때 훨씬 더 빨리 완료됩니다.
- 트래픽 분산을 최적화하고 서버 리소스를 최대한 효율적으로 사용할 수 있는 다양한 알고리즘을 사용하는 정교한 Load Balancing.
다음은 트래픽 흐름 최적화 외에도 NGINX를 활용하여 사이트를 최적화하고 트래픽 급증 시 서버 과부하를 방지할 수 있는 4가지 방법입니다.

다음에 대한 자세한 내용을 읽어보십시오.
- 캐싱을 통한 웹 페이지 응답 시간 향상 (Improving web page response times with caching)
- 연결, 속도 및 대역폭 제어를 사용하여 방문자 트래픽 관리 (Managing visitor traffic with traffic controls)
- 탄력적인 확장을 통해 서버 과부하 방지 (Increasing agility with on‑demand elastic scaling)
- 내장된 보안으로 고객 데이터 보호 (Protecting customer data with built‑in security)
2-1. 캐싱을 통한 웹 페이지 응답 시간 향상
클릭 및 수집, 매장 내 픽업에 대한 온라인 주문 및 고객 결제 옵션을 사용하면 성공적인 온라인 거래 가능성이 높아집니다. NGINX를 사용한 콘텐츠 캐싱은 웹 트래픽에 유사한 효과를 줍니다. NGINX는 클라이언트에 보내는 각 파일을 자동으로 저장하고 캐시에서 직접 지정된 파일에 대한 후속 요청을 처리합니다. 캐싱은 사용자에게 더 빠르게 응답할 뿐만 아니라 처음부터 동일한 요청을 반복해서 처리할 필요가 없기 때문에 Upstream 서버의 부하를 줄여줍니다. 애플리케이션에 따라 콘텐츠 캐싱은 내부 트래픽 양을 최대 100배까지 줄여 애플리케이션을 제공하는 데 필요한 하드웨어 용량을 줄일 수 있습니다.
2-2. 연결, 속도 및 대역폭 제어를 사용하여 방문자 트래픽 관리
가장 바쁜 시간에 매장의 문지기는 들어오는 쇼핑객 수를 제한해야 할 수 있습니다. 이는 안전상의 이유(과밀한 혼잡 방지) 또는 소중한 고객에 대한 우대(VIP 시간, 초대 전용 프로모션 등) 때문일 수 있습니다. . 웹 애플리케이션도 비슷한 조치를 취해야 합니다. 클라이언트가 필요한 리소스에 적시에 액세스할 수 있도록 사이트에 들어오는 트래픽 양을 제한하여 서버 과부하를 방지할 수 있습니다. NGINX(컨테이너 환경에서 NGINX Ingress Controller)는 다음을 포함하여 들어오는 트래픽을 제한하는 다양한 방법을 제공합니다.
- Concurrency Limits – 각 서버의 제한된 수의 작업자 Thread 또는 프로세스와 일치하도록 각 서버로 전달되는 동시 요청 수를 제한합니다.
- Request Rate Limits – 각 클라이언트의 요청에 초당 또는 분당 제한을 적용하여 결제 Gateway 또는 복잡한 검색과 같은 서비스에 대한 서버 과부하를 방지합니다.
- Bandwidth Limits – 클라이언트가 각 연결에서 다운로드할 수 있는 데이터 양 제어
필요한 경우 서로 다른 유형의 클라이언트를 구분할 수 있습니다. 매장의 배송 지역이 아시아로 확장되지 않거나 장바구니에 상품이 있는 사용자의 우선 순위를 지정하려고 할 수 있습니다. 쿠키, 지리적 위치 데이터 및 기타 매개변수를 활용하여 NGINX가 트래픽 제한을 적용하는 방법을 제어할 수 있습니다.
2-3. 탄력적인 확장을 통해 서버 과부하 방지
적절한 인프라가 구축되어 있지 않으면 트래픽 급증으로 인해 서버 과부하가 쉽게 발생할 수 있습니다. NGINX의 경량 이벤트 기반(Event-Driven) 아키텍처는 기존 인프라로 애플리케이션 제공 성능을 극대화합니다. Bare-Metal 및 가상화 환경에서 NGINX Ingress Controller 및 NGINX Plus에 대한 Sizing 조정 가이드는 준비 중인 성능 및 규모에 대한 정확한 운영 비용을 결정하는 데 도움이 됩니다.
DevOps팀은 다음과 같은 추가 NGINX 기능을 활용하여 트래픽 급증에 효과적으로 대응할 수 있습니다.
- 클라우드 환경에서 NGINX와 애플리케이션을 배포합니다. NGINX는 AWS, Google Cloud Platform 및 Microsoft Azure와 같은 주요 클라우드 환경의 시장에서 사용할 수 있습니다. 각 클라우드 공급자는 수요 변화에 대응하여 애플리케이션 인스턴스 수를 조정하는 Autoscaling을 지원합니다. 자세한 내용은 AWS, GCP 및 Azure에 대한 자동 확장 설명서를 참조하세요.
- Kubernetes 환경에서 컨테이너를 배포합니다. NGINX Ingress Controller 및 NGINX Service Mesh에는 Kubernetes 앱의 복원력을 향상시키는 여러 기능이 포함되어 있습니다. 실시간 사용자를 위해 대기 시간을 거의 추가하지 않고 사용자 수요에 따라 애플리케이션 Pod를 수평으로 확장할 수 있습니다.
- NGINX Plus API를 사용하여 NGINX Plus에서 Load Balancing되는 Backend 서버를 동적으로 확장합니다.
2-4. 내장된 보안으로 고객 데이터 보호
거래를 안전하게 만드는 것은 모든 웹사이트의 안정적인 지분이지만, 특히 신용카드 정보를 취급하는 온라인 소매업체에게는 더욱 그렇습니다. Target과 같은 불운한 소매업체가 직접 알고 있듯이 침해는 브랜드 손상과 소송을 의미할 수 있습니다. Target은 가시성을 개선하고 보안을 강화하여 향상된 기능을 통해 2014년 데이터 유출 문제를 해결했습니다. 다음과 같은 기능을 구현하여 시장에서 가장 안전한 쇼핑 경험 중 하나로 경쟁에서 앞서 나가십시오.
- 취약점을 조기에 발견하는 데 도움이 되는 가시성 전략
- Load Balancer 및 Ingress Controller에서 중앙 집중화된 인증 및 권한 부여로 구성하기 쉬운 강력한 SSO(Single Sign-On) 옵션을 구현할 수 있습니다.
- OWASP Top 10 및 PCI DDS 취약점 이상을 보호하는 가볍고 강력한 WAF
- 모든 통신이 mTLS로 암호화되도록 보장하는 Service Mesh는 해커가 훔칠 수 있는 민감한 데이터가 Wire에 없도록 합니다.
3. 결론
이제 엔터프라이즈급 솔루션으로 웹 자산을 보호할 수 있으므로 2022년 연말 쇼핑 시즌이 매장 또는 온라인에 있는 모든 것에 대해 안심할 수 있을 것 입니다.
솔루션 개요를 확인하고 NGINX Plus 성능을 직접 테스트 및 사용해 보려면 지금 30일 무료 평가판을 신청하거나 사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.
댓글을 달려면 로그인해야 합니다.