교통 체증에 대처하기 위해 고군분투

게시 됨: 2022-03-10
요약 ↬ “만들면 온다.” 클라이언트를 위한 웹 사이트와 PWA를 구축하는 데 많은 시간과 노력을 들인 경우에는 확실히 사실입니다. 그러나 "그들이 올 것이다"가 "너무 많은 사람들이 한 번에 와서 사이트가 다운되었습니다"가 되면 어떻게 됩니까? 트래픽 급증이 발생합니다. 그러나 귀하의 웹사이트가 그들의 희생양이 되기보다는 이 가이드는 귀하가 웹사이트를 승자로 설정하는 방법을 보여줄 것입니다.

(이 기사는 후원을 받은 기사입니다.) 트래픽 급증이 발생했을 때 웹사이트가 파도에 휩쓸리는 대신 파도를 탈 수 있기를 원합니다.

그러나 발생할 수도 있고 발생하지 않을 수도 있는 트래픽 급증을 예상하여 서버 리소스에 지속적으로 과도하게 지출하지 않고 어떻게 이를 수행할 수 있습니까?

그 중 일부는 트래픽의 향후 상승(또는 하락)을 예측할 수 있도록 데이터를 정말 잘 읽는 방법을 아는 것으로 귀결됩니다. 그럼에도 불구하고 데이터의 밀물과 썰물은 트래픽 급증이 언제 발생할지, 얼마나 커질지 또는 얼마나 오래 지속될지를 항상 정확하게 예측하지는 않습니다.

따라서 당신이 해야 할 일은 고객의 웹사이트가 공격을 받고 트래픽을 유지할 준비가 되었는지 확인하는 것입니다. 오늘 우리가 할 일은 귀하의 웹사이트에서 이를 수행할 수 있도록 하는 도구, 모니터링 및 테스트 시스템을 만드는 데 도움을 주는 것입니다.

트래픽 급증에 대비하여 웹사이트를 준비하는 방법

트래픽 급증에 대비하여 웹사이트를 적절하게 준비하려면 사전 예방적 및 사후 대응적 시스템을 설정해야 합니다. 여기에 포함되어야 하는 내용은 다음과 같습니다.

1. 웹사이트를 확장 가능한 클라우드 솔루션으로 이동

트래픽 급증이 웹사이트에 큰 피해를 줄 수 있는 이유는 호스팅 서버와 리소스가 이를 처리할 준비가 되어 있지 않기 때문입니다. 순수하고 단순합니다.

즉, 급증이 언제 발생할지 예측할 수 없는 경우 호스팅이 증가된 트래픽 부하를 처리할 수 있는 용량을 확보할 수 있도록 하려면 어떻게 해야 합니까? 만일의 경우를 대비 하여 대형 호스팅 계획에 단순히 더 많은 돈을 던지고 있습니까?

분명히, 그것은 잠재적인 트래픽 급증을 처리하는 비용 효율적인 방법이 아닙니다. 대신 필요에 따라 확장할 수 있는 호스팅 솔루션을 찾아야 합니다.

DigitalOcean 호스팅 기술 활용

이를 도울 수 있는 공급자 중 하나는 확장 가능한 클라우드 솔루션 개발자인 DigitalOcean입니다.

이 옵션의 좋은 점은 DigitalOcean이 선택할 수 있는 최적화된 "방울"을 제공한다는 것입니다. 어떤 계획이 적합한지 추측할 필요가 없습니다. 모든 것이 DigitalOcean의 매우 유용한 사용 사례 권장 사항에 명확하게 설명되어 있습니다.

디지털 오션 vCPU 방울
DigitalOcean은 특정 사용 사례에 최적화된 가상 CPU를 판매합니다. (출처: DigitalOcean) (큰 미리보기)

보시다시피, Droplets는 다양한 종류의 웹사이트와 애플리케이션을 위해 구축된 구성하기 쉬운 가상 머신입니다. 또한 KVM 하이퍼바이저, SSD 스토리지 및 40GbE 연결을 통해 즉시 속도와 보안을 위해 구성됩니다.

또한 웹사이트의 트래픽이 증가함에 따라 Droplet 내에서 스토리지 및 대역폭의 양을 쉽게 업그레이드할 수 있습니다. 그리고 나중에 트래픽 급증의 운이나 이유를 파악할 수 있다면 트래픽 변화를 수용하기 위해 리소스를 신속하게 확장 및 축소할 수 있습니다.

