귀하의 WordPress 웹 사이트는 확장 가능합니까?

게시 됨: 2017-05-16

WordPress 웹 사이트는 확장 가능합니까? 대규모 WordPress 설치의 예가 많이 있습니다. 예를 들어 WordPress.com은 매달 수천만 개의 페이지뷰를 발생시키는 거대한 다중 사이트 설치입니다. 또한 주어진 순간에 수천 명의 사용자에게 서비스를 제공합니다.

다른 예로는 Time, TechCrunch 및 CNN이 있습니다. 의심의 여지가 없습니다. 적절한 환경을 조성하기만 하면 어떤 양의 트래픽도 처리할 수 있을 만큼 강력한 WordPress로 확장 가능한 웹사이트를 확실히 구축할 수 있습니다. 확장을 위해 설치를 구성하는 것은 복잡할 수 있지만 모든 사이트 소유자에게 가치 있는 투자입니다. 이 게시물에서는 확장성을 보장하기 위해 집중할 수 있는 몇 가지 영역에 대해 살펴보고 확장 가능한 환경을 설정하는 방법에 대한 팁을 제공합니다.

확장성이란 무엇을 의미합니까?

WordPress 웹 사이트를 확장 가능하게 만드는 요소는 무엇입니까? 확장 가능한 WordPress 웹 사이트에는 확장 또는 확장을 통해 용량을 늘릴 수 있는 기능이 있습니다.

  • 확장 – 하드웨어의 성능을 높입니다(RAM이 많을수록 CPU가 더 강력해짐).
  • 수평 확장 – 노드를 추가하여 용량을 늘립니다(여러 컴퓨터에 동일한 사이트 복사본이 분산됨).

이렇게 하면 성장을 수용할 수 있는 유연성을 얻을 수 있습니다. 기본적으로 문제 없이 사이트를 확장할 수 있기를 원합니다. WordPress를 사용하면 소프트웨어에 대해 걱정할 필요가 없습니다. WordPress 코어는 데이터(MySQL 데이터베이스)에서 마크업(HTML 및 CSS)을 분리하는 것과 같은 계층화된 소프트웨어 아키텍처 규칙을 구현합니다. 아래에서 최대 확장성을 보장할 수 있는 몇 가지 방법을 살펴보겠습니다.

개발 환경

귀하의 WordPress 웹 사이트는 확장 가능합니까?

이미지 제공: Sentavio / shutterstock.com

WordPress 사이트를 확장할 때 가장 어려운 부분 중 하나는 개발 환경을 설정하는 것입니다. 좋은 개발 환경은 문제 없이 프로덕션 환경을 반영합니다. 소규모 사이트가 있는 경우 확장되지는 않겠지만 라이브 개발을 중단할 수 있습니다.

개발자가 서로의 발을 밟지 않도록 하려면 일종의 버전 제어가 필요합니다. 버전 제어 소프트웨어는 나중에 불러올 수 있도록 시간이 지남에 따라 파일에 대한 변경 사항을 기록합니다. 또한 확장 가능한 WordPress 웹 사이트를 개발하는 훨씬 더 효율적이고 전문적인 방법입니다.

오픈 소스 커뮤니티의 노력 덕분에 사용할 수 있는 우아한 솔루션이 많이 있습니다. Git은 여러 개발자가 별도의 저장소에서 원격으로 작업할 수 있는 분산 버전 제어 소프트웨어입니다. 안정적이고 빠르며 엄청나게 큰 프로젝트를 처리할 수 있습니다. 결국 Git은 Linux 개발을 위해 Linus Torvalds가 만들었습니다.

VVV(Varying Vagrant Vagrants)로 킬러 개발 환경을 구축할 수 있습니다. 이 무료 오픈 소스 소프트웨어는 WordPress로 분산 개발 환경을 만드는 데 이상적입니다. 이에 대한 자세한 자습서는 WordPress 개발 환경 설정에 대한 궁극적인 가이드를 확인하세요. WordPress.org에는 VVV 설치에 대한 유용한 자습서도 있습니다.

수평적 확장성

