WordPress에서 Redis 캐싱을 설정하고 구성하는 방법

Rifat 워드프레스 튜토리얼 Sep 19, 2023

WordPress는 오픈 소스 콘텐츠 관리 시스템(CMS)으로 기능하여 웹 스크립팅 언어에 대한 숙련도를 얻을 필요 없이 콘텐츠 관리를 용이하게 합니다. 텍스트, 이미지, 비디오를 복잡하지 않게 추가함으로써 웹사이트나 블로그를 인터넷에 구축하고 게시할 수 있습니다. WordPress의 운영 기반은 PHP와 MySQL 데이터베이스에 있습니다.

WordPress로 구동되는 웹사이트를 구축하는 과정에서 콘텐츠 속성과 시각적 미학을 맞춤화하기 위해 테마와 플러그인을 통합하는 것이 일반적입니다. 이를 통해 SEO 및 분석과 같은 타사 확장 기능을 포함한 보충 구성 요소를 통해 웹 사이트 기능을 점진적으로 강화할 수 있습니다. 이러한 테마와 플러그인의 상호 의존성은 웹페이지 콘텐츠의 호스트 역할을 하는 MySQL 데이터베이스 내에서 저장소를 찾습니다.

대조적으로 Redis는 캐싱 시스템으로 작동할 준비가 된 오픈 소스, 인 메모리 데이터 구조 저장소를 구성합니다. 이 소프트웨어는 백그라운드 서비스로 작동하여 시스템 메모리 내의 데이터 캐싱 및 보존을 촉진합니다. 결과적으로 이 전략은 서버 응답 시간과 전반적인 웹 사이트 속도를 높이는 데 기여합니다.

곧 출시될 지침 가이드는 WordPress 웹사이트나 블로그 내에서 Redis 개체 캐시를 설정하고 구성하는 데 필요한 지식을 제공하도록 설계되었습니다. 그러나 설정 세부 사항을 살펴보기 전에 WordPress와 Redis의 운영 메커니즘과 공생 활용에 대한 근거를 살펴보는 것이 필요합니다.

놀라운 웹사이트 만들기

최고의 무료 페이지 빌더 Elementor와 함께

지금 시작

Redis 작동 방식

웹 애플리케이션이 서버에서 작동하고 기능을 위해 MySQL과 같은 데이터베이스를 활용하는 시나리오를 생각해 보십시오. 웹 애플리케이션은 이 데이터베이스에서 특정 레코드를 검색해야 합니다. 이러한 쿼리를 실행하면 요청된 기록을 제공하는 데 상당한 시간 지연이 발생합니다. 데이터 검색을 위한 대기 시간이 1분을 초과하면 잠재적으로 최적이 아닌 사용자 경험으로 이어질 수 있다는 점은 주목할 만합니다.

그러나 Redis가 이러한 데이터 처리 작업의 속도와 효율성을 향상시키는 것을 목표로 하는 솔루션을 제공한다는 점은 주목할 가치가 있습니다. Redis를 활용하면 전용 Redis 캐시 인스턴스 내에서 MySQL 데이터베이스 쿼리를 통해 처리된 데이터를 저장할 가능성이 발생합니다. 이 전략적 스토리지를 사용하면 서버 메모리에서 데이터를 직접 검색할 수 있으므로 데이터베이스로 다시 전체 경로를 이동할 필요가 없습니다.

운영 메커니즘에는 원하는 데이터의 가용성을 확인하기 위해 Redis와 인터페이스하는 웹 서버가 수반됩니다. 결과적으로 후속 요청이 이전 쿼리 트랜잭션을 미러링하는 경우 객체 캐시 내에 있는 Redis 객체가 개입하여 요청을 이행하므로 MySQL 서버에 새로 참여할 필요가 없습니다.

수많은 장치를 포함하는 대규모 집합을 대표하는 광범위한 웹 서버 배열의 오케스트레이션이 특징인 경우 단일 Redis 캐시의 통합은 이러한 웹 서버에서 발생하는 요청과 응답을 능숙하게 집계할 수 있습니다. 이 구성은 각 작업 인스턴스 동안 데이터베이스에 대한 전체 궤적을 시작하기 위해 각 개별 웹 서버에 대한 요구 사항을 효과적으로 생략합니다.

