Oracle Cloud Infrastructure Kubernetes Engine에서 MySQL Database Service로 WordPress 배포

Oracle Cloud Infrastructure(OCI)에서 WordPress 웹 페이지 및 블로그를 호스팅할 때 얻을 수 있는 유연성과 비용 이점을 누리십시오.

WordPress는 웹 페이지 및 블로그 관리에 사용되는 가장 인기 있는 CMS(콘텐츠 관리 시스템) 중 하나입니다. 다음 OCI 서비스를 통해 WordPress 배포의 확장성과 가용성을 높일 수 있습니다.
  • Oracle Cloud Infrastructure Kubernetes Engine(OCI Kubernetes Engine 또는 OKE)은 Kubernetes 클러스터를 배포하거나 관리할 필요 없이 확장성이 뛰어나고 가용성이 뛰어난 Wordpress 배포를 제공합니다.
  • MySQL Database Service는 데이터베이스를 프로비저닝하거나 관리할 필요 없이 WordPress 애플리케이션을 위한 고성능 데이터베이스를 제공합니다.
  • 고가용성을 제공하기 위해 애플리케이션의 모든 인스턴스가 액세스할 수 있는 공유 지속성 스토리지(WordPress에 필요)용 파일 스토리지 서비스입니다.

구조

이 참조 아키텍처는 OKE 클러스터의 고가용성 및 확장 가능한 WordPress 배치를 보여줍니다. 이 배치는 파일 스토리지 서비스를 영구 스토리지로, MySQL Database 서비스를 데이터베이스로 사용합니다. 외부 IP가 있는 로드 밸런서는 WordPress 애플리케이션에 대한 액세스를 제공하기 위해 할당됩니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.

다음은 oci-mysql-oke-wordpress-arch.png에 대한 설명입니다.
그림 oci-mysql-oke-wordpress-arch.png에 대한 설명

oci-mysql-oke-wordpress-arch-oracle.zip

다음 절에서는 이 참조 아키텍처에 대해 설명합니다.

OKE 클러스터에서 배치에 대한 WordPress 응용 프로그램 Pod 수를 선택할 수 있습니다. 각 포드는 영구 공유 스토리지에 액세스해야 합니다. 저장소를 제공하기 위해 파일 저장소의 NFS 공유에 매핑되는 저장소 클래스 리소스가 클러스터에 생성됩니다. 그러면 영구 볼륨 리소스가 스토리지 클래스에서 제공하는 스토리지를 클러스터 내의 리소스에서 사용할 수 있게 합니다. PVC(Persistent-volume-claim) 리소스는 POD가 스토리지를 활용하려고 함을 나타내기 위해 만들어집니다. PVC는 스토리지에 액세스하기 위해 WordPress 애플리케이션 포드에 매핑됩니다.

WordPress 애플리케이션용 데이터베이스는 MySQL Database Service를 사용합니다. MySQL Database Service 인스턴스는 OKE 클러스터에서 OCI Service Operator for Kubernetes(OSOK)로 정의된 사용자 정의 리소스로 생성 및 관리됩니다.

MySQL Database Service는 서로 다른 가용성 도메인 또는 장애 도메인에 배포된 세 개의 MySQL Database Service 인스턴스를 사용하여 HA(고가용성)로 배포됩니다. WordPress 애플리케이션은 단일 끝점에 접속하여 데이터베이스를 읽고 쓸 수 있습니다. 장애 발생 시 데이터베이스 시스템은 WordPress 애플리케이션을 재구성하지 않고 자동으로 보조 인스턴스로 페일오버합니다.

로드 밸런서는 OKE 클러스터에서 LoadBalancer 유형의 서비스 리소스로 생성 및 관리됩니다.

