블로그 | NGINX

갑작스러운 트래픽 급증 및 서버 과부하를 관리하는 방법

NGINX-F5-수평-검정-유형-RGB의 일부
프란시스 페도리스카 썸네일
프랜시스 페도리스카
2021년 7월 14일 게시

많은 소매업체의 경우, COVID-19 팬데믹으로 인해 고객이 휴일 동안 쇼핑하는 장소와 방식이 바뀌었습니다. 오프라인 매장에서 쫓겨난 쇼핑객들은 예전보다 더 많은 온라인 매장으로 몰려들었고, 2020년 전자 상거래 매출은 1,890억 달러에 달해 2019년 대비 33% 증가했습니다 . 소매업체와 올해의 홀리데이 쇼핑객 사이에 6개월도 채 걸리지 않은 가운데, NGINX를 활용하고 갑작스러운 트래픽 급증에 대비할 수 있는 몇 가지 방법을 알려드립니다.

1단계: 경쟁자에 비해 어떤 입장인지 알아보세요

스택을 변경하기 전에 단순히 생존하는 것이 아니라 번창하기 위해 "사이버 시즌" 성과를 얼마나 극대화해야 하는지 아는 것이 도움이 됩니다. 경쟁 웹사이트의 성과에 대한 데이터를 수집하는 것부터 시작하세요. 페이지 로딩 시간은 아마도 가장 중요한 지표일 것입니다. 오늘날 참을성 없는 사용자 중 다수는 사이트가 3초 이내에 로딩되지 않으면 사이트를 포기합니다 . 로드 시간을 측정하는 데 사용할 수 있는 도구는 다양하며, 그 중 상당수는 무료입니다. 테스트 도구 11개를 다룬 최근 Geekflare 리뷰 부터 살펴보는 게 좋습니다.

다음 페이지의 로드 시간을 측정해 보세요.

  • 홈페이지
  • 제품 검색 결과
  • 제품 페이지 세부 정보
  • 구매 버튼을 누른 후 확인 페이지

자사 사이트와 경쟁사 6개의 주요 페이지를 테스트하는 데는 불과 몇 시간 밖에 걸리지 않습니다. (다운로드 시간을 측정하기 전에 Shift+Refresh를 눌러 브라우저 캐시를 지우세요.) 결과를 얻었으면 다음으로 다음을 수행하세요.

  • 지수 전체 성과 . 다양한 사이트에서 "수프 투 너트" 프로세스(방문, 검색, 구매)에 걸리는 시간은 얼마나 됩니까?
  • 강점과 약점을 파악하세요 . 사이트 성과가 앞서는 분야, 경쟁력이 있는 분야, 뒤처지는 분야를 구체적으로 찾아보세요.
  • 기능상의 차이점을 확인하세요 . 경쟁자들은 어떻게 추가 기능을 통해 쇼핑 경험에 가치를 더하는가? 귀하의 사이트는 사용자 경험을 차별화하기 위해 어떤 기능을 제공합니까?
  • 계획을 세우세요 . 사이트 성능 중 한 분야 이상에서 경쟁사보다 크게 뒤처져 있다면 경쟁사의 평균 응답 시간을 맞추는 것을 목표로 하세요. 이미 경쟁력이 있다면 1위가 되기 위해 노력하세요.

2단계: 세계에서 가장 바쁜 웹사이트처럼 NGINX를 실행하세요

올해 초 NGINX는 인터넷에서 1위 웹 서버가 되었습니다. 많은 사이트가 우리를 신뢰하여 웹사이트와 앱을 제공해 주셔서 영광이며, 여러분도 그러시기를 바랍니다. 하지만 NGINX는 단순한 웹 서버 이상입니다. 이것은 역방향 프록시 , 로드 밸런서 , 캐시API 게이트웨이를 모두 갖춘 올인원 소프트웨어입니다.

