높은 트래픽을 위해 WordPress 웹 사이트를 확장하는 11가지 효과적인 방법

게시 됨: 2020-02-08

느린 웹 사이트 또는 시간 초과 서버는 비즈니스 및 브랜드 평판에 적합하지 않습니다. 이러한 다운타임은 수익성이나 신뢰에 해로운 영향을 미칠 수 있습니다. 웹사이트는 새로운 트래픽이 유입되는 것을 예상하고 대비할 수 있어야 사후 대응이 아닌 사전 예방이 가능합니다. 트래픽이 일시적으로 급증할 수 있는 요인을 알 수 없기 때문입니다. 예를 들어 블로그를 운영하는 경우 해당 게시물이 입소문을 타게 될 수 있습니다. 대부분의 인터넷 사용자가 참을성이 없기 때문에 단 몇 초의 가동 중지 시간으로 수천 달러의 손실이 발생할 수 있습니다. 그렇긴 하지만 WordPress는 많은 양의 트래픽을 잘 관리할 수 있지만 많은 비상 사태, 구성 및 설정이 의도적이어야 합니다. 살펴볼까요?

워드프레스 사용의 8가지 장점

  1. WordPress는 트래픽을 처리하지 않습니다. 호스트(호스팅 회사) 하세요!

웹 사이트 엔진으로서 WordPress 자체는 잠재적으로 높은 트래픽을 주로 처리하지 않습니다. 트래픽 처리 기능은 주로 호스팅 플랫폼에 따라 다릅니다. 불행히도 WordPress 웹 사이트를 호스팅하는 가상 머신은 단일 인스턴스의 문제로 인해 웹 사이트에 대한 서비스 손실이 발생할 수 있으므로 단일 실패 지점이 될 수 있습니다. 실제로 일부 호스팅 서버는 트래픽 임계값을 제한하는 반면 트래픽이 특정 임계값 이상으로 증가하면 계정을 업그레이드해야 하는 호스팅 서버도 있습니다. 따라서 호스팅 제공업체 체크리스트에 포함되어야 하는 기본 사항은 다음과 같습니다.

  • 첫째, 공급자가 최신 WordPress 버전을 쉽게 수용하는지 확인하십시오.
  • 두 번째로, 제한을 초과할 수 있는지 확인하십시오(더 많은 트래픽이 발생하기 시작할 때 사이트의 전송 속도 제한 및 대역폭).
  • 공유 웹 호스팅은 트래픽이 적은 프로젝트를 시작할 때 훌륭할 수 있지만 일단 시작하면 VPS(가상 사설 서버)로 전환해야 합니다. 공급자는 VPS에 대한 조항을 가지고 있어야 합니다.
  • 고객이 필요에 따라 쉽게 업그레이드할 수 있도록 계층형 계획에서 수직적 확장을 허용해야 합니다. 성능 향상을 위한 리소스 확장은 주로 수직 확장을 통해 달성할 수 있습니다. 본질적으로 WordPress 웹 사이트를 실행하는 가상 머신의 크기를 늘립니다.
  • 웹 사이트를 다양한 레이어로 분리하므로 수평 크기 조정이 가능한지 확인하십시오. 예를 들어 프론트 엔드 서버, 데이터베이스 서버, 프록시 계층 및 이미지 계층을 분리하여 리소스를 더 쉽게 확장할 수 있습니다.
중요 영역 목록

빠른 팁: 가능하면 고성능 WordPress 서버에 cPanel/WHM(WebHost Manager)을 배포하지 마십시오. 트래픽이 많은 웹 사이트의 속도가 느려질 수 있습니다.  

  1. 웹사이트에서 Elasticsearch 활용 하기

