쿠버네티스에 스케일링 가능한 워드프레스(WordPress) 구축하기

Summary

워드프레스(WordPress)는 세계에서 가장 많이 사용되고 있는 웹사이트 관리 및 블로깅 시스템으로서 6,000만 개 이상의 웹사이트들을 지원합니다. 워드프레스는 가장 대중적인 웹 프로그래밍 언어인 PHP를 기반으로 하며, MySQL을 백엔드 데이터베이스로 사용합니다. 오픈소스 컨테이너 관리 시스템인 쿠버네티스는 Contributor 수가 가장 많은 GitHub 상위 프로젝트 10개 중 하나입니다. 워드프레스와 쿠버네티스라는 두 개의 거물급 오픈소스 프로젝트를 어떻게 결합해 최대의 효과를 끌어낼지 지금부터 알아봅니다.

Description

개발자로서 최고의 애플리케이션을 개발하고자 한다면, 시장을 선도하는 툴과 플랫폼들을 이용해야 할 것입니다. 이번 과정을 통해 여러분은 세계에서 가장 널리 이용되고 있는 컨테이너 오케스트레이션 플랫폼인 쿠버네티스의 여러 뛰어난 기능과 세계에서 가장 많이 이용되고 있는 웹사이트 프레임워크인 워드프레스를 쿠버네티스 상에 간단하게 배포하는 방법을 익힐 수 있게 됩니다.

단계별 가이드에는 IBM Cloud 컨테이너 서비스의 쿠버네티스 클러스터에 워드프레스를 호스팅하는 방법이 포함되어 있습니다. 각 구성요소는 개별 컨테이너 또는 여러 컨테이너들 그룹에서 실행됩니다.

워드프레스는 전형적인 멀티-티어(multi-tier) 앱으로, 각 구성요소마다 자체 컨테이너가 있습니다. 워드프레스 컨테이너는 프론트-엔드 티어이며, MySQL 컨테이너는 워드프레스의 데이터베이스/백엔드 티어입니다. 워드프레스 프론트-엔드 티어는 DBaaS (Database as a Service) 서비스 형태로 제공하는 Bluemix Compose MySQL을 이용할 수도 있습니다.

Flow

wordpress kubernetes example

  1. 사용자가 웹 인터페이스를 통해 워드프레스를 사용합니다. 각 워드프레스 컨테이너는 HTTP/HTTPS를 통해 사용자에게 응답합니다.
  2. 사용자가 워드프레스 컨테이너에 포스팅하면, 워드프레스는 일반적으로 MySQL 데이터베이스에 변경사항을 저장합니다. MySQL 데이터베이스는 보안을 위해 포스팅된 데이터를 영구적 디스크에 저장합니다. MySQL 컨테이너 외에도 IBM Cloud의 Compose MySQL 서비스를 이용할 수 있습니다. 인증과 권한부여가 완료된 후에, 비밀번호(MD5로 암호화), 이메일 주소 등 워드프레스 사용자 정보가 생성되어 MySQL에 저장됩니다. 웹사이트, 블로그, 태그, 카테고리, 기타 데이터들도 MySQL에 저장됩니다.
  3. 사용자는 테마, 플러그인, 이미지, 문서 등도 업로드할 수 있습니다. PDF, 동영상, MP3 등 문자가 아닌 형태의 데이터도 업로드가 가능합니다.
  4. 테마, 플러그인, PDF, 동영상, MP3 등은 워드프레스 pods에 속한 PersistentVolume(PV)에 저장됩니다
  5. 사용자가 워드프레스 웹사이트나 블로그에 접속합니다. 워드프레스 코어(즉, 워드프레스의 ‘브레인’)가 index.php로 시작하는 필요한 PHP 스크립트를 호출합니다.
  6. 워드프레스가 MySQL 데이터베이스에 접근하여 웹사이트, 블로그, 태그, 카테고리 등을 가지고 옵니다.
  7. 워드프레스 코어가 주제, 문서, 이미지 등을 PersistentVolume (PV)에서 가지고 와서, 데이터베이스에서 검색된 데이터와 결합하여 사용자에게 페이지를 제공합니다.

Instructions

이 코드 패턴을 사용할 준비가 되셨습니까? 이 응용 프로그램을 실행하고 사용하는 방법에 대한 자세한 내용은 README 에서 확인하실 수 있습니다.