NGINX의 가장 중요한 이점 중 하나는 사이트로의 트래픽 흐름을 최적화하는 방법입니다. NGINX를 매장 앞에서 교통을 관리하는 문지기로 생각해 보세요. 이 기계는 대기줄을 서서 각 쇼핑객을 입장시키며(HTTP 요청), 보도 위의 혼란스러운 혼잡을 매장 내부의 부드럽고 질서 있는 행렬로 바꿔줍니다. 쇼핑객은 자신이 원하는 품목의 특정 위치로 안내되어 교통량이 고르게 분산되고 모든 리소스가 동등하게 활용됩니다.

NGINX는 이를 달성하기 위해 기본적으로 두 가지 의 기존 기술을 사용합니다.

  • Keepalive 연결을 사용하여 HTTP 오프로드를 실행하여 느리게 도착하는 HTTP 요청을 버퍼링하고, 준비가 될 때만 백엔드 서버로 전달합니다. 거래는 먼 곳의 클라이언트에서 시작된 경우보다 빠른 로컬 네트워크의 NGINX에서 시작되면 훨씬 더 빨리 완료됩니다.
  • 트래픽 분산을 최적화하고 서버 리소스를 최대한 효율적으로 사용하기 위해 여러 알고리즘을 선택하여 정교한 로드 밸런싱을 제공합니다 .

트래픽 흐름을 최적화하는 것 외에도 NGINX를 활용하여 사이트를 최적화하고 트래픽 급증 시 서버 과부하를 방지할 수 있는 네 가지 방법을 소개합니다.

자세한 내용은 계속 읽어보세요.

캐싱을 사용하여 웹 페이지 응답 시간 개선

클릭 앤 컬렉트 , 매장에서 직접 픽업할 수 있는 온라인 주문, 심지어 고객 결제 옵션까지 온라인 거래의 성공 가능성을 높여줍니다. 콘텐츠 캐싱 NGINX를 사용하면 웹 트래픽에 비슷한 효과가 있습니다. NGINX는 클라이언트에 전송하는 각 파일을 자동으로 저장하고, 지정된 파일에 대한 후속 요청은 캐시에서 직접 처리합니다. 캐싱을 사용하면 사용자에게 더 빨리 응답할 수 있을 뿐 아니라, 처음부터 동일한 요청을 계속 반복해서 처리할 필요가 없으므로 업스트림 서버의 부하가 줄어듭니다. 애플리케이션에 따라 콘텐츠 캐싱을 사용하면 내부 트래픽 양을 최대 100배까지 줄일 수 있으며 , 앱을 제공하는 데 필요한 하드웨어 용량을 줄일 수 있습니다.

캐싱과 샘플 구성에 대한 자세한 내용은 블로그의 '사이트 콘텐츠 캐싱 및 마이크로캐싱''NGINX 및 NGINX Plus를 사용한 캐싱 가이드'를 참조하세요.

연결, 속도 및 대역폭 제어를 통한 방문자 트래픽 관리

가장 바쁜 시기에는 매장 문지기가 들어오는 쇼핑객 수를 제한해야 할 수도 있습니다. 이는 안전상의 이유(과밀화 방지)이거나 귀중한 고객에 대한 우대 조치(VIP 시간, 초대 전용 프로모션 등)일 수 있습니다. 웹 앱도 비슷한 조치를 취해야 합니다. 사이트에 유입되는 트래픽 양을 제한하여 서버 과부하를 방지하고, 클라이언트가 필요한 리소스에 적절한 시기에 접근할 수 있도록 보장합니다. NGINX(및 컨테이너 환경에서는 NGINX Ingress Controller )는 다음을 포함하여 들어오는 트래픽을 제한하는 다양한 방법을 제공합니다.

  • 동시성 제한 – 각 서버에 전달되는 동시 요청 수를 제한하여 각 서버의 작업자 스레드 또는 프로세스의 제한된 수와 일치시킵니다.
  • 요청 속도 제한 – 각 클라이언트의 요청에 대해 초당 또는 분당 제한을 적용하여 결제 게이트웨이나 복잡한 검색과 같은 서비스에 대한 서버 과부하를 방지합니다(자세한 내용은 블로그의 NGINX 및 NGINX Plus를 사용한 속도 제한 참조)
  • 대역폭 제한 – 클라이언트가 각 연결에서 다운로드할 수 있는 데이터 양을 제어합니다.