Redis를 WordPress와 통합해야 하는 이유

WordPress Core 설치 내에서 Redis Cache를 활성화하면 클라이언트에 콘텐츠를 신속하게 전달할 수 있는 이점이 있습니다. WordPress에서 MySQL 쿼리 조회를 광범위하게 사용하면 트래픽이 많은 인스턴스에서 성능 저하가 뚜렷해집니다.

이러한 상황에서 Redis 캐시는 이 시나리오를 능숙하게 해결하는 중추적인 역할을 맡습니다. 메모리 기반 키-값 쌍 데이터베이스로 작동하는 Redis는 해당하는 모든 데이터를 메모리 내에 보존하여 WordPress에 맞춤화된 신속한 서버 측 캐싱 솔루션을 제공합니다.

우리는 WordPress 데이터베이스의 활용도를 개선하기 위해 고안된 수단인 Redis 객체 캐시를 구축할 것입니다. 이 Redis 객체 캐시는 MySQL 서버에 대한 특정 쿼리에서 파생된 캐시된 출력의 저장소 역할을 합니다. 결과적으로, 다른 사용자가 동일한 게시물이나 기사에 액세스하면 개체 캐시가 즉시 요청을 충족하므로 MySQL 서버에 쿼리할 필요가 없습니다.

따라서 WordPress MySQL 데이터베이스의 반복 호출은 복잡한 쿼리의 캐싱을 통해 완화되어 후속 유사 요청에 대해 캐시된 결과 전달을 용이하게 합니다. 이 전략은 MySQL 서버에 대한 추가 왕복을 회피하여 결과적으로 서버 응답 시간과 전체 사이트 속도를 높입니다.

작업에 대한 사전 요구 사항

이 가이드에 설명된 지침을 진행하려면 원격 서버에서 호스팅되는 운영 중인 WordPress 웹사이트를 소유하는 것이 필수적입니다. 이러한 필요성의 근거는 WordPress의 서버측 렌더링 특성을 고려할 때 개인용 컴퓨터에서 로컬로 호스팅되는 사이트를 최적화하는 것이 불가능하다는 사실에서 비롯됩니다. 결과적으로, 원격 서버에서 WordPress를 호스팅해야 하는 필요성이 대두되고 있으며, 이는 Redis 캐시 구성뿐만 아니라 서버 응답 시간 및 전체 사이트 속도 향상을 위한 전제 조건입니다. 이 튜토리얼의 내용을 효과적으로 활용하려면 WordPress 활용에 대한 기본적인 이해가 필수적이라는 점을 기억하는 것이 가장 중요합니다.

AWS EC2 서버와 함께 WordPress 설치

이 지침 가이드에서는 Amazon Web Services(AWS) 플랫폼을 활용하여 WordPress를 설치했습니다. 아래에는 구성 프로세스를 설명하는 간결한 절차 지침이 나와 있습니다. 처음에는 활성 AWS 계정이 있는지 확인하는 것이 중요합니다. 이 예시의 목적에는 무료 계층 계정이면 충분하다는 점은 주목할 만합니다.

계속해서 AWS 콘솔에 액세스하고 Amazon Elastic Compute Cloud(EC2) 서비스로 이동하면 가상 인스턴스가 시작됩니다. 그런 다음 AWS Marketplace 구역 내에서 WordPress 애플리케이션을 부지런히 검색합니다. 현재 구성이 여전히 무료 계층 범주에 적합하다는 점을 강조하는 것이 적절합니다. 따라서 Apache HTTP Server 아키텍처 위에서 작동하는 WordPress의 Bitnami 패키지 버전을 선택하세요.

적절한 AWS 인스턴스 유형을 선택합니다. 이 특정 시나리오의 경우 무료 등급 자격을 갖춘 t2 마이크로 인스턴스 유형을 선택하세요. 그런 다음 "시작 검토" 버튼을 누르고 확인이 완료되면 인스턴스 시작을 실행합니다.

