WordPress 웹사이트를 Cloud Platform으로 마이그레이션
게시 됨: 2020-06-05기본적으로 PHP와 MySQL을 기반으로 하는 세계적으로 유명한 WordPress CMS는 20년 넘게 개인 블로그에서 트래픽이 많은 웹사이트에 이르기까지 모든 것을 지원해 왔습니다. 그러나 2003년 처음 출시되어 처음 출시될 때부터 제작자는 최신 탄력적이고 확장 가능한 클라우드 기반 인프라를 염두에 두고 구축하지 않았습니다. 기술이 지금까지 발전한 방식을 누가 예측할 수 있었습니까?
다행스럽게도 WordPress 커뮤니티의 확장과 더 성숙한 WordPress 버전의 최신 릴리스로 기능이 크게 확장되었습니다. 궁극적으로 이제 클라우드 서버와 인프라를 적절하게 활용하는 WordPress 인프라를 구축할 수 있는 시나리오가 있습니다.
이 블로그 전체에서 WordPress와 클라우드 서버 간의 관계와 함께 사용해야 하는 경우를 살펴보겠습니다. 컨텍스트를 위해 이 주제와 관련된 개념을 자세히 살펴보겠습니다. 자, 더 이상 고민하지 않고 자세히 알아보자!
클라우드란?
간단히 요약하자면 클라우드는 인터넷을 통해 IT 서비스 및 리소스를 프로비저닝하는 유비쿼터스 수단이므로 온디맨드 또는 종량제 방식으로 액세스할 수 있습니다. 따라서 기본적으로 클라우드 서버는 인터넷에서 편리한 '저장 장치' 역할을 하므로 '클라우드'라고 합니다. 이것은 클라우드와 관련하여 내가 제공한 가장 단순한 답변이 될 수 있습니다. 어쨌든 계속 진행하십시오!
그렇긴 하지만 클라우드 서비스의 제공자는 무수히 많지만 가장 눈에 띄는 것은 Amazon Web Services(가장 큰 시장 점유율)이며 Microsoft Azure와 Google Cloud가 그 뒤를 잇습니다. AlibabaCloud, DigitalOcean, IBM Cloud 및 Linode와 같은 다른 공용 클라우드 제공업체가 있지만 이 세 가지를 '하이퍼스케일러'라고도 합니다. 공정하게 말하면 일부 공용 클라우드 제공업체는 표준 호스팅 서비스(예: WordPress 공유 호스팅)도 제공하지만 다른 제공업체는 제공하지 않는다는 점을 언급할 가치가 있습니다. 하지만 나중에 더 자세히 알아보겠습니다.
클라우드의 장점은 중소기업을 위한 경쟁의 장을 상당히 평평하게 한다는 것입니다. 이는 이전에 더 큰 플레이어만 사용할 수 있었던 최첨단 온라인 리소스에 액세스할 수 있도록 하기 위한 것입니다. 하드웨어 구매, 값비싼 데이터 센터 설치, 전임 유지 관리 IT 부서 고용을 포함하여 막대한 자본 투자가 필요하지 않습니다.
대부분의 경우 대부분의 클라우드 제공업체는 자동 확장 및 데이터베이스 관리 서비스 등과 같은 관리형 서비스를 사용한 종량제 모델도 제공합니다. 완전한 IT 인프라에 투자할 여유가 있습니다. 기본적으로 핵심 비즈니스에 집중하고 클라우드 공급업체가 기술을 처리하도록 합니다.
클라우드는 수많은 이점에 대한 액세스를 제공합니다. 그러나 주목할만한 이점은 다음과 같습니다.
- 전 세계 어디에서나 사용할 수 있는 유비쿼터스 서비스 지향 아키텍처를 제공합니다.
- 편리하고 유연한 컴퓨팅을 제공합니다.
- 다양한 계층의 주문형 서비스를 이용할 수 있습니다.
- 총 소유 비용 절감
- 정보 기술 오버헤드 감소

