클라우드에서 MySQL Database에 연결된 WordPress CMS 설정

프로그래밍 또는 데이터베이스 관리 없이도 클라우드에서 현대적 웹 사이트를 생성하고 관리할 수 있습니다. Oracle Cloud Infrastructure에서 웹 페이지 및 블로그를 호스팅할 때 WordPress 플랫폼의 사용자에게 친숙한 기능과 탄력성 및 비용 이점을 활용할 수 있습니다.

구조

이 구조는 OCI(Oracle Cloud Infrastructure) 에 WordPress CMS 및 Oracle MySQL 데이터베이스 서비스를 배치합니다.

단일 노드에 또는 다중 노드 HA 구성의 일부로 WordPress를 배치할 수 있습니다. 이 참조 아키텍처에는 두 구성 모두와 호환되는 Terraform 자동화가 포함되어 있습니다.

복잡한 다중 노드 고가용성 환경의 경우 기본 및 대기 로드 밸런서가 있는 여러 장애 도메인에 WordPress 노드를 배포하고 모든 WordPress 노드에 대해 공유 Oracle Cloud Infrastructure File Storage 서비스(관리되는 NFS 서비스)를 배포합니다.

다음 다이어그램은 이 다중 노드 구조를 보여줍니다.

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

oci-arch-wordpress-mds-oracle.zip

다중 노드 환경을 구성할 때 다음을 수행할 수 있습니다.

  • WordPress 계층 노드 수를 정의합니다.
  • 공용 로드 밸런서를 배치하고 전용 서브넷의 WordPress 노드를 숨깁니다.
  • 배스천 호스트 또는 배스천 서비스를 배치하여 전용 리소스에 액세스합니다.
  • WordPress 콘텐츠에 대한 공유 NFS 스토리지와 함께 Oracle Cloud Infrastructure File Storage 서비스를 사용합니다(노드 간 업로드, 플러그인 및 테마 공유).

다음 다이어그램은 간단한 단일 노드 구조를 보여줍니다. 경량 배포로 구성되며, 학습용으로 적합하거나 개념 증명 역할을 할 수 있습니다.

다음 링크를 누르면 deploy-wordpress-cms-mysql-dbs.png에 대한 설명을 볼 수 있습니다.
deployment-wordpress-cms-mysql-dbs.png 그림에 대한 설명

deployment-wordpress-cms-mysql-dbs-oracle.zip

아키텍처에는 다음 구성 요소가 일부 또는 모두 포함됩니다.

  • 지역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지역입니다. 지역은 다른 지역과 독립적이며 방대한 거리는 국가 또는 대륙에서 분리할 수 있습니다.

  • 가용성 도메인

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

  • 결함 도메인

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

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

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

  • 인터넷 게이트웨이

    인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.

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

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

  • NSG(네트워크 보안 그룹)

    NSG는 클라우드 리소스에 대한 가상 방화벽 역할을 합니다. Oracle Cloud Infrastructure의 제로 트러스트 보안 모델을 사용하면 모든 트래픽이 거부되며 VCN 내의 네트워크 트래픽을 제어할 수 있습니다. NSG는 단일 VCN의 지정된 VNIC 세트에만 적용되는 수신 및 송신 보안 규칙 세트로 구성됩니다.

  • 보안 목록

    각 서브넷에 대해 서브넷 내부/외부에서 허용해야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

  • Oracle MySQL 데이터베이스 서비스

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

    이 참조 구조에서 Oracle MySQL 데이터베이스 서비스는 가상 시스템에 배치되며 WordPress에 대한 콘텐츠 정보를 호스트하는 데 사용됩니다. 배포가 클러스터에 없습니다.

  • 파일 저장소

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

  • CMS(WordPress Content Management System)

    WordPress CMS를 사용하면 전체 블로그 사이트 또는 범용 웹 사이트를 구축할 수 있습니다. 이 구조는 일반 컴퓨트 인스턴스를 사용하여 WordPress CMS 엔진을 배치합니다.

  • 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드의 여러 서버로 자동화된 트래픽 분배를 제공합니다.

  • 배스천 서비스

    Oracle Cloud Infrastructure 배스천은 퍼블릭 엔드포인트가 없고 베어 메탈 및 가상 머신, Oracle MySQL Database Service, Autonomous Transaction Processing(ATP), Oracle Container Engine for Kubernetes(OKE) 및 SSH(Secure Shell Protocol) 액세스를 허용하는 기타 모든 리소스가 필요한 리소스에 대한 제한적이고 시간 제한적인 보안 액세스를 제공합니다. Oracle Cloud Infrastructure 배스천 서비스를 사용하면 점프 호스트를 배포하고 유지 관리하지 않고도 전용 호스트에 접근할 수 있습니다. 또한 ID 기반 권한과 중앙 집중식 감사(audit) 및 시간 기반 SSH 세션을 통해 보안 상태를 향상시킵니다. Oracle Cloud Infrastructure 배스천은 배스천 액세스용 공용 IP가 필요 없어 원격 액세스 제공 시 방대한 공격 표면을 없애줍니다.

  • Compute

    Oracle Cloud Infrastructure Compute 서비스를 통해 클라우드에서 컴퓨트 호스트를 프로비전하고 관리할 수 있습니다. CPU, 메모리, 네트워크 대역폭, 스토리지에 대한 리소스 요구사항을 충족하는 구성으로 컴퓨트 인스턴스를 시작할 수 있습니다. 컴퓨트 인스턴스를 만든 후 안전하게 접근하여 다시 시작하고, 볼륨을 연결 및 분리하고, 더 이상 필요하지 않을 경우 종료할 수 있습니다.