즉, 확장 가능한 클라우드 호스팅 솔루션은 트래픽 급증을 처리하기에 충분하지 않습니다. 몇 가지 더 필요한 것이 있습니다.

서지에 로드 밸런서 사용

로드 밸런싱 기술에 익숙하지 않은 경우 웹 사이트가 있는 것과 없는 것의 차이점을 살펴보겠습니다.

누군가 로드 밸런서 없이 웹사이트를 방문하면 다음과 같은 일이 발생합니다.

DigitalOcean - 로드 밸런싱 그래픽 없음
방문자가 로드 밸런싱 없이 웹사이트에 액세스하는 방법에 대한 DigitalOcean의 그래픽. (출처: DigitalOcean) (큰 미리보기)

그들은 인터넷에 로그온하고 웹 브라우저에 귀하의 URL을 입력하거나 링크를 클릭하면 귀하의 서버가 귀하의 웹사이트를 화면에 전달하도록 되어 있습니다.

그러나 귀하의 사이트에 대한 액세스를 요청하는 트래픽의 양이 갑자기 급증하면 이 단독 서버는 로드를 효율적으로 처리하지 못할 수 있습니다. 이것이 과도한 트래픽 급증으로 인해 웹사이트 속도가 매우 느려지거나 웹사이트에 전혀 액세스할 수 없게 되는 이유입니다.

그러나 로드 밸런서를 사용하면 웹 트래픽에 다음과 같은 일이 발생합니다.

DigitalOcean - 로드 밸런싱 그래픽
로드 밸런싱이 구현될 때 방문자가 웹사이트에 액세스하는 방법에 대한 DigitalOcean의 그래픽. (출처: DigitalOcean) (큰 미리보기)

로드 밸런서는 서버에 대한 일종의 프록시 역할을 합니다. 이렇게 하면 트래픽이 최고조에 달할 때 서버가 수요를 처리하는 데 어려움을 겪지 않아도 됩니다. 대신 로드 밸런서는 여러 서버를 활용하여 증가하는 HTTP 요청 볼륨의 균형을 조정합니다.

팀 간에 작업량을 분배하는 것과 같습니다. 이미 과중한 팀원들에 대한 요청을 계속해서 쌓기 보다는 능력이 있는 사람들과 일을 나눕니다.

그러나 실제 작업 배포와 달리 로드 밸런서는 이 모든 작업을 배후에서 수행하며 완전히 관리되므로 조정할 필요가 없습니다.

성능 모니터링 및 백업 활용

드롭릿에 적절한 양의 대역폭과 스토리지가 구성되어 있고 로드 밸런싱이 활성화되어 있다면 웹사이트는 양호한 상태가 될 것입니다. 트래픽 급증에 영향을 받지는 않지만 최대한 가까이에 있을 것입니다.

서버 수준에서 수행하는 모든 요새화에 대해 비상 계획을 마련하는 것이 여전히 중요하다는 점을 명심하십시오.

비즈니스(웹사이트) 연속성 계획에는 다음 방법을 포함하여 웹사이트를 정상 상태로 되돌리기 위해 수행해야 하는 모든 작업이 포함되어야 합니다.

  • 웹사이트를 복원하고,
  • 그 원인이 된 사건을 조사하고,
  • 그리고 영향을 받은 방문자와 고객에게 연락하십시오.

즉, DigitalOcean이 도움을 줄 수 있는 연속성 계획의 일부가 있습니다.

자동 백업은 모든 웹 사이트에 필수적이지만 웹 사이트가 트래픽 급증에 취약하다는 것을 알고 있다면 절대적으로 중요합니다. 연중무휴 지원은 또 다른 필수이며 DigitalOcean도 제공하는 것입니다.

찾아야 할 또 다른 사항은 내장된 성능 모니터링입니다. 이 게시물에서 더 자세히 설명하겠습니다.

2. 자산 최적화