클라우드 서비스 유형
일반적으로 퍼블릭 클라우드 제공업체는 서비스를 IaaS(Infrastructure as a Service), PaaS(Platform as a Service) 및 SaaS(Software as a Service)라는 세 가지 분야에서 제공합니다. 컨텍스트를 위해 이러한 모든 서비스 유형의 차이점과 각 서비스 유형의 차이점을 요약해 보겠습니다.
- IaaS: Infrastructure as a Service는 가상 컴퓨팅, 운영 체제, 대기열, 스토리지, VLAN, 로드 밸런서와 같은 다양한 클라우드 인프라를 사용자에게 제공합니다. 이러한 유형의 클라우드 버티컬은 애플리케이션을 배포하고 운영하기 위해 심층적인 기술 지식을 요구합니다. 예를 들어, 각 구성 요소는 확장 또는 축소를 시작하거나 로드 밸런싱을 수행하기 위해 기술 관리가 필요합니다.
- PaaS: 반면에 PaaS(Platform as a Service) 모델은 더 많은 관리 서비스를 제공합니다. 이는 기본적으로 소프트웨어 업데이트 및 패치의 책임이 주로 클라우드 공급업체에 있음을 의미합니다. 또한 PaaS를 사용하면 확장, 백업, 데이터 복제와 같은 클라우드 자체에서 오케스트레이션된 인프라 특정 작업이 투명하게 발생합니다.
- SaaS: 틀림없이 이러한 모든 업종 중에서 가장 잘 알려진 것은 클라우드에서 관리되는 완전한 기능의 소프트웨어를 제공하는 SaaS(Software as a Service) 모델입니다. SaaS 모델은 IaaS 구성 요소와 PaaS 애플리케이션을 모두 포함하거나 두 가지 카테고리 중 하나를 별도로 사용할 수 있습니다.

궁극적으로 위에서 강조한 모든 모델에도 불구하고 더 많은 공급업체가 IaaS 또는 PaaS에 속할 수 있는 더 많은 혼합 서비스를 사용함에 따라 클라우드 플랫폼 간의 경계가 빠르게 얇아지고 있습니다. 예를 들어 Amazon Web Services는 IaaS 제품(EC2, SQS 및 S3)으로 시작하여 나중에 PaaS 구성 요소(관계형 데이터베이스 및 비관계형 데이터베이스)를 추가했습니다. 이에 비해 Microsoft Azure는 PaaS 구성 요소(Azure 웹 사이트 및 SQL 데이터베이스)와 IaaS(가상 머신 및 스토리지)를 모두 확장합니다.

클라우드로 마이그레이션하기에 적절한 시기는 언제입니까?
그럼에도 불구하고 의심의 여지 없이 대부분의 소프트웨어 응용 프로그램은 어떤 방식으로든 '하이퍼스케일러'에서 호스팅될 수 있습니다. 그러나 문제 는 항상 그것이 정당화될 수 있는지, 중복되거나, 과잉 처리되거나 어떤 경우에는 자원의 활용도를 낮추는 것입니다.
즉, 특정 애플리케이션은 특정 클라우드 기능이 절실히 필요하기 때문에 클라우드에 매우 적합합니다. 예를 들어 인코더, CDN, 관계형 데이터베이스의 조합 또는 리소스 자동 확장 기능이 필요할 수 있습니다. 그렇지만 다른 애플리케이션이 클라우드로 이전되어 모든 리소스를 완전히 활용하지 못하는 경우가 있습니다. 어느 쪽이든 범죄가 아닙니다.
클라우드 마이그레이션에 이상적인 WordPress 애플리케이션 유형은 무엇입니까?
클라우드는 용량에 관계없이 모든 오프사이트 컴퓨팅 애플리케이션을 처리할 수 있음을 확인했기 때문에. 그럼에도 불구하고 모든 애플리케이션이 클라우드에 적합한 것은 아니라는 점을 강조했지만 여전히 주의해야 합니다. 그렇다면 클라우드에 적합한 WordPress 애플리케이션 유형은 무엇입니까?

