Oracle Cloud Infrastructure상의 ASP.Net 애플리케이션 배포

ASP.Net은 로 최신 웹 앱 및 서비스를 구축하기 위해 Microsoft에서 만든 오픈 소스 웹 프레임워크입니다.순 이 프레임워크를 사용하여 Oracle Cloud Infrastructure에서 ASP.Net 애플리케이션에 대한 자동화된 배포 파이프라인을 빠르게 설정할 수 있습니다. 이 참조 아키텍처는 간단한 ASP.Net 응용 프로그램을 보여 주며 이를 설정하기 위한 scaffolding을 제공합니다.

구조

이 아키텍처에서는 여러 장애 도메인에 ASP.Net 응용 프로그램을 배포하고 있습니다. 이 아키텍처는 애플리케이션 인스턴스에 대한 공용 서브넷과 데이터베이스 계층의 전용 서브넷이 있는 VCN(가상 클라우드 네트워크)을 사용합니다. 공용 서브넷에 배치된 로드 밸런서는 노드 전체에 트래픽을 분산합니다.

Oracle Cloud Infrastructure의 유연한 로드 밸런서를 활용하고, 사용자정의 최소 대역폭과 선택적 최대 대역폭을 선택할 수 있습니다. 둘 다 10 Mbps와 8,000 Mbps 사이여야 합니다. 최소 대역폭은 항상 사용할 수 있으며 워크로드에 즉시 준비할 수 있습니다. 수신 트래픽 패턴을 기반으로 사용 가능한 대역폭은 트래픽이 증가할 때 최소값부터 확장됩니다.

가상 머신에 배포되는 애플리케이션의 경우 고객은 유연한 VM 인스턴스를 활용할 수 있습니다. CPU와 메모리를 추가하여 유연성이 뛰어난 VM으로 용량(분)을 늘리거나 줄일 수 있습니다. 유연한 VM은 1~64코어, 코어당 1~64GB 메모리, 인스턴스당 최대 1024GB까지 구성할 수 있습니다.

Microsoft SQL 데이터베이스는 고가용성을 제공하기 위해 두 장애 도메인에 분산된 기본 및 대기 데이터베이스와 함께 배포됩니다.

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

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

이 구조에는 다음 구성요소가 있습니다.
  • 영역

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

  • 가용성 도메인

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

  • 결함 도메인

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

  • 구획

    구획은 OCI 테넌시 내에서 지역 간 논리적 분할 영역입니다. 구획을 통해 Oracle Cloud에서 리소스를 구성하고, 리소스에 대한 액세스를 제어하고, 사용 할당량을 설정할 수 있습니다. 지정된 구획의 리소스에 대한 액세스를 제어하려면 리소스에 액세스할 수 있는 사람과 수행할 수 있는 작업을 지정하는 정책을 정의합니다. 가상 클라우드 네트워크

  • (VCN) 및 서브넷

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

  • 보안 목록

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

  • 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드의 여러 서버로 자동화된 트래픽 분배를 제공합니다. 인터넷 게이트웨이 인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 사이의 트래픽을 허용합니다.

  • 블록 볼륨

    블록 스토리지 볼륨을 사용하여 스토리지 볼륨 생성, 연결, 연결 및 이동하고 스토리지, 성능 및 애플리케이션 요구 사항에 맞게 볼륨 성능을 변경할 수 있습니다. 볼륨을 인스턴스에 연결하고 연결한 후 일반 하드 드라이브처럼 볼륨을 사용할 수 있습니다. 또한 데이터 손실 없이 볼륨 연결을 해제하고 다른 인스턴스에 연결할 수 있습니다.

  • 웹 서버 - IIS

    Windows® Server용 인터넷 정보 서비스(IIS)는 호스팅을 위한 웹 서버입니다.네트 응용 프로그램.

  • Github 작업 및 실행기Comment

    GitHub 작업은 ASP.NET 응용 프로그램을 Windows 서버에 대한 구축 및 배치를 자동화하는 데 사용됩니다. GitHub 작업은 소프트웨어 개발 수명 주기 내에서 작업을 자동화하는 데 도움이 되며, 러너는 GitHub 작업 작업이 실행되는 시스템입니다. 러너는 사용 가능한 작업을 수신하고, 한 번에 하나씩 실행하며, 진행 상황, 로그 및 결과를 GitHub에 보고합니다.

    Runners는 GitHub에서 관리되는 서비스로 제공되거나, 전용 이미지 또는 컨테이너, 더욱 강력한 시스템 또는 Arm과 같은 여러 아키텍처를 지원하거나 자신의 환경에 대한 유연성 및 제어가 필요한 경우 자체 관리가 가능합니다. 동일한 프로세스 또는 명령을 모든 빌드 및 배치 시스템에서 실행하여 유사한 결과를 얻을 수 있습니다. 이 예에서는 저장소에 대한 커밋 또는 풀 요청에 의해 빌드가 트리거됩니다. 워크플로우가 트리거되면 응용 프로그램이 작성됩니다. 내장 이진은 패키지형이며 terraform이 시작되어 기반 구조를 업데이트하고 응용 프로그램을 배치합니다. Oracle Cloud Infrastructure API 키는 GitHub 암호로 관리됩니다.