특히 MySQL과 MariaDB는 검색 기능으로 유명하지 않습니다. 그 강점을 염두에 두고 구축한 것도 아니고, 워드프레스 팀이 검색 로직을 개선하지 못하는 이유 중 하나입니다. Java로 작성된 ElasticSearch는 검색 및 분석을 위한 배포된 빠른 RESTful 검색 엔진 소프트웨어입니다. 그럼에도 불구하고 Elasticsearch를 활용하여 WordPress 데이터베이스 쿼리 속도를 높일 수 있습니다. 특히 사이트 데이터베이스 콘텐츠의 인덱스를 구축함으로써 ElasticSearch를 사용하여 동일한 검색을 수행하는 동안 MySQL 쿼리보다 훨씬 빠르게 이 인덱스를 검색할 수 있습니다. Elasticsearch는 MySQL이 아닌 Elasticsearch로 쿼리 결과를 생성하기 위해 ElasticPress 플러그인을 설치하여 통합할 수도 있습니다. 이렇게 하면 성능이 향상되고 높은 트래픽을 더 잘 처리할 수 있습니다.

  1. 더 적은 그래픽과 더 최적화된 미디어

트래픽 급증 시 웹 사이트 오류를 ​​방지하기 위해 웹 사이트 디자인에 있는 그래픽 수를 줄일 수 있습니다. 미디어 최적화의 비상 사태는 이상적으로는 사이트를 더 가볍고 빠르게 로드하는 데 도움이 됩니다. 최고의 페이지 속도 성능을 얻는 것은 트래픽이 많은 에피소드 동안 좋은 안전망이 될 수 있습니다. 세 가지 기본 관행이 떠오릅니다.

  • 방문자가 웹 페이지의 해당 부분에 도달한 후에만 이미지를 제공하므로 이미지 및 지연 로드에 압축 플러그인을 사용할 수 있습니다.
  • 가능하면 항상 사이트의 미디어를 필수 이미지로만 제한하십시오.
  • 또한 YouTube 및 Vimeo와 같은 서비스의 비디오를 사이트에 임베드하십시오! 그런 다음 사이트에 전체 비디오를 업로드합니다.

더 읽어보기 : 워드프레스 웹사이트 속도 향상을 위한 팁

  1. 적은 플러그인

지금까지의 주제는 '적을수록 좋다'인 것 같습니다. 그러나 걱정하지 마십시오. 우리는 여전히 몇 가지 훌륭한 팁을 가지고 있습니다! 이상적으로 WordPress 플러그인은 설치된 WordPress 테마에서 "호출"되는 파일입니다. 플러그인은 기능을 쉽게 확장하거나 웹 시스템에 새로운 기능을 추가할 수 있습니다. 그러나 잘못 코딩된 플러그인은 필요하지 않은 경우에도 종종 너무 많은 팽창을 로드합니다.

기술적으로 테마나 플러그인이 없는 기본 인스턴스는 로드 상태에서 꽤 잘 수행될 수 있습니다. 그러나 누가 누드 테마를 원합니까? 또한 대부분의 플러그인은 불필요하게 복잡하고 부풀려질 수 있습니다. 이렇게 하면 페이지 로딩 속도가 빨라져 사이트 속도가 느려집니다. 따라서 테마가 데이터베이스에 너무 많은 쿼리를 생성하여 서버 활동이 증가하여 잠재적인 서버 오류가 발생할 수 있는 것을 피하기 위해 플러그인으로 사이트에 과부하가 걸리지 않도록 하십시오. 키 포인트:

  • 사용하지 않는 플러그인 삭제
  • 필요하지 않은 플러그인을 끕니다.
  • 필수 플러그인을 사용하세요. 불필요하거나 실험적인 것을 피하십시오.
  • 플러그인의 크기와 품질 등을 평가하기 위해 정기적으로 플러그인을 자주 감사하십시오.

더 읽어보기 : WordPress 플러그인을 사용해도 안전한가요?

  1. 콘텐츠 전송 네트워크 활용

다른 지리적 위치에서 웹 시스템을 호스팅하는 것은 말처럼 간단하지 않습니다. 방문자의 지리적 위치에 따라 웹 시스템의 로딩 속도가 다를 수 있습니다. 그럴 때 CDN이 큰 도움이 됩니다. CDN은 웹사이트 리소스의 캐시된 버전을 세계 여러 지역의 다양한 서버에 저장합니다. 이는 트래픽 초과가 발생하지 않도록 서버의 성능을 최대화하는 데 도움이 됩니다. CDN을 사용하면 전 세계 방문자의 웹사이트 로딩 속도를 줄일 수 있습니다.