1. 정기적이고 까다로운 처리가 필요한 신청서
일반적으로 이러한 응용 프로그램은 일반적으로 다양한 데이터 형식에 대한 일괄 분석 기능과 같은 매우 컴퓨팅 집약적인 작업을 수행합니다. 이러한 일괄 분석 기능은 한 형식에서 다른 형식으로의 파일 변환, 의미론적 텍스트 분석, 데이터 분류, 보고, 텍스트 인덱싱, 데이터 클러스터링, 심지어 기계 학습을 위한 신경망 교육 등 다양한 형식을 취할 수 있습니다.
따라서 이러한 작업은 발생 시간을 예측할 수 있는 경향이 있기 때문에 하이퍼스케일 클라우드 공급자가 제공하는 상당한 컴퓨팅 성능을 요구하게 됩니다. 이는 퍼블릭 클라우드 제공업체가 이러한 큰 요구 사항을 충족할 수 있는 최첨단 하드웨어를 항상 보유하고 있기 때문입니다. 따라서 본질적으로 이러한 응용 프로그램이 있는 소규모 비즈니스의 경우 클라우드는 이러한 무겁고 불필요한 하드웨어 투자(때로는 반동적인 투자가 될 수 있음)를 우회하는 데 도움이 됩니다.
또한 조직은 클라우드 를 사용하여 일괄 처리 기능을 더욱 가속화하도록 선택할 수 있습니다. 예를 들어 3시간 또는 4시간이 아닌 1시간 미만으로 더 빨리 종료할 수 있습니다. 관리자가 몇 개의 컴퓨팅 장치를 더 가동할 수 있으므로 클라우드 환경에서 이는 상당히 관리할 수 있습니다. 반면 WordPress 표준 호스팅에서는 하드웨어 제한으로 인해 이러한 효과가 상당히 어려울 수 있습니다.
2. 고가용성(HA) 및 확장성이 필요한 애플리케이션.
기본적으로 고려해야 할 두 가지 범주가 있습니다. 첫 번째 범주는 최종 사용자에게 HA(고가용성) 서비스를 제공하려는 애플리케이션입니다. 그런 다음 사용량이 증가할 것으로 예상하거나 서비스를 더 큰 사용자 기반으로 확장할 계획인 응용 프로그램이 있습니다.
고가용성 설정은 애플리케이션에 SPOF(단일 장애 지점)가 없음을 의미합니다. 이는 일반적으로 응용 프로그램의 각 끝점, 구성 요소 또는 서비스에 중복성을 추가하여 수행됩니다. 또한 이 설정은 자동 장애 조치(failover) 프로세스, 로드 밸런싱 및 모니터링과 같이 고가용성을 달성하기 위해 더 많은 하드웨어와 메커니즘이 필요하다고 자연스럽게 가정합니다.