수평 확장 또는 수평 확장은 확장 가능한 환경을 만드는 데 가장 중요한 개념 중 하나입니다. 이를 통해 다양한 시스템(서버)에서 웹사이트를 실행할 수 있습니다. 어떤 사람들은 인프라를 "탄력적인 아키텍처"라고 부릅니다. 필요한 리소스의 양에 따라 리소스 양이 확장되거나 줄어들 수 있기 때문입니다.

이는 클러스터링, 로드 밸런싱, 가상화와 같은 클라우드 컴퓨팅 방식을 통해 수행됩니다. 컴퓨터 과학에서 클러스터링은 유사한 개체를 그룹으로 구성하는 프로세스입니다. 따라서 단일 클러스터에는 웹사이트의 파일, 데이터베이스 및 소프트웨어가 포함됩니다. 클러스터링은 하드웨어 및 소프트웨어 오류로 인한 문제를 제거하여 웹 사이트의 고가용성을 보장합니다. 어떻게 작동합니까?

사이트에 트래픽이 급증하면 로드 밸런서는 수평 확장을 통해 여유 공간을 확보하기 위해 더 많은 리소스를 적절하게 할당하는 방법을 결정합니다. 이는 동적으로 발생하며 방문자는 아무 것도 눈치채지 못합니다. 아이디어는 웹 사이트의 동일한 복사본이 여러 컴퓨터에 배포되어 있고 모두 서로에 대해 알고 있다는 것입니다. 따라서 트래픽이 증가하거나 스택 구성 요소에 장애가 발생하는 경우 항상 대기 중인 클러스터의 컴퓨터가 있습니다.

Amazon Web Services(AWS) 또는 RackSpace와 같은 클라우드 호스팅 서비스는 수평 확장성을 지원하는 두 가지 인기 있는 클라우드 호스팅 제공업체입니다. 탄력적 아키텍처를 사용하는 일반적인 서버 인프라의 예는 AWS를 사용하여 고가용성 WordPress 웹 사이트 배포에 대한 이 자습서를 확인하십시오.

캐싱

캐시는 메모리를 위한 임시 저장 공간입니다. 캐싱을 사용하면 콘텐츠를 더 빠르게 제공하고 동시성 문제를 피할 수 있습니다. 모든 CMS에는 일종의 캐싱이 필요하며 WordPress도 다르지 않습니다. 나쁜 소식은 캐싱이 엄청나게 복잡할 수 있다는 것입니다. 좋은 소식은 오픈 소스 커뮤니티가 이 문제에 대해 다양한 솔루션을 제시했다는 것입니다. WP Super Cache 및 Batcache를 포함하여 도움이 되는 도구가 많이 있습니다.

역방향 프록시 캐싱(페이지 캐싱)

역 프록시 캐싱은 동적 웹 페이지를 로드하는 효율적인 방법입니다. 리버스 프록시는 워드프레스와 브라우저 사이에서 중개자 역할을 하는 서비스입니다. 이렇게 하면 주 서버의 로드를 줄이고 인식되는 페이지 로드 시간을 줄이는 데 도움이 될 수 있습니다.

문제는 PHP 서버가 리소스를 많이 사용한다는 것입니다. 그들은 많은 수의 복잡한 작업을 실행하여 서버를 방해할 수 있습니다. 역방향 프록시를 구현하여 서버의 부하를 줄일 수 있습니다.

예를 들어 웹사이트의 홈페이지에 방문자가 있다고 가정해 보겠습니다. 오늘의 첫 방문입니다. 이 시점에서 아직 홈 페이지의 캐시된 버전이 없습니다.

  1. 사용자가 주소 표시줄에 URL을 입력하여 서버에서 페이지를 요청합니다.
  2. 요청은 아직 페이지의 캐시된 버전이 없는 프록시를 통해 WordPress로 전달됩니다.
  3. WordPress는 홈페이지를 생성하고 역 프록시에 응답을 다시 제공합니다.
  4. 그런 다음 프록시는 브라우저에 응답을 보내고 해당 페이지의 캐시된 복사본을 저장합니다.
  5. 캐시가 있는 한 해당 페이지를 요청하는 모든 사용자는 페이지의 캐시된 버전을 받게 됩니다.

개체 캐싱