더 읽어보기: WordPress 웹사이트를 Cloud Platform으로 마이그레이션

CDN은 이미지, JavaScript 및 CSS 파일과 같은 정적 콘텐츠를 캐싱하여 서버의 기능을 향상시킵니다. 따라서 방문자가 귀하의 웹 사이트를 방문하면 가장 가까운 서버에서 제공되므로 웹 사이트가 더 빨리 로드됩니다. CDN은 웹 사이트 파일이 전 세계 여러 데이터 위치에 배포 및 저장되기 때문에 트래픽이 많은 서버 로드를 방지하는 데 도움이 됩니다. CDN의 장점을 요약하자면:

  • 사이트 속도가 빨라집니다. 더 빠르게 로드됩니다.
  • 호스팅 제공업체와 CDN 플랫폼 간에 로드가 공유되므로 더 많은 트래픽을 처리할 수 있습니다.
  • CDN은 웹사이트의 대역폭을 절약하는 데 도움이 됩니다.
  • CDN은 여러 요청이 여러 서버에서 공유되므로 서비스 거부(DDOS) 공격으로부터 웹사이트를 보호하는 데 도움이 됩니다.

가장 인기 있는 '무료' CDN 대안은 WP 사이트에서 사용할 수 있는 Cloudfare입니다. Cloudflare 무료 CDN은 다음과 같은 이유로 훌륭합니다.

  • 대역폭 요금 없음: 대부분의 CDN 서비스와 달리 Cloudflare는 트래픽에 대해 요금을 부과하지 않습니다. 대부분의 CDN은 CDN에서 캐시된 콘텐츠를 제거하는 비용을 청구할 수 있습니다.
  • 전 세계 적용 범위: 전 세계에 100개 이상의 데이터 센터가 있는 Cloudfare는 여러 교환 지점에서 운영되므로 항상 고객과 가깝습니다.
  • 보안: 보안 조직으로 간주되며 "CDN"은 기본적으로 분산 역방향 프록시입니다. 따라서 메뉴에 보안 전문가를 추가하십시오.
WordPress와 함께 CDN을 사용하는 2가지 방법
  1. 상태 비저장 웹 계층 사용 고려

기본적으로 상태 비저장 응용 프로그램은 이전 상호 작용에 대한 지식이 필요하지 않으며 기본적으로 세션 정보를 저장하지 않습니다. 돌이켜 보면 상태 비저장 응용 프로그램은 기본적으로 웹 서버 인스턴스와 같은 사용 가능한 컴퓨팅 리소스에서 모든 요청을 처리할 수 있으므로 수평으로 확장할 수 있습니다. 따라서 해당 용량이 더 이상 필요하지 않을 때 개별 리소스를 안전하게 종료할 수 있습니다. 예를 들어, 실행 후 작업이 소진되거나 목적을 달성했습니다. 상태 비저장 웹 계층에서 리소스는 동료의 존재를 인식할 필요가 없으며 워크로드를 할당하는 방법만 있으면 됩니다. 상태 비저장 아키텍처를 적용하여 잠재적으로 예상되는 높은 트래픽을 처리할 수 있습니다.

  1. 데이터베이스 캐싱 및 최적화

데이터베이스 캐싱은 데이터베이스 호출을 줄이고 웹 시스템의 로딩 시간을 단축하므로 중요합니다. 대부분의 쿼리가 캐시에서 제공되면 데이터베이스에 도달해야 하는 쿼리 수가 줄어듭니다. 그 결과 데이터베이스 성능이 향상됩니다. 데이터베이스의 효율성을 향상시키는 다른 방법은 쿼리 자동 로드를 제한하고 자주 액세스하는 데이터 조각을 메모리에 저장하여 대기 시간을 줄이는 것입니다. 쿼리 캐싱과 적절한 인덱싱을 사용하여 데이터베이스 성능을 개선하는 것이 중요하지만 읽기가 많은 애플리케이션 워크로드에 대한 대기 시간을 줄이고 처리량을 늘릴 수 있습니다.

