Oracle Cloud Infrastructure에 고가용성을 갖춘 Oracle REST Data Services 배포
Oracle Cloud Infrastructure(OCI) 및 REST에 고가용성을 갖춘 ORDS(Oracle REST Data Services)를 배포하여 데이터베이스를 활성화하고 마이크로서비스 아키텍처 및 기능의 이점을 노출할 수 있습니다.
ORDS는 HTTPS와 Oracle 데이터베이스를 연결합니다. 중간 계층 Java 애플리케이션으로 데이터베이스 관리 REST API, SQL Developer Web, PL/SQL Gateway, REST용 SODA, Oracle 데이터베이스의 데이터 및 내장 프로시저와 상호 작용하기 위해 RESTful 웹 서비스를 게시할 수 있는 기능을 제공합니다.
또한 ORDS는 Oracle WebLogic Server 또는 Apache Tomcat을 사용하거나 독립형 모드에 있는 배포를 지원하여 향상된 유연성을 제공합니다. ORDS는 내장된 JDBC 드라이버가 연결을 제공하므로 Oracle 홈이 필요하지 않으므로 배치 프로세스를 더욱 단순화합니다.
이 참조 아키텍처는 여러 VM 컴퓨팅 인스턴스에 ORDS를 배포하여 Oracle 데이터베이스 인스턴스에 대한 고가용성 중간 계층을 생성하는 방법을 설명합니다.
구조
이 아키텍처는 OCI에서 고가용성을 제공하는 Oracle REST Data Services를 배포하는 방법을 보여줍니다.
아키텍처는 단일 리전 내의 VCN(가상 클라우드 네트워크)으로 시작됩니다. 이 VCN은 여러 AD(가용성 도메인)에 걸쳐 있을 수 있지만 이 참조 아키텍처에서는 단일 AD를 사용합니다. 해당 AD에는 하드웨어와 인프라를 그룹화한 AD 내의 여러 장애 도메인이 포함됩니다. ORDS가 있는 컴퓨트 VM은 고가용성을 달성하는 데 도움이 되도록 여러 장애 도메인에 배치됩니다.
VCN에서 여러 서브넷에는 특정 구조 구성 요소가 포함됩니다. 인터넷 게이트웨이로 시작하여 지정된 포트를 통해 공용 서브넷에서 이 VCN의 프론트 엔드에 있는 로드 밸런서로의 트래픽만 허용합니다. 로드 밸런서에는 나중에 필요에 따라 사용자 정의 도메인 이름을 적용하는 데 사용할 수 있는 공용 IP도 있습니다. 로드 밸런서는 ORDS 컴퓨트 중간 계층이 포함된 서브넷과 통신합니다. 통신은 서브넷 전체 보안 목록과 NSG(네트워크 보안 그룹)로 보호됩니다. 이러한 NSG를 컴퓨트 및 로드 밸런서의 VNIC 세트에 적용하여 이러한 리소스 간의 통신을 위한 세분화된 보안 규칙을 제공할 수 있습니다.
마지막으로 보안 목록 및 NSG를 다시 사용하면 ORDS 중간 계층이 전용 서브넷의 Oracle 데이터베이스에 액세스할 수 있습니다. 전용 서브넷을 사용하는 리소스에는 공용 IP가 제공되지 않습니다. 이렇게 하면 공용 서브넷과 전용 서브넷 사이의 보안 통신 계층에 NSG를 사용할 수 있습니다. 이 프라이빗 서브넷의 Oracle 데이터베이스 인스턴스는 VM DB 인스턴스, 자율운영 데이터베이스 또는 Exadata Cloud Service 데이터베이스일 수 있습니다.
다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.
- 지역
OCI 리전은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).
- 가용성 도메인
가용성 도메인은 한 지역 내의 독립형 독립 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원 또는 냉각과 같은 인프라 또는 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 한 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다. 이 아키텍처의 리소스는 단일 가용성 도메인에 배포됩니다.
- 결함 도메인
장애 도메인은 하나의 가용성 도메인에 있는 하드웨어와 인프라 그룹입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어를 갖춘 3개의 장애 도메인이 있습니다. 여러 결함 도메인에 리소스를 분배할 때 응용 프로그램은 결함 도메인 내의 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다. 이 아키텍처의 리소스는 여러 장애 도메인에 배치됩니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 OCI 리전에서 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN을 통해 네트워크 환경을 완벽하게 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
이 참조 아키텍처에서는 ORDS가 포함된 컴퓨트 인스턴스가 로드 밸런서와 함께 퍼블릭 서브넷에 연결되고, 데이터베이스는 프라이빗 또는 퍼블릭 서브넷을 사용할 수 있습니다. 데이터베이스 보안 모범 사례는 가능하면 데이터베이스 인스턴스를 전용 서브넷에 배치합니다.
- 로드 밸런서
Oracle Cloud Infrastructure Load Balancing Service는 단일 시작점에서 백엔드에 있는 여러 서버로 트래픽을 자동으로 배포합니다. 이 로드 밸런서의 퍼블릭 IP는 필요한 경우 사용자정의 도메인 이름을 등록할 수 있는 위치 역할을 합니다.
- API 게이트웨이
Oracle Cloud Infrastructure API Gateway를 사용하면 네트워크 내에서 액세스할 수 있고 필요한 경우 공용 인터넷에 노출할 수 있는 전용 엔드포인트가 있는 API를 게시할 수 있습니다. 엔드포인트는 API 검증, 요청 및 응답 변환, CORS, 인증 및 권한 부여, 요청 제한을 지원합니다.
- 컴퓨트 인스턴스/ORDS 호스트
Oracle Cloud Infrastructure Compute에서는 컴퓨트 호스트를 프로비전하고 관리할 수 있습니다. 리소스 요구사항(CPU, 메모리, 네트워크 대역폭 및 스토리지)을 충족하는 구성으로 컴퓨트 인스턴스를 시작할 수 있습니다. 컴퓨트 인스턴스를 생성한 후 안전하게 액세스하고, 다시 시작하고, 볼륨을 연결 및 분리하고, 필요하지 않은 경우 이를 종료할 수 있습니다. 이 아키텍처의 웹 서버는 x86 또는 ARM CPU 아키텍처를 사용하는 컴퓨트 가상 머신에서 실행됩니다.
- 데이터베이스 인스턴스
데이터베이스 서비스는 자율운영 및 공동 관리형 Oracle Database 클라우드 솔루션을 제공합니다. 자율운영 데이터베이스는 트랜잭션 처리(Processing) 또는 데이터 웨어하우스(Data Warehouse) 작업 로드에 적합한 사전 구성된 완전 관리형 환경입니다. 공동 관리 솔루션은 베어메탈, 가상 머신 및 Exadata DB 시스템으로 요구사항에 맞는 리소스 및 설정으로 사용자 정의할 수 있습니다.
이 참조 아키텍처는 자율운영 데이터베이스 또는 공동 관리 데이터베이스 인스턴스에 사용할 수 있습니다.
- NSG(네트워크 보안 그룹)
NSG는 컴퓨트 인스턴스에 대한 가상 방화벽 역할을 합니다. OCI의 제로 트러스트 보안 모델을 사용하면 모든 트래픽이 거부되고 사용자는 VCN 내의 네트워크 트래픽을 제어할 수 있습니다. NSG는 단일 VCN의 지정된 VNIC 세트에만 적용되는 일련의 수신 및 송신 보안 규칙으로 구성됩니다. 이 아키텍처에서는 로드 밸런서, 웹 서버 및 데이터베이스에 별도의 NSG가 사용됩니다.
- 경로 테이블
가상 라우팅 테이블에는 일반적으로 게이트웨이를 통해 서브넷에서 VCN 외부의 대상으로 트래픽을 라우팅하는 규칙이 포함되어 있습니다.
- 인터넷 게이트웨이
인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.
- 보안 목록
보안 목록은 서브넷의 모든 VNIC/인스턴스에 대해 들어오고 나가도록 허용되는 트래픽 유형을 지정하는 일련의 수신 및 송신 규칙입니다. 보안 목록은 서브넷 레벨에서 적용되며 NSG는 VNIC 레벨에서 적용됩니다. 둘 다 VNIC에 대한 방화벽 역할을 효과적으로 수행합니다. OCI의 제로 트러스트 보안 모델을 사용하면 VNIC에 대한 모든 트래픽이 거부됩니다. SL과 NSG 모두 트래픽이 VNIC에 허용되도록 명시적으로 허용해야 합니다.
- Zero-Trust Packet Routing(ZPR)
OCI는 SL 및 NSG 외에도 Zero-Trust Packet Routing이라는 네트워크 보안 구성을 보유하고 있습니다. ZPR은 계층 4에서 작동하는 의도 기반 보안 네트워킹이며 사람이 읽을 수 있는 정책 언어로 구현될 수 있습니다. 보안 속성("ZPR용 태그")을 리소스에 지정하면 권한이 부여된 엔티티만 데이터베이스 및 응용 프로그램 서버와 같은 중요한 구성 요소와 통신할 수 있도록 세부적인 액세스 제어를 만들 수 있습니다. 이 접근 방식은 무단 액세스 위험을 줄여줄 뿐만 아니라 애플리케이션이 발전함에 따라 정책 관리를 단순화합니다. ZPR은 기존 NSG 및 SL과 함께 작동하여 네트워크 아키텍처의 변화에 적응하는 보다 포괄적인 보안 상태를 제공합니다. 여기에서 네트워크 아키텍처가 어떻게 변경/변동되는지에 관계없이 필요한 트래픽(플로우 방향, 프로토콜 및 포트)만 허용되는 방식으로 각 서브넷의 노드에 보안 속성(특수 ZPR 태그)을 지정할 수 있습니다.
권장사항
- VCN
VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수에 따라 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.
프라이빗 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.
VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.
서브넷을 설계할 때는 트래픽 플로우 및 보안 요구사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 동일한 서브넷에 연결합니다. 이 서브넷은 보안 경계 역할을 할 수 있습니다.
지역 서브넷을 사용합니다.
모든 네트워크 경계에 방화벽을 배치하는 것이 좋습니다.
- 로드 밸런싱
OCI는 유연한 로드 밸런싱을 제공합니다. 들어오는 요청 수에 따라 확장할 수 있도록 상한 및 하한을 사용하여 로드 밸런서를 생성할 수 있습니다. 범위는 10mbps에서 8000mbps까지 작을 수 있습니다. 다중 AD 또는 다중 지역 로드 밸런싱이 필요한 경우 트래픽 관리 조정 기능과 함께 DNS Cloud Service를 사용합니다.
- 보안
Oracle Cloud Guard를 사용하여 Oracle Cloud Infrastructure에서 리소스의 보안을 사전에 모니터링하고 유지 관리할 수 있습니다. Cloud Guard는 정의 가능한 감지기 레시피를 사용하여 리소스의 보안 취약성을 검사하고 운영자 및 사용자를 모니터하여 위험한 작업을 모니터합니다. 잘못 구성되거나 안전하지 않은 작업이 감지되면 Cloud Guard는 정의할 수 있는 응답기 레시피를 기반으로 수정 조치를 권장하고 해당 작업을 수행하는 데 도움을 줍니다.
최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle 정의 보안 정책 레시피와 연관된 컴파트먼트입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 생성 및 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 정책을 위반하는 작업을 거부합니다.
- 데이터베이스 인스턴스
운영 애플리케이션의 경우 Oracle 데이터베이스 인스턴스는 OCI의 Oracle MAA(Maximum Availability Architecture) 배포 모델을 준수해야 합니다. 이러한 지침을 따르면 데이터베이스의 가용성이 높을 뿐만 아니라 중단 및 재해 발생 시에도 보호됩니다. 이러한 아키텍처는 DR 인스턴스를 활용하는 데이터베이스를 보고할 때의 이점도 제공합니다.
MAA 아키텍처는 Oracle Cloud Infrastructure Database 서비스(공동 관리 및 자율 관리)에 바로 내장되어 있습니다. Data Guard, GoldenGate, RAC 및 자동 백업은 즉시 사용할 수 있으며 해당하는 경우 운용 환경에 사용해야 합니다.
RAC를 OCR(Oracle Cluster Registry)Oracle Database와 함께 사용할 경우 ORDS에서 사용하는 데이터베이스 연결 정보가 개별 노드가 아닌 SCAN 리스너를 가리키는지 확인하십시오.
- 컴퓨트/ORDS 인스턴스
컴퓨트 중간 계층의 크기를 조정할 때 권장사항은 다음 차트를 참조하십시오.
참조 아키텍처 크기(가상 머신)
모양 최대 OCPU 최소 메모리 최대 메모리 VM.Standard3.Flex 32 1GB 또는 OCPU 수와 일치하는 값(둘 중 더 큰 값) OCPU당 64GB, 총 512GB VM.Standard.E2.1.Micro 1 1 GB 1 GB VM.Standard.E4.Flex 64 1GB 또는 OCPU 수와 일치하는 값(둘 중 더 큰 값) OCPU당 64GB, 총 1024GB VM.Standard.E5.Flex 94 1GB 또는 OCPU 수와 일치하는 값(둘 중 더 큰 값) OCPU당 64GB, 총 1049GB VM.Standard.A1.Flex 76(OCPU는 Alta 프로세서의 1코어임) 1GB 또는 OCPU 수와 일치하는 값(둘 중 더 큰 값) OCPU당 64GB, 총 472GB VM.Standard.A2.Flex 78(OCPU는 Ampere One 프로세서의 2코어임) 1GB 또는 OCPU 수와 일치하는 값(둘 중 더 큰 값) OCPU당 64GB, 총 946GB 컴파트먼트에서 사용 가능한 구성 목록을 찾으려면 CLI/ SDK를 통해
List Shapes
작업을 실행할 수도 있습니다. 자세한 내용은 아래의 "자세히 탐색"에서 액세스할 수 있는List Shapes
API 설명서 및 "컴퓨트 구성"을 참조하십시오.OCI에서 예상되는 월별 컴퓨팅 비용을 확인하려면 Cost Estimator를 사용할 수 있습니다. 청구에 대한 자세한 내용은 "청구 및 원가 관리" 페이지에서 확인할 수 있습니다. 아래의 "자세히 탐색"에서 비용 추정기 및 "청구 및 비용 관리"에 모두 액세스할 수 있습니다.
참조 아키텍처 크기(베어 메탈)
컴퓨트 구성 CPU/ 메모리 최대 네트워크 대역폭 BM.Standard3.64 64OCPU/1024GB 2 x 50GBPS BM.Standard.E4.128 128OCPU/2048GB 2 x 50GBPS BM. 표준. E5.192 192 OCPU/2304GB 100GBPS 1개 BM.Standard.A1.160 160OCPU/1024GB 2 x 50GBPS
고려사항
이 참조 아키텍처를 배치할 때는 다음 사항을 고려하십시오.
- 성능
컴퓨트, 로드 밸런서 및 데이터베이스 클라우드 인스턴스는 모두 확장되어 증가된 로드를 처리할 수 있습니다. 컴퓨트/ORDS 계층을 사용하면 추가 인스턴스를 빠르게 생성하여 로드 밸런서 구성에 추가할 수 있습니다. 데이터베이스 계층의 경우 Autonomous Database는 로드가 증가할 때 CPU/메모리를 자동으로 확장하도록 설정할 수 있습니다. 공동 관리 인스턴스의 경우 VM 기반 서비스가 VM에서 사용된 CPU 수를 확장할 수 있습니다. Exadata 클라우드 서비스의 경우 X8M 플랫폼은 CPU를 스케일링할 수 있을 뿐 아니라 RAC 클러스터에 노드를 추가하여 컴퓨팅 성능을 추가할 수 있습니다.
- 보안
서브넷 및 NSG 수신/송신 규칙에는 매우 세분화된 규칙을 사용해야 합니다. 서브넷에 있는 인스턴스의 특정 IP에 대한 예상 포트를 통한 트래픽만 필요합니다. 컴퓨트 또는 데이터베이스 계층에 액세스해야 하는 경우 액세스를 위해 Bastion as a Service를 사용합니다. 이렇게 하면 권한이 부여된 사용자만 이러한 인스턴스에 액세스할 수 있고 액세스 권한이 부여된 특정 인스턴스에만 액세스할 수 있습니다. Bastion as a Service를 사용하는 것은 SSH 포트를 공용 인터넷에 노출하는 것보다 훨씬 더 안전한 방법입니다.
- 가용성
데이터베이스 배치를 위한 Oracle Maximum Availability Architecture(MAA) 가이드를 준수합니다. ORDS의 경우 로드 밸런서가 있는 여러 중간 계층이 권장됩니다. 다시 말하지만 RAC를 Oracle Database와 함께 사용할 경우 ORDS에서 사용하는 데이터베이스 연결 정보가 개별 노드가 아닌 SCAN 리스너를 가리키는지 확인합니다.
- 비용
각 컴퓨팅 및 데이터베이스 계층에 대해 일반적으로 자동 확장 및 확장을 사용하면 비용을 제어하는 데 도움이 되므로 CPU, 메모리 또는 인스턴스를 초과하거나 낭비하지 않고 사용 중인 항목에 대해서만 비용을 지불할 수 있습니다. 유연한 로드 밸런서를 사용하여 비용을 제어할 수도 있습니다.
배치
한 번의 클릭으로 이 아키텍처의 코드를 Oracle Cloud Infrastructure Resource Manager로 가져와 스택을 생성한 후 배포할 수 있습니다.