OCI Kubernetes Engine을 사용하여 자동 크기 조정 바이러스 스캐너 배포
Oracle Cloud Infrastructure Object Storage의 파일이 바이러스, 악성 코드, 신원 도용 및 사기를 감지하고 방지하기 위해 바이러스를 검사하는지 확인합니다. 바이러스 검사 프로그램을 구현하면 Oracle Cloud Infrastructure(OCI) 솔루션에 들어가는 모든 파일이 안전하고 안전하게 보호됩니다.
구조
이 아키텍처는 OCI Object Storage에 업로드된 파일을 스캔하기 위한 바이러스 검사 프로그램을 생성합니다. 바이러스 스캐너는 Oracle Cloud Infrastructure Kubernetes Engine에 배포되며, Kubernetes 기반 이벤트 기반 자동 스케일링을 사용하여 바이러스 검사 작업을 관리합니다.
바이러스 검사 작업은 단일 파일 및 zip 파일을 스캔하도록 구성됩니다. 생성된 오브젝트 스토리지 버킷에 여러 파일이 업로드되면 OCI 이벤트 및 OCI 대기열을 사용하여 OCI Kubernetes Engine(OKE)에서 바이러스 검사 작업이 실행됩니다(기본적으로 최대 3개의 작업이 동시에 실행되지만, 이는 Kubernetes 기반 이벤트 기반 자동 스케일링 구성을 사용하여 변경할 수 있습니다). 스캔 후 스캔 결과(클린 또는 감염됨)에 따라 파일이 오브젝트 스토리지 버킷으로 이동됩니다. 스캔할 파일이 없는 경우 Kubernetes 기반 이벤트 기반 자동 스케일링은 풀 2의 노드를 0으로 스케일 다운합니다. 스캔 시 Kubernetes 기반 이벤트 기반 자동 스케일링은 노드를 확장합니다.
바이러스 스캐너는 Trellix의 무료 평가판 uvscan
이라는 타사 제품을 사용합니다. 애플리케이션 코드는 대부분 NodeJS에 작성되며 JS용 Oracle Cloud Infrastructure SDK를 사용합니다.
다음 다이어그램에는 이 아키텍처가 설명되어 있습니다.
oke-antivirus-architecture.zip
구조에는 다음과 같은 구성 요소가 있습니다.
- 지역
Oracle Cloud Infrastructure 리전은 가용성 도메인이라고 하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).
- 가용성 도메인
가용성 도메인은 한 지역 내의 독립형 독립 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인의 장애가 해당 영역의 다른 가용성 도메인에 영향을 미치지 않아야 합니다.
- 결함 도메인
장애 도메인은 가용성 도메인 내 하드웨어 및 인프라 그룹입니다. 가용성 도메인에는 독립적인 전원 및 하드웨어를 갖춘 3개의 장애 도메인이 있습니다. 여러 결함 도메인에 리소스를 분배할 때 응용 프로그램은 결함 도메인 내의 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 지역에서 설정한 맞춤형 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN을 통해 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷 생성 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- 인터넷 게이트웨이
인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.
- DRG(동적 경로 지정 게이트웨이)
DRG는 VCN과 지역 외부 네트워크(예: 다른 Oracle Cloud Infrastructure 지역의 VCN, 온프레미스 네트워크 또는 다른 클라우드 공급자의 네트워크) 간에 동일한 지역의 VCN 간 전용(private) 네트워크 트래픽에 필요한 경로를 제공하는 가상 라우터입니다.
- NAT(Network Address Translation) 게이트웨이
NAT 게이트웨이를 사용하면 VCN의 전용 리소스가 수신 인터넷 연결에 이러한 리소스를 노출시키지 않고 인터넷의 호스트에 액세스할 수 있습니다.
- 로드 밸런서
Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드에 있는 여러 서버로 트래픽을 자동으로 배포합니다.
- 오브젝트 스토리지
오브젝트 스토리지를 사용하면 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 컨텐츠 등 모든 컨텐츠 유형의 대량의 구조적 데이터와 비구조적 데이터에 빠르게 액세스할 수 있습니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하고 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 또는 서비스 안정성이 저하되지 않고 스토리지를 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하고 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.
- 모니터링
Oracle Cloud Infrastructure Monitoring 서비스는 측정지표를 사용하여 클라우드 리소스를 능동적이고 수동적으로 모니터링하여 리소스 및 알람을 모니터링하고 이러한 측정지표가 알람이 지정된 트리거를 충족할 때 알림을 보냅니다.
- 로깅로깅은 클라우드의 리소스에서 다음 유형의 로그에 액세스할 수 있는 확장성이 뛰어난 완전 관리형 서비스입니다.
- 감사 로그: 감사 서비스에서 내보낸 이벤트와 관련된 로그입니다.
- 서비스 로그: API 게이트웨이, 이벤트, 함수, 로드 밸런싱, 오브젝트 스토리지, VCN 플로우 로그와 같은 개별 서비스에서 내보낸 로그입니다.
- 사용자 정의 로그: 사용자 정의 응용 프로그램, 다른 클라우드 공급자 또는 온프레미스 환경의 진단 정보를 포함하는 로그입니다.
- 함수
Oracle Cloud Infrastructure Functions는 확장성이 뛰어난 완전 관리형 멀티테넌트 온디맨드 Functions-as-a-Service(FaaS) 플랫폼입니다. 그것은 Fn 프로젝트 오픈 소스 엔진에 의해 구동 됩니다. 함수를 사용하면 코드를 배치하고 직접 호출하거나 이벤트에 대한 응답으로 트리거할 수 있습니다. Oracle Functions는 Oracle Cloud Infrastructure Registry에서 호스팅되는 Docker 컨테이너를 사용합니다.
- Queue
Oracle Cloud Infrastructure Queue는 메시지를 처리하는 동시에 최소 1회 처리, 추적 및 클라이언트 격리 보장과 같은 복잡한 관리 작업을 처리할 수 있는 확장 가능한 시스템을 제공합니다. 또한 이 중앙 집중식 서비스는 Stateless 클라이언트 프로세스가 커서 추적을 오프로드할 수 있도록 메시지 순서 지정 및 처리 상태를 관리합니다.
- 이벤트
Oracle Cloud Infrastructure 서비스는 리소스 변경사항을 설명하는 구조화된 메시지인 이벤트를 내보냅니다. 이벤트는 CRUD(생성, 읽기, 업데이트 또는 삭제) 작업, 리소스 수명 주기 상태 변경 및 클라우드 리소스에 영향을 주는 시스템 이벤트를 위해 내보냅니다.
- 레지스트리
Oracle Cloud Infrastructure Registry는 개발-운영 워크플로우를 간소화할 수 있는 Oracle 관리 레지스트리입니다. 레지스트리를 사용하면 Docker 이미지와 같은 개발 아티팩트를 쉽게 저장, 공유 및 관리할 수 있습니다. Oracle Cloud Infrastructure의 가용성과 확장성이 뛰어난 아키텍처는 애플리케이션을 안정적으로 배포하고 관리할 수 있도록 보장합니다.
배치
바이러스 검사 프로그램을 배포하는 코드는 GitHub에서 확인할 수 있습니다.
- GitHub로 이동합니다.
- 저장소를 복제하거나 로컬 컴퓨터에 다운로드합니다.
README
문서의 지침을 따릅니다.