권장사항

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

    Oracle에서 제공하는 기본 레시피를 복제하고 사용자정의하여 사용자정의 감지기 및 응답기 레시피를 생성합니다. 이러한 레시피를 사용하면 경고를 생성하는 보안 위반 유형과 수행할 수 있는 작업을 지정할 수 있습니다. 예를 들어 오브젝트 스토리지 버킷은 가시성을 공용으로 설정할 수 있습니다.

    테넌시 레벨에서 Cloud Guard를 적용하여 가장 광범위한 범위를 다루고 여러 구성을 유지 관리하는 관리 부담을 줄일 수 있습니다.

    관리 목록 기능을 사용하여 특정 구성을 감지기에 적용할 수도 있습니다.

  • 보안 영역

    최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle 정의 보안 정책의 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 생성 및 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 정책을 위반하는 작업을 거부합니다.

  • VCN

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

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

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

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

    지역별 서브넷 사용.

  • 보안 목록

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

고려 사항

이 참조 아키텍처를 배포할 때는 다음 사항을 고려하십시오.

  • 보안

    악의적인 공격으로부터 응용 프로그램을 보안하려면 웹 응용 프로그램 방화벽을 추가하는 것이 좋습니다.

  • Application availability

    장애 도메인은 단일 가용성 도메인 내에서 최적의 복원성을 제공합니다. 또한 여러 장애 도메인에서 동일한 작업을 수행하는 컴퓨트 인스턴스를 배포하면 중복성이 제공되고 단일 오류 지점이 발생하지 않습니다.

  • 비용

    애플리케이션에 필요한 코어, 메모리, 네트워크 대역폭을 기반으로 VM 구성을 선택합니다. 서버에 대한 2코어 구성으로 시작할 수 있습니다. 노드에 더 많은 성능, 메모리 또는 네트워크 대역폭이 필요한 경우 나중에 VM 구성을 변경할 수 있습니다.

  • CI/CD

    자체 호스팅된 Github 작업 러너를 OCI에 배포하고 Github 저장소, 조직 또는 엔터프라이즈에 추가할 수 있습니다. GitHub 작업 자체 호스트된 러너 및 지원되는 플랫폼 및 아키텍처에 대한 자세한 내용은 GitHub 문서의 "자체 러너 호스팅"을 참조하십시오(이 문서의 링크에 대한 자세한 내용은 더 알아보기 토픽 참조).

배치

이 참조 아키텍처에 대한 Terraform 코드는 Oracle Cloud Infrastructure Resource Manager에서 샘플 스택으로 사용할 수 있습니다. 또한 GitHub에서 코드를 다운로드하여 특정 요구 사항에 맞게 사용자 정의할 수 있습니다.

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

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

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

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

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