로드 균형이 조정된 웹 애플리케이션 자동 스케일링
클라우드에서 웹 애플리케이션을 실행하려면 신뢰할 수 있는 보안 인프라, 탄력적이고 유지 관리가 쉬운 토폴로지 및 사용량 기반 청구가 필요합니다. 이러한 요구사항을 모두 충족하는 Oracle Cloud 기능은 자동 스케일링입니다.
자동 스케일링을 사용하면 클라우드의 리소스가 효율적으로 활용되고 필요할 때 사용할 수 있습니다. CPU 활용률과 같은 성능 측정항목을 기반으로 컴퓨트 리소스를 자동으로 조정하도록 클라우드 배치를 구성할 수 있습니다. 로드가 높은 경우에도 일관된 성능을 경험할 수 있습니다. 낮은 수요 기간 동안 비용이 비례적으로 낮아집니다.
구조
이 참조 아키텍처는 LB(로드 밸런서), 자동 스케일링 웹 계층 및 고가용성 데이터베이스로 구성된 3계층 토폴로지를 보여줍니다.
모든 리소스는 Oracle Cloud Infrastructure 영역의 단일 가용성 도메인에 배치됩니다. LB 계층, 웹 계층 및 데이터베이스 계층은 단일 VCN 내의 별도 서브넷에서 격리됩니다. NSG(네트워크 보안 그룹) 는 각 계층의 리소스에 대한 네트워크 트래픽을 규제하는 방화벽으로 사용됩니다. 각 서브넷에 연결된 경로 테이블에는 VCN 외부의 대상으로 트래픽을 전달하는 규칙이 포함되어 있습니다.
다음 다이어그램은 참조 아키텍처를 보여 줍니다.
이 아키텍처에는 다음과 같은 구성 요소가 있습니다:
- 지역
Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지역입니다. 지역은 다른 지역과 독립적이며 방대한 거리는 국가 또는 대륙에서 분리할 수 있습니다.
이 아키텍처의 모든 리소스는 단일 지역에 있습니다.
- 가용성 도메인
가용성 도메인은 영역 내의 독립적인 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용 한도를 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인에서 오류가 영역의 다른 가용성 도메인에 영향을 주지 않을 수 있습니다.
이 구조의 리소스는 단일 가용성 도메인에 배치됩니다.
- 결함 도메인
결함 도메인은 가용성 도메인 내의 하드웨어와 기반구조를 그룹화한 것입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어가 있는 3개의 장애 도메인이 있습니다. 여러 결함 도메인에 리소스를 배포할 때 응용 프로그램은 결함 도메인 내에서 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.
이 아키텍처의 각 계층에 있는 리소스는 여러 결함 도메인에 분산됩니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN는 Oracle Cloud Infrastructure 지역에서 설정하는 사용자정의 가능한 소프트웨어 정의 네트워크입니다. VCN은 기존의 데이터 센터 네트워크와 마찬가지로 네트워크 환경을 완벽하게 제어할 수 있습니다. VCN 에는 VCN를 생성한 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. 영역 또는 가용성 도메인으로 범위를 지정할 수 있는 서브넷으로 VCN를 세그먼트화할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 서브넷 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
이 아키텍처의 로드 균형 조정 및 웹 계층은 별도의 공용 서브넷을 사용합니다. 데이터베이스가 전용 서브넷에 연결됩니다.
- 로드 밸런서
Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드의 여러 서버로 자동화된 트래픽 분배를 제공합니다.
- NSG(네트워크 보안 그룹)
NSG는 클라우드 리소스에 대한 가상 방화벽 역할을 합니다. Oracle Cloud Infrastructure의 신뢰할 수 없는 보안 모델을 사용하면 모든 트래픽이 거부되며, VCN 내에서 네트워크 트래픽을 제어할 수 있습니다. NSG는 단일 VCN의 지정된 VNIC 집합에만 적용되는 일련의 수신 및 송신 보안 규칙으로 구성됩니다.
별도의 NSG가 이 아키텍처의 각 계층에 있는 리소스에 사용됩니다.
- 경로 테이블
가상 경로 테이블에는 일반적으로 게이트웨이를 통해 서브넷의 트래픽을 VCN 외부의 대상으로 경로 지정하는 규칙이 포함되어 있습니다.
- 인터넷 게이트웨이
인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.
- 인스턴스 구성
인스턴스 구성은 기본 이미지, 구성 및 메타데이터와 같은 세부정보를 포함하여 컴퓨트 인스턴스를 생성할 때 사용할 설정을 정의하는 템플리트입니다. 블록 볼륨 연결 및 네트워크 구성 등 인스턴스에 대해 연관된 리소스를 지정할 수도 있습니다.
- 인스턴스 풀
인스턴스 풀은 동일한 인스턴스 구성에서 생성되고 그룹으로 관리되는 영역 내의 인스턴스 그룹입니다.
- 자동 스케일링
자동 크기 조정을 사용하면 CPU 활용률과 같은 성능 측정 단위를 기반으로 인스턴스 풀의 컴퓨트 인스턴스 수를 자동으로 조정할 수 있습니다.
인스턴스 풀이 스케일 아웃 또는 스케일 인하면 연관된 로드 밸런서의 백엔드 집합이 자동으로 업데이트됩니다.
- Autonomous Transaction Processing
Oracle Autonomous Transaction Processing는 트랜잭션 처리 작업 로드에 최적화된 자율 구동, 자율 보안, 자율 복구 데이터베이스 서비스입니다. 하드웨어를 구성 또는 관리하거나 소프트웨어를 설치할 필요가 없습니다. Oracle Cloud Infrastructure는 데이터베이스 생성과 데이터베이스 백업, 패치 적용, 업그레이드 및 튜닝을 처리합니다.
권장 사항
요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용하십시오.
- VCN
VCN를 생성할 때 VCN의 서브넷에 연결할 리소스 수에 따라 필요한 CIDR 블록 수 및 각 블록 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.
전용 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온-프레미스 데이터 센터 또는 다른 클라우드 제공자) 와 겹치지 않는 CIDR 블록을 선택합니다.
VCN를 생성한 후 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.
서브넷을 설계할 때 트래픽 흐름 및 보안 요구사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 동일한 서브넷에 연결합니다. 이 서브넷은 보안 경계 역할을 할 수 있습니다.
지역 서브넷을 사용합니다.
- 인스턴스 풀
제한이 없는 경우 풀의 사용 가능한 모든 가용성 도메인을 포함합니다.
- 인스턴스 구성
최상의 성능 비용 비율을 제공하고 작업 로드의 최소 요구 사항을 충족하는 인스턴스 구성을 선택합니다.
- 자동 스케일링 구성
응용 프로그램의 리소스 요구 사항을 평가하고 확장 시 해당 정보를 사용하여 크기 조정 제한 및 냉각 동작을 정의합니다. 인스턴스 풀의 최대 비용을 결정합니다.
고려 사항
자동 스케일링 다중 계층 응용 프로그램 스택을 배치하는 경우 다음 요인을 고려하십시오:
- 데이터베이스 확장성
언제든지 데이터베이스의 CPU 코어 수를 수동으로 확장 또는 축소할 수 있습니다. 자율운영 데이터베이스의 자동 크기 조정 기능을 통해 데이터베이스는 언제든지 현재 CPU 코어 수의 최대 3배를 사용할 수 있습니다. 수요가 증가함에 따라 자동 스케일링은 사용 중인 코어 수를 자동으로 늘립니다. 자율운영 데이터베이스를 사용하면 가용성이나 성능에 영향을 주지 않고 언제든지 스토리지 용량을 확장할 수 있습니다.
- 데이터베이스 가용성
구조 다이어그램은 단일 Oracle Autonomous Transaction Processing 데이터베이스를 보여줍니다. 구조를 배치하는 동안 Oracle Autonomous Data Guard가 대기 데이터베이스를 프로비전하고 관리하도록 설정할 수 있습니다.
- 애플리케이션 가용성
결함 도메인은 가용성 도메인 내에서 복원성을 제공합니다. 가능하면 여러 가용성 도메인 또는 여러 지역에 리소스를 배포하는 것이 좋습니다.
- 액세스 제어
정책을 사용하여 클라우드의 리소스에 액세스할 수 있는 사용자 및 수행할 수 있는 작업을 제한할 수 있습니다.
- 성능
풀의 크기는 자동으로 스케일 인 또는 스케일 아웃할 수 있지만 자동 스케일링 정책을 미세 조정할 수 있도록 애플리케이션의 동작을 알아야 합니다. 리소스 제한은 풀의 확장 기능에 영향을 줄 수 있습니다.
배치
이 참조 구조를 배치하는 데 필요한 코드는 GitHub에서 사용할 수 있습니다. 한 번의 클릭으로 코드를 Oracle Cloud Infrastructure Resource Manager로 가져와서 스택을 생성하고 배치할 수 있습니다. 또는 Terraform CLI를 사용하여 GitHub에서 컴퓨터로 코드를 다운로드하고, 코드를 사용자정의하고, 아키텍처를 배치합니다.
- Oracle Cloud Infrastructure Resource Manager를 사용하여 배치합니다:
을 누릅니다.
아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.
- 조건 및 조항을 검토하고 수락합니다.
- 스택을 배치할 영역을 선택합니다.
- 화면의 프롬프트 및 지침에 따라 스택을 만듭니다.
- 스택을 생성한 후 Terraform 작업 을 누르고 계획 을 선택합니다.
- 작업이 완료될 때까지 기다렸다가 계획을 검토합니다.
변경하려면 스택 세부정보 페이지로 돌아가서 스택 편집 을 누르고 필요한 사항을 변경합니다. 그런 다음 계획 작업을 다시 실행합니다.
- 더 이상 변경할 필요가 없는 경우 스택 세부 정보 페이지로 돌아가서 Terraform 작업 을 누르고 적용 을 선택합니다.
- Terraform CLI를 사용하여 배치합니다:
- GitHub로 이동합니다.
- 코드를 로컬 컴퓨터에 다운로드하거나 복제합니다.
README
파일의 지침을 따릅니다.