견고한 클라우드 호스팅 솔루션을 사용하면 엄청난 트래픽 급증에서 살아남는 데 필요한 도움을 웹사이트에 제공할 수 있습니다. 그러나 모든 것이 호스트에 영향을 미칠 수는 없습니다. 방문자의 맹공격에 계속해서 서비스를 제공할 만큼 웹 사이트를 "가벼운" 것으로 만들기 위해 귀하의 역할을 수행해야 합니다.

다음은 더 나은 성능을 위해 웹사이트와 자산을 최적화하기 위해 수행할 수 있는 몇 가지 사항입니다.

캐싱 및 기타 파일 최적화 활성화

디지털 자산을 더 쉽게 처리하기를 원하십니까? 그런 다음 다음 최적화를 구성해야 합니다.

캐싱

캐싱을 구현하고 웹사이트가 방문자의 브라우저에 전달되는 속도를 높이는 다양한 방법이 있습니다. 서버, 페이지, 브라우저 데이터베이스 수준에서 이 작업을 수행할 수 있습니다.

웹 호스트는 서버 캐싱을 구성하는 데 도움을 줄 수 있습니다.

WordPress와 같은 콘텐츠 관리 시스템으로 웹사이트를 구축했다면 캐싱 플러그인을 설치하여 웹사이트를 관리하고 데이터베이스를 일괄 처리할 수 있습니다. (파일 축소, Gzip 압축 결합 CSS 및 JavaScript 파일과 같은 작업도 수행합니다.)

항상 수동으로 캐싱을 활성화할 수 있습니다. 캐시 헤더와 특히 캐시 제어 및 만료라는 두 가지 메커니즘을 사용하여 콘텐츠가 캐시되는 방식을 구성합니다.

이미지 최적화

미디어를 잊지 마세요. 이미지 및 비디오 파일은 서버에서 많은 공간을 차지할 뿐만 아니라 트래픽이 급증하는 동안 서버가 작동하는 속도를 방해할 수 있습니다. 이러한 자산을 최적화하려면 파일 압축 및 크기 조정을 사용해야 합니다.

이미지를 대량으로 압축하려면 TinyPNG 또는 TinyJPG와 같은 온라인 도구를 사용하여 처리하겠습니다.

TinyPNG 이미지 압축
TinyPNG는 이미지 자산을 대량 압축하는 빠르고 쉬운 방법을 제공합니다. (출처: TinyPNG) (큰 미리보기)

평균적으로 이 도구 하나로 파일 크기를 약 75%까지 줄일 수 있습니다.

이미지의 무게를 더 줄이려면 크기를 조정해야 합니다. 사용하려는 최대 너비가 1280픽셀 정도라면 전체 크기 자산을 웹사이트에 업로드할 이유가 없습니다.

이를 위해 파일 소프트웨어를 사용하여 한 번에 모든 작업을 수행하거나 Bulk Resize Photos와 같은 온라인 서비스를 사용합니다.

대량 사진 크기 조정 이미지 크기 조정 도구
사진 대량 크기 조정은 다양한 크기 조정 방법을 사용하여 이미지 자산의 크기를 쉽게 조정할 수 있는 방법을 제공합니다. (출처: Bulk Resize Photos) (큰 미리보기)

이미지 크기를 조정하는 방법에는 많은 유연성이 있지만 일반적으로 최대 너비를 설정하는 것이 가장 좋습니다.

관리되는 데이터베이스 사용

웹사이트에 넣은 자산을 최적화하는 것 외에도 데이터베이스를 최적화하는 데 주의를 기울여야 합니다. 즉, 실행보다 말은 더 쉬운 경우가 많습니다.

나는 데이터베이스 정리 및 최적화 플러그인에 익숙하지만 WordPress와 함께 사용하여 작업을 더 원활하게 실행할 수 있지만 트래픽 급증에 관해서는 별로 도움이 되지 않습니다. 데이터베이스가 더 높은 속도로 들어오는 데이터 요청을 계속 처리하는 데 도움이 되는 것이 필요합니다.

이를 위해서는 DigitalOcean에서 프로비저닝할 수 있는 관리형 데이터베이스 솔루션을 사용하는 것이 가장 좋습니다.

트래픽 급증이 감지되면 관리형 데이터베이스 서비스는 그에 따라 리소스를 확장하기 위해 수행해야 하는 작업을 단순화합니다. 계산이 필요하지 않습니다. 계정에 로그인하고 필요에 따라 리소스를 추가하기만 하면 됩니다.

이러한 상황에서 관리형 서비스가 이상적인 또 다른 이유는 기본 제공되는 고가용성 때문입니다. 그리고 이것은 99.9% 가동 시간에 대한 단순한 약속이 아닙니다. 호스트의 SLA를 살펴보면 엄청난 양의 가동 중지 시간을 방지하기 위해 많은 노력을 기울이고 있음을 알 수 있습니다.

CDN 추가

트래픽 급증이 흔히 발생하는 경우 사이트에 추가할 또 다른 최적화 계층이 있습니다. 바로 CDN입니다.

콘텐츠 전송 네트워크는 여러 가지 이유로 유용합니다. 전 세계 방문자에게 웹 사이트를 제공하는 데 적합합니다. 더 빠른 결제 경험을 제공하려는 전자 상거래 웹 사이트에 확실히 편리합니다. 또한 때때로 트래픽이 많이 증가하는 웹 사이트에 추가 속도, 보안 및 장애 조치를 제공합니다.

DigitalOcean을 사용하여 웹사이트를 호스팅할 계획이라면 자산의 보다 효율적인 저장 및 전달을 위해 Spaces 제품(내장 CDN 통합 포함)을 살펴보십시오.

3. 트래픽 보고서 분석

일반적으로 웹사이트에서 데이터를 부지런히 수집하는 것이 매우 중요합니다. 트래픽 급증과 싸울 때 특히 그렇습니다. 이유는 다음과 같습니다.

웹사이트 트래픽에 예측 가능한 최고치와 최저치가 있다면 언제 어떻게 계획해야 하는지 알 수 있습니다. 이는 트래픽을 처리하기 위해 웹사이트와 서버를 최적화할 뿐만 아니라 모니터링하고 관리할 수 있는 적절한 인력을 확보해야 함을 의미합니다.

이렇게 하려면 Google 웹로그 분석을 사용하여 모든 것을 감시하세요.

Google Analytics - 페이지뷰 차트
Google Analytics의 샘플 트래픽 및 페이지뷰 차트입니다. (출처: Google Analytics) (큰 미리보기)

이 예는 하루에 발생한 페이지 조회수(다소 또는 적음)를 보여주는 12개월 데이터 가져오기입니다. 사용자 또는 세션 수와 같은 다른 측정항목으로도 이를 수행할 수 있습니다. 그러나 주요 목표는 일년 내내 스트레스의 원인을 식별하는 것이며 과도한 페이지뷰(또는 관련되는 경우 전자 상거래 전환)가 이를 측정하는 더 효과적인 방법일 수 있습니다.

여기에서 많은 고점과 저점이 발생했음을 알 수 있습니다.

Google Analytics - 트래픽 급증 검색
Google Analytics 사용자가 데이터에서 트래픽 급증을 찾는 방법의 예. (출처: Google Analytics) (큰 미리보기)

그것들을 액면 그대로 받아들이기보다는 다른 데이터 포인트와 상호 참조하여 보고 있는 것이 트래픽 급증으로부터 배울 수 있는지 확인하십시오.

웹 개발 배제

예를 들어, 그 당시에 진행 중인 현장 개발이 있었습니까? 누군가 버그를 수정하거나 새 페이지를 디자인하는 경우 페이지뷰 수가 크게 증가할 수 있습니다.

이러한 일이 자주 발생하면 Google Analytics 수준에서 보고서에서 이 데이터를 자동으로 제거하는 것이 좋습니다. 관리자 메뉴에서 이 작업을 수행할 수 있습니다.

보기 > 필터 > 필터 추가로 이동합니다.

구글 애널리틱스 필터
Google Analytics 사용자는 결과에서 개인 방문 및 페이지뷰 측정항목을 제거할 수 있습니다. (출처: Google Analytics) (큰 미리보기)

테스트 또는 콘텐츠 생성 목적으로 사이트를 자주 미리 볼 수 있는 사람뿐만 아니라 IP 주소에 대한 데이터를 필터링하여 트래픽 수준을 보다 정확하게 볼 수 있습니다.

트래픽 급증이 내부 팀에서 발생한 것이 아니라고 가정해 보겠습니다. 다음으로 이러한 트래픽 급증(또는 감소)이 예측 가능한 간격으로 발생하는지 확인해야 합니다.

