WordPress.com 의 NGINX 선택: 성능과 확장성에 대한 이유
WordPress.com 은 웹사이트나 블로그를 만드는 데 사용할 수 있는 web-publishing 소프트웨어입니다. 해당 소프트웨어는 모든 사람을 위해 설계되었으며 접근성, 성능, 보안 및 사용 편의성을 강조합니다. 기본 워드프레스 소프트웨어는 간단하고 예측 가능하기 때문에 쉽게 시작할 수 있습니다.
목차
1. 도전
2. 솔루션
3. 결과
4. WordPress 소개
5. 참고자료
1. WordPress.com 의 도전
2005년에 시작한 WordPress.com은 다른 모든 WordPress.org 사이트와 마찬가지로 shared hosting으로 시작되었습니다. 곧 단일 전용 서버로, 그리고 두 개의 서버로 옮겨졌습니다. 2005년 말 WordPress.com 은 일반에 공개되었고, 2006년 초에는 라운드 로빈 DNS를 사용하여 트래픽을 분산하면서 4개의 웹 서버로 확장했습니다. 얼마 지나지 않아 WordPress.com 두 번째 데이터 센터로 확장했습니다. 로드 밸런싱을 위한 장기적인 솔루션으로 라운드 로빈 DNS가 적합하지 않다는 것이 금방 분명해졌습니다.
F5 BIG-IP와 같은 하드웨어 어플라이언스는 WordPress.com 에 필요한 많은 기능을 제공했지만, 전 세계에 분산된 12개의 데이터 센터에서 2,000대의 서버를 운영하는 Automattic은 기존 오픈 소스 소프트웨어에 기반한 다양한 옵션을 평가하기로 결정했습니다. 상용 하드웨어에 오픈 소스 소프트웨어를 사용하면 최고의 유연성과 함께 비용 절감 효과도 얻을 수 있습니다.
“단일 데이터 센터의 장애 조치 구성에 적합한 하드웨어 어플라이언스 한 쌍을 구입하는 것은 약간 비쌀 수 있지만, 10개의 데이터 센터에 10세트를 구입하고 서비스를 제공하는 것은 비용이 많이 들게 됩니다.”
처음에 WordPress.com팀은 사용 편의성과 내장된 SSL 지원으로 인해 소프트웨어 로드 밸런서로 Pound를 선택했습니다. 약 2년간 Pound를 사용한 후 WordPress.com은 추가 기능과 확장성을 필요로 했습니다:
- 실시간 트래픽을 중단하지 않고 동적 재구성 기능을 제공할 수 있는 기능.
- 예기치 않은 요청 부하로 애플리케이션 인프라에 과부하가 걸리지 않고 백엔드 장애로부터 원활하고 점진적인 복구가 가능한 향상된 상태 health-check 메커니즘.
- 초당 요청 수와 동시 연결 수로 측정되는 확장성이 향상되었습니다. Pound의 스프레드 기반 모델은 인스턴스당 초당 1,000개가 넘는 요청을 안정적으로 처리할 수 없었습니다.
2. WordPress.com 이 NGINX를 선택한 이유
2008년 4월 Automattic은 WordPress.com 의 모든 로드 밸런서를 Pound에서 NGINX로 전환했습니다. 그 전에 Automattic 엔지니어들은 몇 달 동안 Gravatar용 NGINX를 사용해 왔으며, 그 성능과 확장성에 깊은 인상을 받았기 때문에 WordPress.com 을 이전하는 것은 자연스러운 다음 단계였습니다. WordPress.com 을 NGINX로 전환하기 전에 Automattic은 HAProxy 및 LVS를 비롯한 여러 제품을 평가했습니다. Automattic이 NGINX를 선택하는 이유는 여러 가지가 있습니다:
- 쉽고 유연하며 논리적인 구성
- 사용자 요청을 중단하지 않고 NGINX 인스턴스를 동적으로 재구성 및 업그레이드할 수 있습니다.
- FastCGI, SCGI 또는 uwsgi 프로토콜을 통한 애플리케이션 요청 라우팅, 추가 성능 최적화를 위해 스토리지에서 직접 정적 콘텐츠를 제공할 수도 있습니다.
- 단일 서버에서 워드프레스 애플리케이션에 대한 초당 10,000건 이상의 실시간 트래픽을 안정적으로 처리할 수 있는 소프트웨어만 테스트를 거쳤습니다.
- 최소한의 예측 가능한 메모리 및 CPU 사용 공간, 로드 밸런싱 서버의 CPU 사용량이 NGINX를 통해 3배 감소했습니다.
3. 결과
과거 2012년 기준으로는 WordPress.com 은 36개의 NGINX 로드 밸런서를 통해 초당 평균 70,000건의 요청과 15Gbps 이상의 트래픽을 처리하고 있으며, 성장의 여지는 충분합니다. 대부분의 NGINX 로드 밸런서는 초당 약 5,000건의 요청을 처리하며 때로는 초당 최대 20,000건의 요청을 처리하고 약 50,000개의 연결이 설정되어 있습니다.
일반적인 하드웨어 구성은 하이퍼스레딩을 지원하는 Dual Xeon 5620 8코어 CPU, 8~12GB RAM, Debian Linux 6.0을 실행하는 것입니다. 고가용성 설정의 일환으로 WordPress.com 은 이전에는 Wackamole/Spread를 사용했지만 NGINX Plus에서 지원하는 HA 기능인 Keepalived로 마이그레이션하기 시작했습니다. NGINX 기반 웹 가속 및 로드 밸런서 계층에 걸쳐 인바운드 요청을 균일하게 분배하는 것은 DNS 라운드 로빈 메커니즘을 기반으로 합니다.
WordPress.com 웹 가속, 로드 밸런싱, 트래픽 관리 솔루션으로 NGINX를 성공적으로 배포한 후, 최근 모든 애플리케이션 백엔드 서버를 Litespeed에서 NGINX로 마이그레이션했습니다.
5명으로 구성된 Automattic system팀이 NGINX를 PHP용 FastCGI Process Manager(FPM)와 결합하여 더 나은 제어와 손쉬운 구성, 추가적인 유지 관리 오버헤드 없이 사용할 수 있게 되었습니다.
4. WordPress 소개
WordPress.com은 Automattic에서 호스팅하고 지원하는 클라우드 버전의 워드프레스입니다.
WordPress.com 은 매월 3억 3,900만 명 이상이 방문하는 3,300만 개 이상의 사이트에 34억 개의 페이지를 제공합니다. 2008년 4월 이후 WordPress.com 의 페이지 뷰는 약 4.4배 성장했습니다. WordPress.com VIP는 CNN의 Political Ticker, NFL, Time Inc의 The Page, People Magazine의 Style Watch, Flickr 및 KROQ의 기업 블로그 등을 포함한 많은 인기 사이트를 호스팅하고 있습니다. Automattic은 전 세계 12곳에 분산된 데이터 센터에서 2,000대의 서버를 운영합니다. WordPress.com 고객 데이터는 여러 위치에 즉시 복제되어 수억 명의 방문자에게 매우 안정적이고 빠른 웹 경험을 제공합니다.
5. 참고자료
- WordPress Barry 에서 로드 밸런서 테스트
- WordPress Barry 의 WordPress.com용 새 서버
- WordPress Barry 에서 Pound의 정적 호스트 이름 해싱
- WordPress Barry 에서 로드 밸런서 업데이트

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 논의하십시오.
댓글을 달려면 로그인해야 합니다.