고가용성 웹 애플리케이션 배치

웹 애플리케이션 스택에는 일반적으로 로드 밸런서, 다중 웹 서버 및 데이터 저장소가 포함됩니다. 고가용성을 위해서는 스택의 모든 계층에 걸친 중복 리소스를 포함하는 토폴로지가 필요합니다.

구조

이 참조 아키텍처는 Oracle Autonomous Transaction Processing 데이터베이스와 함께 Oracle Cloud에서 실행되는 고가용성 웹 애플리케이션을 보여줍니다.

공용 로드 밸런서는 인터넷에서 클라이언트 요청을 수신하고 여러 장애 도메인에 걸쳐 배포된 웹 서버 풀로 요청을 전달합니다. 데이터 계층은 전용 끝점을 사용하는 자율운영 데이터베이스로 구성됩니다.

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

다음은 ha-webapp-oci.png에 대한 설명입니다.
그림 ha-webapp-oci.png에 대한 설명

ha-webapp-oci-atp-oracle.zip

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

  • 영역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 현지화된 지리적 영역입니다. 지역은 다른 지역에 독립적이며, 거리가 먼 나라 전체나 대륙을 구분할 수 있습니다.

    이 아키텍처의 모든 리소스는 단일 영역에 배치됩니다.

  • 가용성 도메인

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

    이 아키텍처의 리소스는 단일 가용성 도메인에 배치됩니다.

  • 결함 도메인

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

    이 아키텍처에 표시된 토폴로지는 여러 장애 도메인에 걸쳐 있습니다.

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

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

    이 구조에서 웹 서버는 공용 서브넷에 연결되고 데이터베이스는 전용 서브넷을 사용합니다.

  • 로드 밸런서

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

  • 웹 서버

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

    이 구조의 웹 서버는 컴퓨트 가상 머신에서 실행됩니다.

  • Autonomous Transaction Processing 데이터베이스

    Oracle Autonomous Transaction Processing은 트랜잭션 처리 워크로드에 최적화된 자율 관리, 자율 보안 및 자율 복구 데이터베이스 서비스입니다. 하드웨어를 구성 또는 관리하거나 소프트웨어를 설치할 필요가 없습니다. Oracle Cloud Infrastructure는 데이터베이스 생성과 데이터베이스 백업, 패치, 업그레이드 및 조정을 처리합니다.

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

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

    이 아키텍처에서는 로드 밸런서, 웹 서버 및 데이터베이스에 별도의 NSG가 사용됩니다.

  • 경로 테이블

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

  • 인터넷 게이트웨이

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

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

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

권장 사항

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

  • 웹 서버의 컴퓨트 구성

    아키텍처를 배포하는 동안 애플리케이션의 메모리 및 처리 요구사항에 따라 웹 서버를 호스트하는 컴퓨트 인스턴스에 적합한 구성을 선택합니다.

  • 네트워크 디자인

    VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수를 기반으로 필요한 CIDR 블록 수 및 각 블록의 크기를 확인하십시오. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

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

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

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

    지역별 서브넷 사용.

고려 사항

클라우드에서 고가용성 애플리케이션 스택을 설계할 때 다음 요인을 고려하십시오.

  • 확장성
    • 데이터베이스

      언제든지 데이터베이스의 CPU 코어 수를 수동으로 늘리거나 줄일 수 있습니다. 자율 데이터베이스의 자동 크기 조정 기능을 통해 데이터베이스는 언제든지 현재 CPU 코어의 최대 3배를 사용할 수 있습니다. 수요가 증가하면 자동 크기 조정은 사용 중인 코어 수를 자동으로 늘립니다. 자율 데이터베이스를 통해 가용성이나 성능에 영향을 주지 않으면서 언제든지 스토리지 용량을 확장할 수 있습니다.

    • 애플리케이션

      인스턴스 풀 및 자동 크기 조정 기능을 사용하여 애플리케이션을 확장할 수 있습니다.

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

      자동 크기 조정을 사용하여 CPU 사용률과 같은 성능 측정지표를 기반으로 인스턴스 풀의 컴퓨트 인스턴스 수를 자동으로 조정합니다. 자동 크기 조정을 사용하면 높은 수요 기간 동안 사용자에게 일관된 성능을 제공하고 요청이 적을 때 비용을 절감할 수 있습니다.

  • 가용성
    • 데이터베이스

      구조 다이어그램은 단일 Oracle Autonomous Transaction Processing 데이터베이스를 보여줍니다. 구조를 배치하는 동안 Oracle Autonomous Data Guard가 대기 데이터베이스를 프로비저닝하고 관리하도록 설정할 수 있습니다.

    • 애플리케이션

      장애 도메인은 가용성 도메인 내에서 탄력성을 제공합니다. 가능하면 여러 가용성 도메인 또는 여러 영역에 리소스를 분산하는 것이 좋습니다.

  • 보안
    • 접근 제어

      정책을 사용하여 클라우드에서 리소스에 액세스할 수 있는 사용자 및 해당 사용자가 수행할 수 있는 작업을 제한합니다.

    • 네트워크 보안

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

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

배치

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

  • Oracle Cloud Infrastructure Resource Manager를 사용하여 배치합니다.
    1. Oracle Cloud에 배치을 누릅니다.

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

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

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

    7. 추가 변경이 필요하지 않은 경우 스택 세부정보 페이지로 돌아가서 Terraform 작업을 누르고 적용을 선택합니다.
  • Terraform CLI를 사용하여 구축합니다.
    1. GitHub로 이동합니다.
    2. 코드를 다운로드하거나 로컬 컴퓨터에 복제합니다.
    3. README의 지침을 따릅니다.

로그 변경

이 로그에는 중요한 변경 사항만 나열됩니다.