필요한 경우 다양한 유형의 클라이언트를 구별할 수 있습니다. 아마도 매장의 배송 지역이 아시아 지역까지 확장되지 않았거나, 장바구니에 상품을 담은 사용자를 우선시하고 싶을 수도 있습니다. 쿠키, 지리적 위치 데이터 및 기타 매개변수를 활용하여 NGINX가 트래픽 제한을 적용하는 방법을 제어할 수 있습니다.

탄력적 확장으로 서버 과부하 방지

적절한 인프라가 구축되어 있지 않으면 트래픽 급증으로 인해 쉽게 서버 과부하가 발생할 수 있습니다. NGINX의 가벼운 이벤트 기반 아키텍처는 이미 보유한 인프라를 활용해 앱 전송 성능을 극대화합니다. 베어 메탈가상화 환경 에서의 NGINX Ingress Controller 와 NGINX Plus에 대한 크기 가이드는 준비 중인 성능과 규모에 대한 정확한 운영 비용을 결정하는 데 도움이 됩니다.

DevOps 팀은 트래픽 급증에 효과적으로 대응하기 위해 다음과 같은 추가 NGINX 기능을 활용할 수 있습니다.

  • 클라우드 환경에 NGINX와 앱을 배포하세요. NGINX는 AWS , Google Cloud Platform , Microsoft Azure 와 같은 주요 클라우드 환경의 마켓플레이스에서 사용할 수 있습니다. 각 클라우드 공급자는 수요 변화에 따라 앱 인스턴스 수를 조정하는 자동 확장을 지원합니다. 자세한 내용은 AWS , GCPAzure 의 자동 크기 조정 설명서를 참조하세요.
  • Kubernetes 환경에 컨테이너를 배포합니다. NGINX Ingress ControllerNGINX Service Mesh에는 Kubernetes 앱의 복원력을 높이는 여러 기능이 포함되어 있습니다. 실시간 사용자에게 추가 지연 시간이 거의 발생하지 않고 사용자 요구에 따라 애플리케이션 포드를 수평적으로 확장할 수 있습니다.
  • NGINX Plus API를 사용하면 NGINX Plus로 부하가 분산되는 백엔드 서버를 동적으로 확장할 수 있습니다.

내장된 보안 기능으로 고객 데이터 보호

거래의 보안은 모든 웹사이트의 기본 원칙이지만, 신용카드 정보를 처리하는 온라인 소매업체에게는 특히 중요합니다. 타겟과 같은 불운한 소매업체가 직접 알고 있듯이 보안 침해는 브랜드 가치 하락과 소송으로 이어질 수 있습니다. 타겟은 2014년 데이터 침해 사고에 대응해 가시성을 높이고 보안을 강화하는 개선책을 마련했습니다. 다음을 구현하여 시장에서 가장 안전한 쇼핑 경험 중 하나를 통해 경쟁에서 두각을 나타내세요.

이제 준비가 되었습니다

이제 당사의 엔터프라이즈급 솔루션으로 웹 속성을 무장하면 2021년 연말 쇼핑 시즌(또는 온라인!)에 무슨 일이 일어나든 대비할 수 있다는 확신을 가질 수 있습니다.

모든 상업용 솔루션에 대해 30일 무료 체험판을 이용할 수 있습니다.

또는 무료 오픈 소스 제품을 사용해 보세요.

이 블로그에는 Owen Garrett과 Floyd Smith의 기고가 포함되어 있습니다.


"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."