권장 사항

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

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

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

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

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

  • 보안 목록

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

  • 컴퓨트 구성

    이 구조는 WordPress CMS용 VM.Standard2.1 구성의 Oracle Linux 7 . 8 OS 이미지를 사용합니다. 응용 프로그램의 리소스 요구가 다른 경우 다른 구성을 선택할 수 있습니다.

  • Oracle MySQL 데이터베이스 서비스

    이 구조에서 WordPress CMS는 관계형 데이터를 Oracle MySQL 데이터베이스 서비스에 저장합니다. 최신 버전을 사용하는 것이 좋습니다.

고려 사항

Oracle Cloud에서 WordPress를 배치하는 경우 확장성, 가용성 및 백업에 대해 다음 사항을 고려하십시오:

  • WordPress CMS 확장성

    인스턴스 풀과 자동 스케일링 기능을 사용하여 WordPress CMS의 스케일을 조정할 수 있습니다.

    인스턴스 풀을 사용하면 동일한 영역 내에서 동일한 구성을 기반으로 여러 컴퓨트 인스턴스를 프로비전하고 생성할 수 있습니다.

    자동 크기 조정을 사용하면 CPU 활용률과 같은 성능 측정 단위를 기반으로 인스턴스 풀의 컴퓨트 인스턴스 수를 자동으로 조정할 수 있습니다. 자동 스케일링을 사용하면 수요가 높은 기간 동안 사용자에게 일관된 성능을 제공할 수 있으며 수요가 적은 기간 동안 비용을 줄일 수 있습니다.

  • Oracle MySQL 데이터베이스 서비스 확장성

    계획된 작업 로드를 기반으로 Oracle MySQL 데이터베이스 서비스에 대한 시스템 구성을 선택합니다.

  • 애플리케이션 가용성

    결함 도메인은 가용성 도메인 내에서 최상의 복원성을 제공합니다. 고가용성이 필요한 경우 여러 가용성 도메인 또는 여러 영역을 사용해 보십시오.

  • Oracle MySQL 데이터베이스 서비스 백업

    MySQL Database Service는 데이터베이스 시스템에 포함된 모든 데이터의 전체 백업과 마지막 전체 백업 이후 추가되거나 변경된 데이터의 증분 백업의 두 가지 백업 유형을 지원합니다. 백업은 다음과 같은 방법으로 실행됩니다:

    • 수동: 콘솔의 작업 또는 API를 통한 요청이 백업을 시작합니다. 수동 백업은 최소 하루, 최대 365일 동안 보존할 수 있습니다.

    • 자동: 사용자가 선택한 시간에 필요한 상호 작용 없이 일정이 잡힌 백업이 자동으로 실행됩니다. 자동 백업은 1 ~ 35일 동안 보존됩니다. 기본 보존 값은 7일입니다. 정의된 경우 자동 백업의 보존 기간을 편집할 수 없습니다.

    컴퓨팅 백업

    Oracle Cloud Infrastructure Block Volumes 서비스를 사용하면 블록 볼륨에 있는 데이터의 적시 백업을 수행할 수 있습니다. 그런 다음 이러한 백업을 즉시 또는 나중에 새 볼륨으로 복원할 수 있습니다.

    서비스를 사용하여 응용 프로그램 중단 또는 작동 중지 시간 없이 부트 볼륨의 적시 장애 발생 시 정합성이 보장되는 백업을 만들 수도 있습니다. 부트 볼륨 백업 기능은 블록 볼륨 백업 기능과 동일합니다.

  • 보안 정책

    정책을 사용하여 회사가 보유한 OCI(Oracle Cloud Infrastructure) 리소스에 액세스할 수 있는 사용자 및 방법을 제한합니다.

  • 네트워크 보안

    네트워킹 서비스는 보안 규칙을 사용하여 패킷 레벨에서 트래픽을 제어하는 두 가지 가상 방화벽 기능인 보안 목록과 NSG(네트워크 보안 그룹) 를 제공합니다. NSG는 단일 VCN에서 선택한 VNIC 세트에만 적용되는 수신 및 송신 보안 규칙 세트로 구성됩니다. 예를 들어, VCN에 있는 다계층 응용 프로그램의 웹 계층에서 웹 서버로 작동하는 모든 컴퓨트 인스턴스를 선택할 수 있습니다.

    NSG 보안 규칙은 보안 목록 규칙과 동일하게 작동합니다. 그러나 NSG 보안 규칙의 소스 또는 대상의 경우 CIDR 블록 대신 NSG를 지정할 수 있습니다. 따라서 동일한 VCN의 두 NSG 간 트래픽 또는 단일 NSG 내의 트래픽 간 트래픽을 제어하는 보안 규칙을 쉽게 작성할 수 있습니다. 데이터베이스 시스템을 생성할 때 NSG를 하나 이상 지정할 수 있습니다. 하나 이상의 NSG를 사용하도록 기존 데이터베이스 시스템을 업데이트할 수도 있습니다.

