IaC(Infrastructure as Code)를 사용하여 데이터 센터 전체에 워크로드 배포(IaC)
여러 클라우드에 워크로드를 배포하면 기업은 기술 스택에 새로운 기능을 추가할 때, 사용자를 온보딩 또는 제거할 때, 다운타임이 거의 또는 전혀 없이 재해 복구 환경을 확장할 때 유연성이 향상됩니다.
그러나 이러한 유연성 덕분에 더 많은 벤더 관리에서 더 많은 통합 업데이트, 더 많은 소프트웨어 라이선스 계약(SLA) 충족에 이르기까지 훨씬 더 복잡해질 수 있습니다.
멀티클라우드 배포를 간소화하기 위해 기업은 Terraform 또는 Ansible과 같은 코드형 인프라 도구를 사용할 수 있습니다. 이러한 IaC 툴은 민첩한 개발, 지속적인 통합, 지속적인 제공 및 DevOps 관행을 지원할 뿐 아니라 클라우드 인프라 구성요소의 수동 프로비저닝과 같은 장애물도 제거합니다. IaC는 모듈 방식이므로 각 코드를 분할하거나 결합하여 여러 배포 사용 사례를 충족할 수 있으므로 전체 소프트웨어 개발 수명 주기를 더 효율적으로 수행할 수 있습니다.
구조
온프레미스 데이터베이스를 OCI(Oracle Cloud Infrastructure)로 마이그레이션하는 것 외에도 환경을 최적화하여 최상의 성능, 고가용성 및 최저 비용을 확보해야 합니다.
여러 클라우드 지역에 워크로드를 배포하려는 경우 Oracle Cloud Infrastructure Resource Manager가 도움이 될 수 있습니다. 클라우드 또는 온프레미스 환경에 대해 구성된 Terraform 모듈을 사용하면 단일 클라우드 지역 또는 여러 클라우드 지역에 간편하게 리소스를 설치할 수 있습니다.
다음 다이어그램에는 아키텍처가 설명되어 있습니다.
iac-oci-orm-deployment-oracle.zip
이 구조에는 다음과 같은 구성 요소가 있습니다.
- 테넌트
테넌시는 Oracle Cloud Infrastructure에 등록할 때 Oracle이 Oracle Cloud 내에서 설정하는 안전하고 격리된 파티션입니다. 테넌시 내 Oracle Cloud에서 리소스를 생성, 구성 및 관리할 수 있습니다. 테넌시는 회사 또는 조직과 동의어입니다. 일반적으로 한 회사는 단일 테넌시를 가지며 해당 테넌시 내에 조직 구조를 반영합니다. 일반적으로 단일 테넌시는 단일 구독과 연결되며, 단일 구독은 하나의 테넌시만 갖습니다.
- 지역
Oracle Cloud Infrastructure 지역은 가용성 도메인이라고 하는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며 거리가 멀면 국가 또는 대륙을 가로질러 분리할 수 있습니다.
- IAM(ID 및 액세스 관리)
Oracle Cloud Infrastructure Identity and Access Management(IAM)는 Oracle Cloud Infrastructure(OCI) 및 Oracle Cloud Applications의 액세스 제어 플레인입니다. IAM API 및 사용자 인터페이스를 통해 ID 도메인과 ID 도메인 내의 리소스를 관리할 수 있습니다. 각 OCI IAM ID 도메인은 독립형 ID 및 액세스 관리 솔루션 또는 다른 사용자 모집단을 나타냅니다.
- 정책
Oracle Cloud Infrastructure Identity and Access Management 정책은 어떤 리소스에 접근할 수 있는지와 방법을 지정합니다. 액세스는 그룹 및 구획 레벨에서 부여됩니다. 즉, 특정 구획 내에서 또는 테넌시에 특정 유형의 액세스 권한을 그룹에 부여하는 정책을 작성할 수 있습니다.
- 로깅로깅은 클라우드의 리소스에서 다음 유형의 로그에 대한 액세스를 제공하는 확장성이 뛰어난 완전 관리형 서비스입니다.
- 감사 로그: 감사 서비스에서 내보낸 이벤트와 관련된 로그입니다.
- 서비스 로그: API 게이트웨이, 이벤트, 함수, 로드 밸런싱, 오브젝트 스토리지, VCN 플로우 로그 등의 개별 서비스에서 내보낸 로그입니다.
- 사용자정의 로그: 사용자정의 애플리케이션, 기타 클라우드 제공자 또는 온프레미스 환경의 진단 정보를 포함하는 로그입니다.
- 통지
Oracle Cloud Infrastructure Notifications 서비스는 게시-구독 패턴을 통해 분산된 구성요소로 메시지를 브로드캐스트하며, Oracle Cloud Infrastructure에서 호스트된 애플리케이션에 대해 안전하고 신뢰성이 높으며 대기 시간, 지속 가능한 메시지를 제공합니다.
- 레지스트리
Oracle Cloud Infrastructure Registry는 개발에서 운영 워크플로우를 간소화할 수 있는 Oracle 관리 레지스트리입니다. 레지스트리를 사용하면 Docker 이미지와 같은 개발 아티팩트를 쉽게 저장, 공유 및 관리할 수 있습니다. Oracle Cloud Infrastructure의 가용성과 확장성이 뛰어난 아키텍처는 애플리케이션을 안정적으로 배포하고 관리할 수 있도록 보장합니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 지역에서 설정한 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN은 네트워크 환경을 완벽하게 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 여러 CIDR 블록이 있을 수 있습니다. VCN을 서브넷으로 세그먼트할 수 있으며, 지역 또는 가용성 도메인으로 범위를 지정할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속된 주소 범위로 구성됩니다. 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- 보안 목록
각 서브넷에 대해 서브넷에 들어오고 나가야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.
- 경로 테이블
가상 라우팅 테이블에는 일반적으로 게이트웨이를 통해 서브넷에서 VCN 외부의 대상으로 트래픽을 라우팅하는 규칙이 포함됩니다.
- DRG(Dynamic routing gateway)
DRG는 VCN과 지역 외부 네트워크(예: 다른 Oracle Cloud Infrastructure 지역 내 VCN, 온프레미스 네트워크 또는 다른 클라우드 제공업체의 네트워크) 간 동일한 지역의 VCN 간 전용 네트워크 트래픽 경로를 제공하는 가상 라우터입니다.
- NAT(Network Address Translation) 게이트웨이
NAT 게이트웨이를 사용하면 VCN의 전용 리소스가 수신 인터넷 연결에 이러한 리소스를 노출시키지 않고 인터넷의 호스트에 접근할 수 있습니다.
- 서비스 게이트웨이
서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 접근을 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.
- 계산
Oracle Cloud Infrastructure Compute 서비스를 사용하면 클라우드에서 컴퓨트 호스트를 프로비전하고 관리할 수 있습니다. CPU, 메모리, 네트워크 대역폭 및 스토리지에 대한 리소스 요구사항을 충족하는 구성으로 컴퓨트 인스턴스를 실행할 수 있습니다. 컴퓨트 인스턴스를 생성하면 안전하게 액세스하고, 재시작하며, 볼륨을 연결 및 분리하고, 더 이상 필요하지 않을 때 종료할 수 있습니다.
- 객체 스토리지
오브젝트 스토리지를 사용하면 데이터베이스 백업, 애널리틱스 데이터, 이미지 및 비디오와 같은 풍부한 컨텐츠를 비롯하여 모든 컨텐츠 유형의 구조적 및 비구조적 데이터에 신속하게 접근할 수 있습니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 또는 서비스 신뢰성의 저하를 경험하지 않고도 스토리지를 원활하게 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하고 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.
- 개발 운영
Oracle Cloud Infrastructure DevOps는 개발자가 소프트웨어 개발 수명 주기를 단순화하고 자동화할 수 있는 완전한 CI/CD(지속적 통합/지속적 제공) 플랫폼입니다. OCI DevOps를 통해 개발자와 운영자는 소프트웨어를 공동으로 개발, 구축, 테스트 및 배포할 수 있습니다. 개발자와 운영자는 빌드, 테스트 및 배포 단계를 통한 소스 커밋 이력으로 전체 개발 수명 주기에 대한 가시성을 확보합니다.