예측 가능한 급증 찾기

웹사이트가 1년 이상 운영된 경우 Google Analytics를 사용하여 상관관계가 있는지 확인할 수 있습니다. 이전 연도의 동일한 기간과 비교하도록 날짜를 설정하기만 하면 됩니다.

Google 애널리틱스 기간 비교
Google Analytics를 사용하면 두 날짜 범위를 나란히 비교할 수 있습니다. (출처: Google Analytics) (큰 미리보기)

그런 다음 트래픽 급증이 겹치는 부분을 찾습니다.

Google 애널리틱스 기간 비교 데이터
Google Analytics 사용자는 트래픽 급증 예측 가능성을 위해 두 날짜 범위를 동시에 검토할 수 있습니다. (출처: Google Analytics) (큰 미리보기)

이 경우 두 해에 모두 눈에 띄는 스파이크가 한두 번만 발생했을 수 있습니다. 첫 번째는 4월 초, 다른 하나는 11월 중순이었습니다.

이것이 두 해 모두에 지나치게 큰 급증이었다면(예: 평소의 트래픽 양보다 최소 5배 이상) 조사할 가치가 있다고 말하고 싶습니다. 그러나 이 예에서는 아마도 우연의 일치일 뿐이며 제외될 수 있습니다.

캘린더 확인

데이터에서 눈에 띄는 트래픽 급증을 식별한 경우 마지막으로 할 일은 캘린더와 비교하여 확인하는 것입니다.

당신이 찾고있는 것은 급증을 일으킬 수있는 이벤트입니다. 같은 것들:

  • 많은 화제를 불러 일으킨 홀리데이 세일.
  • 주요 뉴스 와이어에 선정된 보도 자료.
  • 귀하가 보낸 바이러스성 블로그 게시물 또는 이메일 제안.

또한 트래픽 급증 이후 며칠 또는 몇 주 동안의 트래픽을 살펴보는 것이 좋습니다.

어떻게 가늘어졌습니까? 갑자기 또는 천천히 화상을 입었습니까? 웹사이트는 급증 덕분에 일일 트래픽 수치를 약간이라도 개선할 수 있었습니까?

또한 조직이 어떤 영향을 받았는지 살펴보십시오. 이는 고객 지원 및 제품 반품을 제공하는 전자 상거래 웹사이트에 특히 중요합니다. 급증 후 판매 후 활동이 증가했습니까? 언제 쳤어? 얼마나 오래 지속되었습니까?

트래픽 급증이 발생한 이유(즉, 트래픽 급증을 유발한 이벤트)와 그 결과가 무엇인지 파악할 수 있다면 실제로 이를 미래에 유리하게 사용할 수 있습니다. 예를 들어, 판매 또는 바이럴 게시물이 급증을 일으켰다는 것을 알고 있다면 다음 서버보다 먼저 서버와 인력 자원을 계획할 수 있습니다.

이전 보고서에서 무엇을 찾았는지에 관계없이 이는 진행 중인 프로세스의 일부가 되어야 합니다. 트래픽 보고서를 생성하고 정기적으로 이메일로 보내도록 Google Analytics를 설정하십시오. 이렇게 하면 트래픽 수준이 변화함에 따라(좋든 나쁘든) 항상 상황을 파악하고 그에 따라 전략을 조정할 수 있습니다.

4. 실시간 성능 모니터링

Google Analytics를 사용하면 과거에 무슨 일이 있었는지 파악하고 향후 트래픽 급증에 보다 효과적으로 대비할 수 있습니다. 반면에 실시간 성능 모니터링을 사용하면 트래픽 급증 및 순간의 기타 성능 변화에 대응할 수 있습니다.

실시간 모니터링에 사용할 수 있는 다양한 도구가 있습니다. 다음은 그 중 일부입니다.

프론트엔드 성능 모니터링

페이지 속도가 갑자기 떨어지기 시작하거나 웹사이트가 다운되면 낭비할 시간이 없습니다. 즉, 모든 것이 제대로 실행되고 있는지 확인하기 위해 웹사이트에 정기적으로 로그인하는 것은 귀하에게 달려 있지 않습니다.

대신 Pingdom과 같은 가동 시간 및 속도 모니터링 서비스를 사용할 수 있습니다.