배치

이 참조 아키텍처에 대한 Terraform 코드는 GitHub에서 사용할 수 있습니다. 한 번의 클릭으로 코드를 Oracle Cloud Infrastructure Resource Manager로 가져와서 스택을 생성하고 배치할 수 있습니다. 또는 Terraform CLI를 사용하여 GitHub에서 컴퓨터로 코드를 다운로드하고, 코드를 사용자정의하고, 구조를 배치할 수 있습니다.

  • Oracle Cloud Infrastructure Resource Manager의 샘플 스택을 사용하여 배치합니다:
    1. Oracle Cloud에 배포누릅니다.

      아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

    2. 조건 및 조항을 검토하고 수락합니다.
    3. 스택을 배치할 영역을 선택합니다.
    4. 화면의 프롬프트 및 지침에 따라 스택을 만듭니다.
    5. 스택을 생성한 후 Terraform 작업 을 누르고 계획 을 선택합니다.
    6. 작업이 완료될 때까지 기다렸다가 계획을 검토합니다.

      변경하려면 스택 세부정보 페이지로 돌아가서 스택 편집 을 누르고 필요한 사항을 변경합니다. 그런 다음 계획 작업을 다시 실행합니다.

    7. 더 이상 변경할 필요가 없는 경우 스택 세부 정보 페이지로 돌아가서 Terraform 작업 을 누르고 적용 을 선택합니다.
  • GitHub에서 Terraform 코드를 사용하여 배포합니다:
    1. GitHub로 이동합니다.
    2. 저장소를 로컬 컴퓨터에 복제하거나 다운로드합니다.
    3. README 문서의 지침을 따릅니다.
  • MySQL 데이터베이스를 사용하여 Oracle Linux에 WordPress CMS 설치 자습서를 사용하여 배포합니다.

자세히 살펴보기

Oracle Cloud Infrastructure 모범 사례 및 Oracle MySQL Database Service에 대해 자세히 알아보십시오.

다음 추가 리소스를 검토합니다:

로그 변경

이 로그는 중요한 변경 사항을 나열합니다.