이 서버와 로컬 컴퓨터 사이에 보안 연결을 설정하려면 새로운 키 쌍을 생성하세요. 인스턴스를 시작하기 전에 이 프로세스에서 다운로드한 키 쌍이 유지되는지 확인하세요.

AWS가 인스턴스 시작을 초기화하고 시작하는 동안 인내심을 가지십시오. 시작된 인스턴스에 액세스하려면 아래 표시된 대로 제공된 시작 식별자를 클릭하기만 하면 됩니다.

인스턴스의 작동 상태가 확인되고 WordPress가 성공적으로 구성되면 할당된 IP 주소가 분명해집니다. 최근 개설된 WordPress 블로그에 액세스하려면 지정된 공용 IPv4 주소를 웹 브라우저에 입력하기만 하면 됩니다. 프로덕션 환경의 경우 도메인 이름을 직접 사용하면 충분합니다.

PuTTY를 사용하여 서버에 액세스

Windows 플랫폼에서 SSH(Secure Shell) 및 텔넷 기능을 용이하게 하는 오픈 소스 클라이언트인 PuTTY 애플리케이션을 구매하는 것으로 시작하십시오. 획득 후 컴퓨터에 PuTTY 설치를 진행합니다.

PuTTY가 성공적으로 설치되면 컴퓨터 디렉터리에서 PuTTYgen 유틸리티를 찾아 실행을 시작합니다. 이 단계에서는 이전에 생성된 키 쌍을 공개-개인 키 파일로 변환해야 합니다. PuTTYgen 인터페이스 내에서 지정된 키를 로드하고 키 생성 프로세스를 시작한 후 생성된 개인 키를 보존합니다.

이러한 절차에 이어 PuTTY 애플리케이션을 시작하고 관련 서버 호스트 이름 또는 도메인 이름을 입력합니다. 인터페이스를 통해 '세션' 섹션으로 이동하여 관련 IP 주소 또는 도메인 이름을 제공하십시오(구성된 경우).

추가 구성은 '연결' 메뉴, 특히 'SSH' 하위 섹션과 그 이후의 '인증' 내에서 보장됩니다. 여기에서는 최근에 저장된 SSH 키를 로드해야 합니다. 일단 구성되면 '열기' 옵션을 선택하여 연결을 설정할 수 있습니다.

성공적으로 연결되면 터미널 인터페이스가 표시됩니다. 로그인 자격 증명으로 'bitnami'를 입력합니다. 주목할 만한 점은 'bitnami'가 워드프레스 설치 시 규정된 기본 사용자 이름이라는 것입니다. 사용자 이름 수정이 구현된 경우 그에 따라 수정된 사용자 이름을 입력하십시오. 이 터미널 인터페이스는 WordPress 서버의 기능을 향상시키기 위해 추가 라이브러리와 확장 기능을 도입하는 대화형 플랫폼을 제공합니다.

루트 서버에 Redis 추가

이제 WordPress가 동일한 루트 서버에서 실행되고 있으므로 Redis를 추가해야 합니다. 이 작업을 수행하려면 방금 로그인한 PuTTY 터미널에서 다음 명령을 실행하세요.

sudo apt install redis

결과적으로 Redis는 이 IP 주소에 설치됩니다. sudo systemctl restart redis.service 사용하여 다시 시작하여 모든 구성을 허용할 수 있습니다. Redis 서버가 작동 중인지 확인하기 위해 실행해 보겠습니다.

sudo systemctl status redis

Redis가 우리 서버에 올바르게 구성되었습니다. redis-clikeys * 명령을 실행하면 Redis 캐시 키가 아직 등록되지 않은 것을 확인할 수 있습니다.

이제 모든 것이 설정되었으므로 WordPress wp-admin 으로 이동하여 Redis 플러그인을 추가해야 합니다. 결과적으로 아래와 같이 IP 주소 또는 도메인 이름과 wp-admin 입력하면 됩니다.

your-ip-address/wp-admin

AWS에서 실행 중인 인스턴스로 이동하여 "모니터링 및 문제 해결"을 마우스 오른쪽 버튼으로 클릭한 다음 wp-admin 로그인 정보를 입력합니다. 시스템 로그를 주세요. wp-admin에 액세스하려면 기본 Bitnami WordPress 로그인 정보를 받게 됩니다. 그리고 관리 대시보드에 도달했습니다.