데이터베이스는 한동안 사용하고 나면 더 이상 필요하지 않은 훨씬 더 많은 정보를 갖게 됩니다. 이것은 시스템의 성능과 효율성을 감소시킵니다. 개정은 데이터베이스에 불필요한 정보를 생성하는 원인 중 하나입니다. 수정본은 페이지, 게시물 또는 사용자 정의 게시물 유형의 수정본을 자동으로 저장할 수 있는 WordPress 기능입니다. 기본적으로 60초마다 작업을 자동으로 저장합니다. 'wp-config.php' 파일에서 'WP_POST_REVISIONS'를 정의하여 이러한 자동 저장 간격을 관리할 수 있습니다. 30초, 2분마다 또는 요구 사항에 따라 수정본을 저장할 수 있습니다. 개정판을 완전히 끌 수도 있습니다. 또한 개정판을 끄더라도 사이트 성능이 향상되지 않는다는 점을 알아야 합니다.

이러한 불필요한 데이터를 모두 제거하려면 데이터베이스를 최적화해야 합니다. WordPress는 주로 MariaDB 또는 MySQL 데이터베이스를 사용합니다. 따라서 MySQL/MariaDB 설정을 최적화하거나 더 많은 메모리와 처리 능력을 제공함으로써 과부하된 서버가 도움이 될 수 있습니다. 또한 WordPress에는 데이터베이스를 정리할 수 있는 다양한 플러그인이 있습니다. 플러그인은 사용하지 않는 태그, 개정판, 휴지통에 든 게시물 등을 삭제하는 데 도움이 되며 데이터베이스를 최적화합니다.

  1. 올바른 캐싱 플러그인 사용  

다운타임이 발생하면 캐싱 플러그인이 웹사이트의 HTML 파일을 생성할 수 있으므로 트래픽이 증가할 때 유용합니다. 캐싱 플러그인을 선택할 때 다음과 같은 몇 가지 측면에 주의하십시오.

  • 업데이트 가능 여부
  • 콘텐츠 전송 네트워크 및 SSL 통합
  • 페이지 캐싱 기능
  • 데이터베이스 캐싱 강점

개인적인 추천은 W3TC 캐싱 플러그인이지만 캐싱 플러그인은 CDN 통합을 제공해야 합니다.

  1. 사이트 보안 보장

높은 트래픽은 주의해야 할 잠재적인 위협이 더 많기 때문에 보안은 WordPress 사이트의 규모에 영향을 미칩니다. 따라서 전문 보안 플러그인은 다음을 제공함으로써 맬웨어, SQL 주입, 스팸, DDoS 공격 등으로부터 웹사이트를 보호할 수 있습니다.

  • 능동적인 보안 모니터링
  • 무차별 대입 공격 보호
  • 맬웨어 검사
  • 보안 모니터링 및 관리(특히 DDoS의 경우),
  • 블랙리스트 모니터링
  • 보안 강화 및 해킹 후 조치
  • 방화벽

또한 다음과 같은 개인적인 우발 상황을 처리할 수 있습니다.

  • 2단계 인증으로 wp-admin 비밀번호 강화
  • 사이트에서 로그인 시도 제한
  • 네트워크에 바이러스 백신 적용 FTP 대신 SFTP 사용
  • wp-config.php 및 .htaccess 파일 숨기기
  • 제어하는 네트워크를 사용하지 않을 때는 VPN 가상 사설망을 사용하십시오.
  • VPS 가상 사설 서버를 사용하여 서버 환경을 더 잘 제어할 수 있습니다.
  1. 바이트코드 캐싱 활용

PHP 스크립트는 실행될 때마다 구문 분석되고 컴파일됩니다. 따라서 이상적으로는 PHP 바이트코드 캐시를 사용하여 PHP 컴파일의 출력이 RAM에 저장되어 동일한 스크립트를 반복해서 컴파일해야 하는 것을 방지할 수 있습니다. 결과적으로 이것은 PHP 스크립트 실행과 관련된 오버헤드를 줄여 성능을 향상시키고 CPU 요구 사항을 낮춥니다. OPcache는 바이트코드 캐싱에 도움이 될 수 있습니다.

  1. 부하 분산 기술 적용

부하 분산은 들어오는 네트워크 트래픽을 백 엔드 서버 그룹, 서버 풀 또는 서버 팜에 효과적으로 분산합니다. 트래픽이 많은 웹 사이트는 수천 명의 사용자에게 서비스를 제공하므로 동시 요청이 불가피하므로 비용 효율적으로 확장하려면 로드 밸런싱이 권장됩니다. 이상적으로는 로드 밸런서를 사용하여 단일 서버가 다운되면 트래픽을 나머지 온라인 서버로 리디렉션합니다. 로드 밸런서는 다음 작업을 수행합니다.

  • 여러 서버에 네트워크 로드 또는 클라이언트 요청을 효율적으로 분산합니다.
  • 온라인 서버에만 요청을 보내 높은 안정성과 가용성을 보장합니다.
  • 수요에 따라 서버를 추가하거나 빼는 유연성을 제공합니다.
로드 밸런싱 알고리즘

로드 밸런싱을 보여주기 위해 여러 데이터 센터의 수천 대의 서버에서 실행되는 하나의 WordPress 다중 사이트 설치인 wordpress.com (wordpress.org 아님)의 예를 사용할 수 있습니다. 특히 WordPress.com은 사이트 빌더로서 HyperDB를 통해 여러 사이트를 호스팅합니다.   중앙 데이터베이스에 연결된 분리된 데이터베이스 인스턴스 전체에 수백만 개의 테이블을 로드 밸런싱하고 배포합니다. 그렇기 때문에 wordpress.com 사이트는 최종 사용자 요청을 여러 웹 서버 노드에 배포하여 기본적으로 로드 밸런싱을 수행할 때 높은 트래픽을 원활하게 처리할 수 있습니다.

자체 호스팅 WordPress 사이트에서 10만 명의 동시 방문자를 처리할 수 있습니까?

오늘의 질문 맞죠? 이론상으로는 그렇습니다. 하지만 이 결과를 얻으려면 많은 노력이 필요합니다. 현장 감사를 수행해야 하며 가장 확실하게 다음을 수행해야 합니다.

  • 로드 밸런싱
  • MySQL 복제
  • 정적 콘텐츠 오프로딩
  • 서버 아키텍처의 탄력성.
  • 평판이 좋은 CDN 제공업체
  • Disqus와 같은 효율적인 댓글 관리 시스템
  • 캐싱 효율성 극대화
  • 탄력적인 클라우드 배포 활용
  • WordPress Stats 및 Google Analytics와 같은 분석 및 추적 도구를 자주 활용
  • NGINX와 같은 고성능 HTTP 서버를 활용하십시오.

최소한 하드웨어와 사용 중인 플러그인 유형에 따라 많은 것이 달라집니다. 미디어 및 업로드용으로 별도의 클라우드 저장소를 사용하는 것을 고려할 수 있으며 사용자의 업로드를 로컬 파일 시스템이 아닌 저장소로 보내는 플러그인을 사용할 수 있습니다. 또는 AWS 인스턴스를 사용하는 경우 리전 내의 여러 가용 영역에 걸쳐 사이트를 설계하여 전체 아키텍처의 안정성을 높이는 것이 좋습니다. 또한 SSD 드라이브를 사용하고 HDD를 피하십시오. 솔리드 스테이트 드라이브는 HDD보다 안정적이고 안전하며 빠르기 때문입니다.

결론

결론적으로, 최적화된 미디어, 스크립트 및 캐싱은 서버가 느리거나 혼잡하거나 공유되거나 부적절하게 설정된 경우에는 실제로 도움이 되지 않습니다. 따라서 성능 지향적이므로 NGINX 서버를 사용하는 것이 좋습니다. 또한 CDN 캐시를 사용하도록 하고 가능한 경우 대역폭과 같은 서버의 리소스 사용량을 감소시키므로 추가 성능 향상을 위해 Cloudflare를 사용해야 합니다. 주목할만한 언급에는 귀하의 WP 버전 및 테마를 정기적으로 업데이트하는 것이 포함됩니다. 추가 정보 및 문의 사항이 있으시면 언제든지 저희에게 연락해 주십시오.