구조에는 다음과 같은 구성 요소가 있습니다.

  • 지역

    Oracle Cloud Infrastructure 리전은 가용성 도메인이라고 하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인의 장애가 해당 영역의 다른 가용성 도메인에 영향을 미치지 않아야 합니다.

  • 결함 도메인

    장애 도메인은 가용성 도메인 내의 하드웨어 및 인프라 그룹입니다. 가용성 도메인에는 독립적인 전원 및 하드웨어를 갖춘 3개의 장애 도메인이 있습니다. 여러 결함 도메인에 리소스를 분배할 때 응용 프로그램은 결함 도메인 내의 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정한 맞춤형 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN을 통해 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷 생성 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine(OCI Kubernetes Engine 또는 OKE)는 컨테이너화된 애플리케이션을 클라우드에 배포하는 데 사용할 수 있는 확장 가능한 고가용성 완전 관리형 서비스입니다. 애플리케이션에 필요한 컴퓨트 리소스를 지정하면 Kubernetes Engine이 기존 테넌시의 Oracle Cloud Infrastructure에서 프로비저닝합니다. OKE는 Kubernetes를 사용하여 호스트 클러스터 전반에서 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다.

  • Oracle MySQL Database Service

    Oracle MySQL Database Service는 개발자가 안전한 클라우드 네이티브 애플리케이션을 신속하게 개발하고 배포할 수 있는 완전 관리형 Oracle Cloud Infrastructure(OCI) 데이터베이스 서비스입니다. OCI에 최적화되고 독점적으로 제공되는 Oracle MySQL Database Service는 OCI 및 MySQL 엔지니어링 팀이 100% 구축, 관리 및 지원합니다.

    Oracle MySQL Database Service에는 운영 중인 MySQL 데이터베이스에 대해 정교한 실시간 분석을 직접 실행할 수 있는 통합 고성능 분석 엔진(HeatWave)이 있습니다.

  • 파일 스토리지

    Oracle Cloud Infrastructure File Storage 서비스는 지속성, 확장성, 보안성을 갖춘 엔터프라이즈급 네트워크 파일 시스템을 제공합니다. VCN의 베어 메탈, 가상 시스템 또는 컨테이너 인스턴스에서 파일 스토리지 서비스 파일 시스템에 연결할 수 있습니다. Oracle Cloud Infrastructure FastConnect 및 IPSec VPN을 사용하여 VCN 외부에서 파일 시스템에 액세스할 수도 있습니다.

  • WordPress CMS(Content Management System)

    WordPress CMS를 사용하면 완전한 기능을 갖춘 블로그 사이트 또는 범용 웹 사이트를 구축할 수 있습니다.

  • NAT(Network Address Translation) 게이트웨이

    NAT 게이트웨이를 사용하면 VCN의 전용 리소스가 수신 인터넷 연결에 이러한 리소스를 노출시키지 않고 인터넷의 호스트에 액세스할 수 있습니다.

  • 서비스 게이트웨이

    서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.

  • 레지스트리

    Oracle Cloud Infrastructure Registry는 개발-운영 워크플로우를 간소화할 수 있는 Oracle 관리 레지스트리입니다. 레지스트리를 사용하면 Docker 이미지와 같은 개발 아티팩트를 쉽게 저장, 공유 및 관리할 수 있습니다. Oracle Cloud Infrastructure의 가용성과 확장성이 뛰어난 아키텍처는 애플리케이션을 안정적으로 배포하고 관리할 수 있도록 보장합니다.

  • 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드에 있는 여러 서버로 트래픽을 자동으로 배포합니다.

  • 경로 테이블

    가상 라우팅 테이블에는 일반적으로 게이트웨이를 통해 서브넷에서 VCN 외부의 대상으로 트래픽을 라우팅하는 규칙이 포함되어 있습니다.

  • 보안 목록

    각 서브넷에 대해 서브넷에 들어오고 나가도록 허용해야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

권장사항

다음 권장 사항을 시작점으로 사용하십시오. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
  • VCN

    VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수에 따라 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    프라이빗 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.

    VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    서브넷을 설계할 때는 트래픽 플로우 및 보안 요구사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 동일한 서브넷에 연결합니다. 이 서브넷은 보안 경계 역할을 할 수 있습니다.

  • 로드 밸런서 대역폭

    로드 밸런서를 생성하는 동안 고정 대역폭을 제공하는 미리 정의된 구성을 선택하거나, 대역폭 범위를 설정하고 서비스가 트래픽 패턴에 따라 대역폭을 자동으로 확장하도록 하는 사용자 정의(유연한) 구성을 지정할 수 있습니다. 두 접근 방법 중 하나를 사용하면 로드 밸런서를 생성한 후 언제든지 구성을 변경할 수 있습니다.

  • 보안 목록

    보안 목록을 사용하여 전체 서브넷에 적용되는 수신 및 송신 규칙을 정의합니다.

  • Oracle MySQL Database Service

    이 아키텍처에서 WordPress CMS는 관계형 데이터를 Oracle MySQL Database Service에 저장합니다. 최신 버전을 사용하는 것이 좋습니다.

고려사항

Oracle Cloud에 WordPress를 배포할 때 확장성 및 가용성을 고려해 보십시오.

  • 애플리케이션 가용성

    WordPress 애플리케이션은 고가용성을 제공하기 위해 배치에 여러 POD와 함께 배치됩니다.

  • My SQL 데이터베이스 서비스 가용성 및 확장성

    고가용성 아키텍처에 표시되는 MySQL Database Service는 내장된 MySQL 고가용성 옵션을 사용합니다. 이 옵션은 세 개의 인스턴스를 생성하여 다른 장애 도메인에 배치합니다.

배치

이 참조 아키텍처는 OCI 콘솔 또는 CLI를 사용하지 않고도 OKE 클러스터에서 배포 및 관리하고, Helm 차트를 통해 자동화할 수 있습니다. 이 참조 아키텍처의 샘플 Helm 차트는 HA 또는 비HA를 위해 OCI에 배포된 Kubernetes 클러스터 내 데이터베이스로 MySQL Database 시스템을 사용하여 WordPress 배포를 부트스트랩하는 방법을 보여줍니다. GitHub에서 코드를 다운로드하여 특정 요구 사항에 맞게 사용자 정의할 수 있습니다.

  1. GitHub - HA 또는 GitHub - non-HA로 이동합니다.
  2. 저장소를 복제하거나 로컬 컴퓨터에 다운로드합니다.
  3. README 문서의 지침을 따릅니다.

감사의 글

  • Authors: Chiping Hwang, Hassan Ajan
  • 제공자: Anupama Pundpal