개체 캐싱의 개념은 개별 개체에서 작동한다는 점을 제외하면 페이지 캐싱과 유사합니다. 많은 사용자가 사이트에 로그인하면 많은 동시성 문제가 나타날 수 있습니다. 개체 캐싱은 데이터 저장소에 응용 프로그램 개체(예: 비디오, 이미지, 문서)를 저장합니다. 응용 프로그램 개체를 캐싱하면 데이터베이스에 대한 의존도가 낮아져 많은 메모리가 확보됩니다.

캐싱에는 많은 옵션이 있습니다. Cloudflare, Akamai, EdgeCast 및 KeyCDN과 같은 콘텐츠 전송 네트워크는 대규모 역방향 프록시 역할을 할 수 있습니다. Varnish 및 WP Super Cache는 WordPress로 캐싱을 구현하는 데 널리 사용되는 두 가지 옵션입니다.

쿼리 성능

귀하의 WordPress 웹 사이트는 확장 가능합니까?

Oleg Erin의 이미지 / Shutterstock.com

데이터베이스는 종종 최악의 병목 현상의 원인이 될 수 있습니다. 느린 쿼리는 서버의 PHP 애플리케이션을 묶고 탄력적인 아키텍처를 가지고 있더라도 모든 활동을 정지시킬 수 있습니다. 앞서 언급했듯이 PHP 서버는 서버 속도를 크게 저하시킬 수 있습니다. 캐싱으로 작업이 완료되지 않는 경우 느린 쿼리를 식별하여 쿼리 성능을 개선하는 방법을 찾을 수 있습니다.

느린 쿼리는 SQL 데이터베이스, 사이트를 실행하는 네트워크 또는 서버 문제로 인해 발생합니다. 이러한 일이 발생할 수 있는 이유는 다양합니다. 확실히 모든 것이 하나의 크기로 고정되어 있지는 않습니다. 쿼리 성능을 향상시키는 첫 번째 단계는 느린 쿼리를 식별하는 것입니다.

문제를 식별하면 조치를 취할 수 있습니다. 때로는 더 많은 대역폭을 구입하는 것처럼 간단할 수도 있고 코드를 수정해야 할 수도 있습니다. 이는 까다로울 수 있습니다.

쿼리를 모니터링하는 도구를 찾고 있다면 WordPress Query Monitor 플러그인을 확인하세요.

검색 개선

100만개와 같이 많은 양의 게시물이 있는 경우 데이터베이스가 설정되는 방식에 유의해야 합니다. 대부분의 대규모 사이트에는 최적화된 검색 색인이 있습니다. WordPress에 추가된 맞춤 검색 엔진입니다.

사이트에 게시물이 많은 경우 WordPress의 콘텐츠 검색 쿼리가 제대로 작동하지 않습니다. 속도 면에서도 아쉬운 점이 있습니다. 이 문제에 대한 일반적인 수정은 전용 검색 인덱스를 만드는 것입니다. 이렇게 하면 이러한 쿼리가 데이터베이스에서 제외되어 사용자에게 더 나은 검색 경험을 제공하고 데이터베이스 성능이 향상됩니다.

대규모 WordPress 사이트를 위한 인기 있는 검색 엔진에는 ElasticSearch 및 ApacheSolr이 있습니다.

마무리

적절한 규모에서 시작하는 것도 중요합니다. 간단하게 시작한 다음 나중에 최적화하십시오. 도널드 크누스(Donald Knuth)의 말을 인용하자면 "조기 최적화는 모든 악의 근원입니다." 성장을 수용하되 작은 기반에 거대한 전자 상거래 사이트를 짜내려고 하거나 그 반대의 경우도 마찬가지입니다. 이벤트 페이지와 같은 단순한 용도라면 확장 가능한 사이트를 구축할 필요가 없을 수도 있습니다.

일반적으로 탄력적 아키텍처는 전자 상거래 웹 사이트의 표준입니다. 이 중 일부는 엄청나게 복잡해 보일 수 있지만 실제로 모든 것을 이해할 필요는 없습니다. 기본 사항만 알고 있으면 대규모 사이트에 적합한 강력한 환경을 구축할 수 있습니다. 올바른 클라우드 서비스를 찾고 올바른 CDN에 연결하기만 하면 됩니다.

의견 섹션에서 경험을 자유롭게 공유하십시오. WordPress 웹 사이트를 확장 가능하게 만들기 위해 어떤 단계를 수행했습니까?

Turbodesign / Shutterstock.com의 기사 썸네일 이미지