WordPress에 Redis 추가


Redis를 구성하기 전에 Query Monitor 플러그인 설치 및 활성화를 진행해야 합니다.

쿼리 모니터 플러그인은 데이터베이스 쿼리, PHP 오류, 후크 및 작업, 블록 편집기 내의 블록, 대기열에 추가된 스크립트 및 스타일시트, HTTP API 호출 등을 포함한 다양한 측면의 디버깅을 용이하게 합니다. 또한 개별 플러그인으로 구성된 포괄적인 데이터베이스 쿼리 수를 표시하는 기능을 제공합니다.

이 프로세스를 시작하려면 웹 사이트 홈페이지로 이동하여 쿼리 모니터 메뉴에 액세스하세요.

그러면 쿼리 모니터 대시보드가 ​​시작됩니다.

그런 다음 이 특정 페이지에서 얻은 측정 항목에 주의를 기울이십시오. 특히, 이는 단 0.0013밀리초 내에 실행되는 누적 23개의 데이터베이스 쿼리로 관찰할 수 있는 상대적으로 복잡하지 않은 웹페이지입니다.

이 예비 단계가 완료되면 새 플러그인 도입을 진행하세요. 예시로 "Redis"를 검색하고 특정 " Redis Object Cache " 플러그인을 선택하세요.

선택 후 플러그인 설치 및 활성화를 진행하세요. 그런 다음 대시보드 메뉴의 Redis 설정 섹션으로 이동하세요. 이 시점에서는 개체 캐시 기능을 활성화하는 것이 필수적입니다.

이 지침을 따르면 Redis는 기본 설정을 사용하여 구성됩니다.

확인

웹사이트 최적화의 맥락에서 기본 "hello world" WordPress 블로그와 같은 웹사이트의 블로그에 액세스하면 이 요청의 결과가 Redis 데이터 저장소에 저장됩니다.

그런 다음 터미널로 이동하여 지정된 키(*로 표시)와 함께 " redis-cli " 명령을 사용하여 Redis 명령줄 인터페이스(CLI)를 시작합니다. 이 시점에서 Redis가 새로운 WordPress(wp) 키를 적절하게 기록했음을 알 수 있습니다.

이 구성은 WordPress 환경 내에서 캐싱 목적으로 Redis 설정을 완료합니다.

효과를 확인하려면 Query Monitor를 사용하는 동시에 처음 로드한 홈페이지를 새로 고치십시오.

결과 관찰 결과는 주목할 만한 개선 사항을 보여줍니다. 이제 페이지는 단 3개의 데이터베이스 쿼리로 로드되며 각 쿼리는 매우 빠른 0.0003밀리초 내에 완료됩니다. 이러한 최적화를 통해 데이터베이스 쿼리 처리 시간에 대한 누적 부담이 크게 완화되었습니다. 앞서 언급한 쿼리는 이제 체계적으로 메모리에 저장되므로 MySQL 데이터베이스에 대한 직접 호출 빈도가 줄어듭니다. 이 오케스트레이션은 들어오는 요청을 처리할 때 백엔드 응답성을 향상시키는 데 전체적으로 기여합니다.

마무리

이는 woo-Commerce와 같은 대규모 웹사이트를 관리하는 경우 웹사이트 속도를 높이는 데 매우 중요합니다. 또한 데이터베이스 집약적인 프로세스를 캐싱함으로써 웹사이트의 탄력성이 더욱 향상됩니다.

여러 사람이 주문하는 경우에도 여전히 캐시를 사용하여 데이터를 검색합니다. 더 적은 리소스가 사용되며 백엔드 경험은 더 빨라집니다.

Redis는 객체와 데이터베이스 쿼리만 캐시합니다. 즉, Cache EnablerWP Cloudflare 와 같은 다른 캐시 플러그인을 계속 사용하여 페이지를 캐시하고 웹 사이트 속도를 높일 수 있습니다.

Divi WordPress Theme