두 번째 범주는 사용자 기반을 늘리고 유연한 확장성을 가지려는 애플리케이션에 관한 것입니다. 예를 들어, 제품/서비스 제공을 확장할 계획일 수 있습니다. 또는 나중에 새로운 시장으로 확장할 것으로 예상합니다. 따라서 이를 위해서는 상당한 클라우드 업그레이드와 그 위에 적절한 관리 계층이 필요합니다.
3. 예측할 수 없는 사용량 피크가 있는 애플리케이션
이러한 응용 프로그램은 일반적으로 온라인 상점, 제품 사이트, 인기 있는 블로그 등을 통해 사용자와 자주 상호 작용합니다. 따라서 이러한 웹 서비스는 일반적으로 예측 가능하고 안정적인 사용자 기반을 갖지만 경우에 따라 무작위로 매우 많은 수의 사용자를 유치할 수 있습니다. . 예를 들어, 스파이크는 인기 있는 웹 페이지에서 참조되거나 관련 동영상이 입소문을 타면 발생할 수 있습니다. 또는 쿠폰 및 프로모션 코드로 인해 마케팅 캠페인이 처음에 예상했던 것보다 더 성공적이 된 후일 수도 있습니다.
따라서 기본적으로 클라우드 마이그레이션은 잠재적인 인바운드 트래픽 양이나 발생할 정확한 시간 프레임을 예측할 수 없는 경우에 이상적일 수 있습니다. 이러한 웹사이트 소유자는 트래픽 급증을 정확하게 예측하지만 트래픽이 얼마나 될 것인지, 어떻게 배포될 것인지 알지 못하는 경향이 있습니다.
더 읽어보기: 높은 트래픽을 위해 WordPress 웹사이트를 확장하는 11가지 효과적인 방법
따라서 이러한 시나리오의 경우 반동적 또는 비상 하드웨어 구입은 단편적인 사용으로 인해 비용 가치가 없으며 이로 인해 계절에 따라 사용하지 않는 하드웨어가 많이 남게 될 수 있습니다. 이러한 시나리오에서는 클라우드 구현 이외의 모든 것이 무모합니다.
4. 다양한 테스트 환경이 필요한 애플리케이션
잘 알려지지 않았지만 사용자는 테스트 환경을 실행하기 위해 클라우드를 활용할 수 있습니다. 이러한 테스트 환경은 보안 테스트 또는 부하 테스트와 같이 특정 테스트 세트를 수행해야 하는 경우 영구적이거나 일시적일 수 있습니다.
따라서 기본적으로 이러한 테스트 환경을 구현하려면 고급 하드웨어가 필요하며 보안 테스트 및 부하 테스트를 수행하기 위한 하드웨어 구입 비용은 상당히 클 수 있습니다. 이는 주로 이러한 테스트가 1년에 몇 번 수행되어야 하고 목표를 달성하기 위해 본격적인 생산 설정이 필요하기 때문입니다. 이것이 이러한 테스트를 위해 새로운 하드웨어를 구입하는 것이 비용 측면에서 비효율적이거나 중복되는 작업으로 끝날 수 있는 이유입니다. 바로 여기에서 클라우드가 옵션이 됩니다.
따라서 우리의 요점을 요약하자면 클라우드 채택에 영향을 미치는 주요 요소는 사용자 기반, 사용 패턴, 내결함성 요구 사항 및 테스트 요구 사항입니다. 물론 더 많은 요인이 클라우드에 대한 애플리케이션 후보를 정당화하지만 일반적으로 이 네 가지 요인이 두드러집니다.
WordPress와 함께 클라우드 플랫폼 사용
대부분의 WordPress 애플리케이션은 표준 호스팅을 사용하지만 AWS 클라우드 및 Google Cloud와 같은 플랫폼에서 웹사이트를 실행하기로 선택하는 WordPress 사용자가 증가하고 있습니다.
이는 더 많은 웹 사이트 소유자가 적절하게 확장되는 웹 사이트를 구축하는 방법에 대해 우려하고 있음을 보여줍니다. 예를 들어, 변동하는 방문자 수에 서비스를 제공할 수 있어야 하며 내결함성을 유지하면서 빠르고 쉽게 콘텐츠를 업데이트할 수 있을 만큼 충분히 유연해야 합니다. 이 마지막 요점은 소유자에게 문제가 발생해도 웹사이트가 여전히 기능을 적절하게 수행할 수 있다는 마음의 평화를 주기 때문에 중요합니다.
따라서 추가 컨텍스트를 위해 일반적인 WordPress 호스팅은 본질적으로 SaaS(Software as a Service)인 관리형 서비스입니다. 퍼블릭 클라우드로의 마이그레이션은 PaaS(Platform as a Service) 설치에 영향을 미치는 것으로 구성됩니다. 본질적으로 PaaS를 사용하는 WordPress 설치는 인프라 유지 관리, 백업, 복제 및 가용성을 클라우드 공급업체에 오프로드합니다.
클라우드 서버 관리가 어려울 수 있음
지식이 있거나 전문가가 아닌 한 서버 환경을 구성하거나 프로비저닝하는 것은 쉽게 추론할 수 없습니다. 클라우드 인스턴스의 보호를 보장하는 보안 프로토콜 계층을 구축하면서 클라우드 인스턴스를 관리하는 방법을 알아야 합니다.
한 가지 관점에서 보면 기본 AWS 서버에는 작업할 그래픽 사용자 인터페이스가 제공되지 않기 때문에 이러한 설치에는 Linux 명령에 대한 능력이 필요할 수 있습니다. 따라서 CLI를 사용할 수 있는 능력은 필수적이며 서버 측 지식이 제한된 사람들에게는 어려울 수 있습니다.
그러나 일부 클라우드 제공업체는 서버 관리의 번거로움을 완화하여 WordPress 웹사이트에 집중할 수 있도록 리소스를 제공합니다. 이와 동일한 도구는 서버의 보안을 예리하게 주시하여 사이버 공격으로부터 사이트를 보호합니다. 이러한 솔루션은 사용자에게 SSL 통합, 스테이징 사이트 생성, 웹사이트 복제 수행, 몇 번의 클릭만으로 크론 작업 관리 기능을 제공할 수 있습니다.
WordPress 클라우드 마이그레이션 계획
WordPress 애플리케이션을 클라우드로 마이그레이션하기로 선택한 후에는 적용 가능한 아키텍처 청사진을 결정하고, 신뢰할 수 있는 클라우드 공급업체를 선택하고, 애플리케이션 아키텍처를 개선하고, 설정을 테스트한 다음 릴리스하는 것이 중요합니다.
아키텍처 청사진을 결정하면 WordPress 애플리케이션의 독립적이고 확장 가능한 부분을 주로 식별할 수 있습니다. 둘째, 클라우드 공급업체를 선택할 때 데이터베이스 기능과 같은 요소를 고려하면서 가장 적합한 것을 선택해야 합니다. 예를 들어 SQL Server 데이터베이스는 Azure SQL Database 또는 AWS RDS에 적합할 수 있고 MySQL 데이터베이스는 AWS RDS에도 적합할 수 있습니다.
또한 클라우드 공급업체는 애플리케이션의 최종 아키텍처에 영향을 줄 수 있습니다. 또한 설정을 테스트할 때는 항상 실제 크기의 데이터를 고려하므로 주로 데이터베이스 데이터와 사용자 생성 콘텐츠를 포함하는 프로덕션 데이터의 완전한 복제를 설정하는 것을 목표로 하십시오.
비용
각 클라우드 공급업체의 초기 전체 비용도 신중하게 계산해야 합니다. 대부분의 클라우드 공급업체에는 온라인 가격 계산기가 있으므로 이를 활용할 수 있습니다. 또한 컴퓨팅 시간, 대역폭 및 스토리지와 같은 측면과 특정 객체 스토리지 및 로드 밸런서 시간 등에 액세스하기 위한 GET 요청 수와 같은 메트릭에 주의하십시오.
클라우드 서버에 WordPress 설치 모범 사례
1. 콘텐츠 전송 네트워크(CDN) 활용 보장
대부분의 WordPress 애플리케이션은 정적 및 동적 콘텐츠를 혼합하여 제공합니다. 정적 콘텐츠는 이미지, JavaScript 파일 또는 스타일 시트입니다. 동적 콘텐츠는 WordPress PHP 코드를 활용하는 서버 측에서 생성되는 모든 것입니다. 예를 들어, 데이터베이스에서 생성되거나 각 뷰어에 맞춤화된 요소입니다.
네트워크 대기 시간은 최종 사용자 경험에 중요하므로 CDN을 활용하는 것이 필수적입니다. CDN을 사용하면 전 세계 사용자에게 콘텐츠를 일관되게 전달할 수 있으므로 네트워크 대기 시간을 해결할 수 있습니다.
따라서 사용자는 일반적으로 전 세계에 지리적으로 분산되어 있기 때문에 CDN은 기본적으로 전 세계적으로 짧은 대기 시간과 높은 데이터 전송 속도로 콘텐츠 배포를 가속화하는 데 도움이 됩니다.
더 읽어보기: 워드프레스 웹사이트 속도 향상을 위한 팁
2. 데이터베이스 캐싱
데이터베이스 캐싱은 대기 시간을 크게 줄이고 WordPress와 같은 애플리케이션 처리량을 높일 수 있습니다. I/O 집약적 데이터베이스 쿼리의 결과와 같이 대기 시간이 짧은 액세스를 위해 자주 액세스하는 데이터 조각을 메모리에 저장하여 이를 달성합니다. 따라서 이는 쿼리의 많은 부분이 캐시에서 제공될 때 데이터베이스에 도달해야 하는 쿼리 수가 감소한다는 것을 의미합니다. 따라서 데이터베이스 실행과 관련된 비용이 낮아집니다.
3. 상태 비저장 웹 계층
기본적으로 상태 비저장 애플리케이션은 이전 상호 작용을 무시하고 세션 정보를 저장하지 않습니다. 그리고 WordPress의 경우 이는 모든 최종 사용자가 요청을 처리한 웹 서버에 관계없이 동일한 응답을 수신함을 의미합니다.
따라서 자동 확장 구성에서 여러 웹 서버를 활용하려면 웹 계층이 상태 비저장이어야 합니다. 또한 상태 비저장 애플리케이션은 사용 가능한 컴퓨팅 리소스('웹 서버 인스턴스'라고 함)에서 모든 요청을 처리할 수 있으므로 수평으로 확장할 수 있습니다.
그러나 기본적으로 WordPress는 사용자 업로드를 로컬 파일 시스템에 저장하므로 상태 비저장이 아닙니다. 따라서 WordPress 설치 및 모든 사용자 구성, 플러그인, 테마 및 사용자 생성 업로드를 공유 데이터 클라우드 플랫폼으로 이동하여 웹 서버의 로드를 줄이고 웹 계층을 상태 비저장으로 만드는 것이 중요합니다.
더 읽어보기: WordPress 플러그인을 사용해도 안전한가요?
이를 위해 PHP 세션을 저장하기 위해 타사 저장소를 사용할 수 있습니다. 이것은 단순한 키-값 저장소일 수도 있고 데이터베이스 자체일 수도 있습니다. 모든 주요 클라우드 공급업체는 Azure Tables 또는 AWS DynamoDB와 같은 키-값 저장소를 제공하며 세션 데이터와 상호 작용하는 모든 애플리케이션 구성 요소에서 가용성과 접근 가능성이 높아야 합니다.
마지막 생각들.
결론적으로 클라우드 컴퓨팅은 향상된 규모의 경제, 데이터 보안, 상호 운용성, 손쉬운 접근성 및 에너지 효율성을 제공하는 타의 추종을 불허하는 능력으로 보다 널리 퍼진 데이터 관리 형태가 되었습니다. 이는 본질적으로 전 세계적으로 컴퓨팅, 스토리지 및 네트워킹 리소스를 관리, 할당 및 소비하는 방식을 변경하고 있습니다.
따라서 트래픽 급증이 예상되는 경우, 고가용성이 필요한 경우, 예상치 못한 확장성 요구 사항이 있는 경우, 동적 처리 요구 사항이 있는 경우, 고유한 테스트 환경이 필요한 경우 WordPress와 클라우드 서버를 주로 성능적으로 결합할 수 있습니다.