편집

다음을 통해 공유


App Service의 WordPress

Azure Front Door
Azure Load Balancer
Azure Virtual Network
Azure App Service
Azure Database for MySQL

이 문서에서는 중소 규모의 WordPress 설치에 대한 솔루션을 설명합니다. 이 솔루션은 복잡한 구성 또는 관리 없이도 Azure 플랫폼의 확장성, 안정성 및 보안을 제공합니다. 대규모 또는 스토리지 집약적 설치에 대한 솔루션은 Azure에서 WordPress 호스팅 옵션을 참조하세요.

아키텍처

Azure 앱 Service의 WordPress 아키텍처 다이어그램 Azure Front Door는 트래픽을 웹앱으로 라우팅합니다. Azure Database for MySQL은 동적 콘텐츠를 저장합니다.

이 아키텍처의 Visio 파일을 다운로드합니다.

참고 항목

특정 WordPress 호스팅 방법과 관련이 없는 팁과 권장 사항을 구현하여 이 솔루션을 확장할 수 있습니다. WordPress 설치를 배포하기 위한 일반적인 팁은 Azure의 WordPress를 참조하세요.

데이터 흐름

이 시나리오에서는 Azure 앱 Service에서 실행되는 확장 가능한 WordPress 설치를 다룹니다.

  • 사용자는 Azure Web Application Firewall을 사용하도록 설정된 Azure Front Door를 통해 프런트 엔드 웹 사이트에 액세스합니다.
  • Azure Front Door는 WordPress가 실행되는 App Service 웹앱에 요청을 분산합니다. Azure Front Door는 WordPress 웹앱에서 캐시되지 않은 모든 데이터를 검색합니다.
  • WordPress 애플리케이션은 서비스 엔드포인트를 사용하여 Azure Database for MySQL의 유연한 서버 인스턴스에 액세스합니다. WordPress 애플리케이션은 데이터베이스에서 동적 정보를 검색합니다.
  • 동일한 가용성 영역의 대기 서버를 통해 Azure Database for MySQL에 대해 로컬 중복 고가용성을 사용할 수 있습니다.
  • 모든 정적 콘텐츠는 Azure Blob Storage에서 호스트됩니다.

구성 요소

  • App Service의 WordPress 템플릿은 App Service에서 WordPress를 호스팅하기 위한 관리되는 솔루션입니다. 이 솔루션은 App Service 외에도 이 섹션에 설명된 다른 Azure 서비스도 사용합니다.
  • App Service는 웹앱을 빌드, 배포 및 크기 조정하기 위한 프레임워크를 제공합니다.
  • Azure Front Door 는 최신 클라우드 콘텐츠 배달 네트워크입니다. Azure Front Door는 분산 서버 네트워크로서 사용자에게 웹 콘텐츠를 효율적으로 제공합니다. 콘텐츠 배달 네트워크는 최종 사용자 근처의 현재 상태 지점 위치에 에지 서버에 캐시된 콘텐츠를 저장하여 대기 시간을 최소화합니다.
  • Azure Content Delivery Network 는 전략적으로 배치된 위치에 Blob을 저장하여 사용자에게 웹 콘텐츠를 효율적으로 제공합니다. 이 솔루션에서는 Azure Front Door 대신 Content Delivery Network를 사용할 수 있습니다.
  • Azure Virtual Network 는 배포된 리소스가 서로, 인터넷 및 온-프레미스 네트워크와 통신할 수 있는 방법을 제공합니다. 가상 네트워크는 격리 및 구분을 제공합니다. 또한 트래픽을 필터링 및 라우팅하고 다양한 위치 간에 연결을 설정할 수 있습니다. 이 솔루션에서 두 네트워크는 가상 네트워크 피어링을 통해 연결됩니다.
  • Azure DDoS Protection 은 향상된 DDoS 완화 기능을 제공합니다. 이러한 기능을 애플리케이션 디자인 모범 사례와 결합하면 DDoS 공격 방어에 도움이 됩니다. 경계 가상 네트워크에서 DDoS Protection을 사용하도록 설정해야 합니다.
  • 네트워크 보안 그룹은 보안 규칙 목록을 사용하여 원본 또는 대상 IP 주소, 포트 및 프로토콜에 따라 인바운드 또는 아웃바운드 네트워크 트래픽을 허용하거나 거부합니다. 이 시나리오의 서브넷에서 네트워크 보안 그룹 규칙은 애플리케이션 구성 요소 간의 트래픽 흐름을 제한합니다.
  • Azure Key Vault 는 암호, 인증서 및 키에 대한 액세스를 저장하고 제어합니다.
  • Azure Database for MySQL - 유연한 서버 는 오픈 소스 MySQL 데이터베이스 엔진을 기반으로 하는 관계형 데이터베이스 서비스입니다. 유연한 서버 배포 옵션은 데이터베이스 관리 기능 및 구성 설정에 대한 세부적인 제어 및 유연성을 제공하는 완전 관리형 서비스입니다. 이 시나리오에서 Azure Database for MySQL은 WordPress 데이터를 저장합니다.
  • Blob Storage 는 확장 가능하고 최적화된 개체 스토리지를 제공합니다. Blob Storage는 클라우드 네이티브 워크로드, 보관, 데이터 레이크, 고성능 컴퓨팅 및 기계 학습에 적합합니다.