Pingdom 모니터링 및 경고 서비스
사용자는 Pingdom으로 가동 시간, 사용자 및 속도 모니터링을 자동화할 수 있습니다. (출처: Pingdom) (큰 미리보기)

트래픽 증가, 속도 또는 가동 시간 문제, 체크아웃 시 감지된 문제에 대해 웹사이트를 모니터링하는 지루한 작업을 처리합니다. 또한 실시간 알림을 제공하므로 트래픽 급증으로 인해 발생하는 문제가 심각해지기 전에 처리할 수 있습니다.

이렇게 하면 트래픽 급증이 성능에 부정적인 영향을 미칠 때 지속적으로 걱정하는 대신 웹사이트에 필요한 관심과 주의를 기울이기만 하면 됩니다.

백엔드 성능 모니터링

트래픽이 이상할 때 알려주는 프론트엔드 모니터링 서비스가 있는 것은 좋지만 그것만으로는 충분하지 않습니다. 백엔드에서도 무슨 일이 일어나고 있는지 알아야 합니다.

물론 관리형 호스팅 솔루션을 사용하면 공급자의 도움을 받을 수 있습니다. 그러나 서지의 파괴적인 영향을 사전에 예방할 수 있도록 서버 메트릭에 익숙해지는 것이 좋습니다.

다음은 주시해야 할 몇 가지 측정항목입니다.

  • 호스팅 리소스(메모리 및 디스크 공간 등),
  • 애플리케이션 성능(예: 오류율 및 리소스 사용량),
  • 연결성(예: 대기 시간 및 대역폭 사용률).

이러한 주요 측정항목에 익숙해지면 웹사이트에 무슨 일이 일어나고 있는지 또는 어떻게 수정해야 하는지 알 수 없습니다.

이제 DigitalOcean을 사용하면 이러한 편리한 메트릭에 액세스할 수 없습니다. 실시간 모니터링 및 경고도 설정합니다. 그게 다가 아닙니다.

많은 모니터링 시스템의 문제는 시스템 중단, 오류 및 불안정성을 찾아보지만 조치를 취하는 것은 여전히 ​​사용자에게 달려 있다는 것입니다. 그러나 DigitalOcean을 사용하면 특정 시나리오가 감지될 때 발생하도록 특정 작업을 자동화할 수 있습니다.

예를 들어, 귀하의 웹사이트가 연말연시 세일에 대해 예상했던 것보다 훨씬 더 많은 트래픽을 받고 있다고 가정해 보겠습니다. 리소스가 너무 빨리 고갈되어 일반적으로 웹 사이트가 크롤링 속도가 느려지거나 완전히 충돌할 위험이 있습니다. 그러나 이 경우 모니터링 메커니즘에서 문제를 확인했으며 자동 크기 조정 작업이 트리거되었습니다.

특정 이벤트에 대한 서버의 응답을 자동화하는 것이 얼마나 유용한지 상상해 보십시오. 웹 사이트를 복원하는 방법에 대해 걱정하는 시간을 줄이고 대신 높은 수준의 트래픽을 유지하기 위해 서버 자산을 계속 최적화하는 방법에 집중할 수 있습니다.

마무리

고객의 웹사이트 또는 PWA가 트래픽 급증에 대비하지 않은 경우 먼지가 가라앉으면 비즈니스에 큰 문제가 발생할 수 있습니다. 그리고 비용이 드는 것은 다운타임이나 느린 로딩 페이지 뿐만이 아닙니다.

추가 방문자가 모두 깨진 체크아웃 또는 양식에서 맬웨어 감염에 이르기까지 상태가 좋지 않은 웹 사이트를 보게 하면 비즈니스에도 피해를 줄 수 있습니다.

손가락을 꼬거나 웹 사이트가 트래픽 급증 중 하나를 경험할 만큼 충분히 크지 않거나 인기가 없다고 스스로에게 말하기보다는 대비하십시오. DigitalOcean의 실용적인 클라우드 호스팅 솔루션으로 시작한 다음 이를 둘러싼 서버, 자산 및 프로세스를 최적화하면 웹사이트가 급증에서 살아남을 수 있을 뿐만 아니라 크게 이익을 얻을 가능성이 높아집니다.