대안

  • Azure Cache for Redis를 사용하여 WordPress 성능 최적화 플러그 인에 대한 키-값 캐시를 호스트할 수 있습니다. 캐시는 App Service 웹앱 간에 공유할 수 있습니다.
  • Azure Front Door 대신 Content Delivery Network를 사용하여 사용자에게 웹 콘텐츠를 제공할 수 있습니다.

시나리오 정보

이 예제 시나리오는 WordPress의 중소 규모의 설치에 적합합니다.

잠재적인 사용 사례

  • 트래픽 급증을 일으키는 미디어 이벤트
  • WordPress를 콘텐츠 관리 시스템으로 사용하는 블로그
  • WordPress를 사용하는 비즈니스 또는 전자 상거래 웹 사이트
  • 다른 콘텐츠 관리 시스템을 사용하여 빌드된 웹 사이트

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

안정성

안정성은 애플리케이션이 고객에 대한 약속을 충족할 수 있도록 합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.

이 솔루션을 배포할 때 다음 권장 사항을 고려합니다.

  • App Service는 기본 제공 부하 분산 및 상태 검사 제공합니다. 이러한 기능을 사용하면 App Service 웹앱이 실패할 때 가용성을 기본 수 있습니다.
  • 콘텐츠 배달 네트워크를 사용하여 모든 응답을 캐시하면 가용성이 약간 향상됩니다. 특히 원본이 응답하지 않는 경우 콘텐츠에 계속 액세스할 수 있습니다. 그러나 캐싱은 완전한 가용성 솔루션을 제공하지 않습니다.
  • 여러 지역에서 데이터 중복성을 위해 쌍을 이루는 지역에 Blob Storage를 복제본(replica) 수 있습니다. 자세한 내용은 Azure Storage 중복성을 참조하세요.
  • Azure Database for MySQL 가용성을 높이려면 동일한 영역 고가용성을 사용하도록 설정합니다. 이 기능은 주 서버와 동일한 가용성 영역에 대기 서버를 만듭니다. 범용 또는 중요 비즈니스용 컴퓨팅 계층을 사용하여 동일한 영역 고가용성을 사용하도록 설정해야 합니다. 자세한 내용은 요구 사항에 적용되는 고가 용성 옵션을 참조하세요.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

이 솔루션을 배포할 때 다음 권장 사항을 고려합니다.

  • Azure Front Door에서 Azure Web Application Firewall을 사용하여 프런트 엔드 애플리케이션 계층으로 이동하는 가상 네트워크 트래픽을 보호합니다. 자세한 내용은 Azure Front Door의 Azure Web Application Firewall을 참조 하세요.
  • 아웃바운드 인터넷 트래픽이 데이터베이스 계층에서 흐르는 것을 허용하지 않습니다.
  • 프라이빗 스토리지에 대한 공용 액세스를 허용하지 않습니다.

WordPress 보안에 대한 자세한 내용은 일반 WordPress 보안 및 성능 팁Azure 보안 설명서를 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

이 솔루션을 배포할 때 다음 비용 고려 사항을 검토합니다.

  • 트래픽 기대치(GB/월). 트래픽 볼륨은 비용에 가장 큰 영향을 주는 요소입니다. 수신하는 트래픽의 양에 따라 필요한 App Service 인스턴스 수와 아웃바운드 데이터 전송 가격이 결정됩니다. 또한 트래픽 볼륨은 아웃바운드 데이터 전송 비용이 더 저렴한 콘텐츠 배달 네트워크에서 제공하는 데이터의 양과 직접적인 상관 관계를 지정합니다.
  • 호스트된 데이터의 양입니다. Blob Storage에서 호스트하는 데이터의 양을 고려하는 것이 중요합니다. 스토리지 가격은 사용된 용량을 기반으로 합니다.
  • 쓰기 백분율입니다. Azure Storage에서 웹 사이트 및 호스트에 작성하는 새 데이터의 양을 고려합니다. 새 데이터가 필요한지 여부를 확인합니다. 다중 지역 배포의 경우 웹 사이트에 작성하는 새 데이터의 양은 지역 전체에서 미러 데이터의 양과 관련이 있습니다.
  • 정적 및 동적 콘텐츠입니다. 데이터베이스 스토리지 성능 및 용량을 모니터링하여 저렴한 SKU가 사이트를 지원할 수 있는지 여부를 확인합니다. 데이터베이스는 동적 콘텐츠를 저장하고 콘텐츠 배달 네트워크는 정적 콘텐츠를 캐시합니다.
  • App Service 최적화. App Service 비용을 최적화하기 위한 일반적인 팁은 Azure 앱 Service 및 비용 최적화를 참조하세요.

성능 효율성

성능 효율성은 사용자가 배치된 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

이 시나리오에서는 App Service에서 WordPress 프런트 엔드를 호스트합니다. 자동 크기 조정 기능을 사용하도록 설정하여 App Service 인스턴스 수를 자동으로 조정해야 합니다. 고객 요구에 응답하도록 자동 크기 조정 트리거를 설정할 수 있습니다. 정의된 일정에 따라 트리거를 설정할 수도 있습니다. 자세한 내용은 Azure에서 자동 크기 조정 시작 및 Azure Well-Architected Framework 문서 성능 효율성 원칙을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

기타 기여자:

  • Adrian Calinescu | 선임 클라우드 솔루션 설계자

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

제품 설명서:

Microsoft 학습 모듈: