OCI 컨테이너 인스턴스를 사용하여 컨테이너화된 애플리케이션의 관리를 간소화합니다.
컨테이너화된 응용 프로그램을 실행하려면 가상 머신 인스턴스화, 컨테이너 이미지를 실행할 구성 요소 설치, 소프트웨어 및 운영 체제 업데이트를 포함하는 모든 종속성, 응용 프로그램이 실행되는 동안 최적의 상태로 실행되고 사용 가능하며 손상되지 않았는지 모니터링 등 상당한 오버헤드가 필요할 수 있습니다.
컨테이너 인스턴스는 전담 관리되는 OCI(Oracle Cloud Infrastructure) 컴퓨트 서비스로, 고객이 서버를 관리하지 않고도 컨테이너화된 애플리케이션을 실행할 수 있습니다. 이는 서버리스 환경을 제공하여 고객이 인프라를 배포 및 관리하는 대신 애플리케이션에 가치를 추가하는 데 집중할 수 있도록 합니다.
또는 컨테이너 인스턴스 없이 컨테이너화된 애플리케이션을 실행하려면 고객이 컨테이너 이미지를 실행하기 위해 가상 머신을 인스턴스화하고 모든 구성요소를 설치해야 합니다. 여기에는 Docker 또는 Podman과 같은 컨테이너 런타임과 이를 지원하는 모든 종속성이 포함됩니다. 또한 고객은 최신 보안 패치를 설치하고 올바른 보안 설정을 적용하여 가상 시스템을 보호해야 합니다. 소프트웨어 및 운영 체제에 대한 새로운 업데이트가 도입되면서 업데이트 및 패치를 일관되게 적용해야 합니다. 응용 프로그램이 실행 중인 경우 응용 프로그램이 최적으로 실행되고 사용 가능하며 손상되지 않았는지 확인하기 위해 모니터링을 수행해야 합니다.
고객은 컨테이너 인스턴스를 사용하여 애플리케이션의 컨테이너 이미지를 생성한 후 이를 컨테이너 레지스트리에 저장하기만 하면 됩니다. 그런 다음 컨테이너화된 애플리케이션을 CLI 명령으로 컨테이너 인스턴스를 사용하거나 OCI 콘솔의 안내식 GUI 마법사를 사용하여 배포할 수 있습니다.
- 컨테이너 인스턴스 매개변수 정의: 고객이 컨테이너 인스턴스와 가용성 도메인 및 장애 도메인(선택사항)을 실행할 OCI 영역을 정의합니다. 다음으로 고객이 컨테이너 인스턴스에 대한 컴퓨트 구성을 선택합니다. 각 인스턴스에 대해 선택한 컴퓨트 구성의 CPU 및 메모리에 할당할 수 있습니다. 예를 들어 AMD E3/E4 구성을 선택한 경우 컨테이너 인스턴스에 OCPU 64개(vCPU 128개) 및 1024GB 메모리가 포함될 수 있습니다. 다음으로, 컨테이너 인스턴스에 공용 IP 주소가 필요한지 여부와 함께 선택적 고급 네트워크 구성과 함께 컨테이너 인스턴스에 대한 서브넷과 같은 네트워크 설정을 추가합니다. 이 단계에서는 전용 DNS 레코드 및 호스트 이름을 지정할 수도 있습니다. 이 경우 컨테이너 인스턴스에 대한 정규화된 도메인 이름이 생성됩니다. 컨테이너 재시작 정책을 설정하는 고급 옵션도 있습니다.
- 응용 프로그램에 대한 실행 구성을 지정합니다. 이 단계에서는 실행할 컨테이너 이미지의 위치를 컨테이너 이미지에 필요한 환경 변수와 함께 지정합니다. 이미지는 Oracle Cloud Infrastructure Registry 또는 컨테이너 인스턴스에 IP 연결이 있는 공용 또는 전용 Open Container Initiative 호환 레지스트리에 있을 수 있습니다. 전용 레지스트리의 경우 컨테이너 이미지에 액세스하려면 인증서를 제공해야 합니다.
- 검토 및 생성: 마지막 단계는 모든 구성을 검토하는 것입니다. 모든 구성이 정확하면 생성을 계속할 수 있으며 컨테이너 인스턴스가 몇 초 내에 실행됩니다.
고객은 일반 Oracle Cloud Infrastructure Compute와 같은 요율로 인스턴스에 할당되는 CPU 및 메모리 리소스에 대해서만 비용이 청구됩니다. 컨테이너 인스턴스는 간단한 경험과 원활한 운영, 서버 미사용 경험에 추가 비용 없이 클라우드에서 컨테이너를 실행하기 위한 최고의 가치를 제공합니다. 또한 고객은 표준 데이터베이스 연결 메커니즘을 사용하여 MySQL 서비스 및 Oracle Autonomous Database와 같은 다른 OCI 서비스와 컨테이너 인스턴스를 통합할 수 있으므로 컨테이너화된 애플리케이션에 대해 다른 OCI 서비스를 손쉽게 활용할 수 있습니다.
구조
이 구조는 컨테이너 인스턴스를 사용하여 통합된 MySQL 데이터베이스와 함께 컨테이너화된 WordPress 애플리케이션을 배치합니다. 컨테이너 인스턴스는 인터넷에서 접근할 수 있는 공용 IP 주소를 사용하여 공용 서브넷에 배포됩니다.
컨테이너 인스턴스는 컨테이너 통합관리가 필요하지 않은 독립형 애플리케이션을 위해 설계되었습니다. 여기에는 API, 웹 앱, CI/CD 작업, 자동화 작업, 데이터 및 미디어 처리, 개발 및 테스트 환경 등이 포함됩니다. 조정이 필요한 컨테이너화된 애플리케이션의 경우 OCI는 가상 노드와 함께 서버리스 옵션을 사용하는 매니지드 Kubernetes 서비스인 Oracle Container Engine for Kubernetes(OKE)를 제공합니다.
각 컨테이너 인스턴스는 여러 컨테이너를 실행할 수 있습니다. 컨테이너 인스턴스의 모든 컨테이너가 동일한 라이프사이클, 리소스, 네트워크 및 스토리지를 공유합니다. 컨테이너 인스턴스의 컨테이너는 기본 애플리케이션 컨테이너와 보조 Sidecar 컨테이너를 지원하는 Kubernetes의 POD와 동일한 개념을 갖습니다. 사이드카 컨테이너는 주 애플리케이션 컨테이너의 기능을 강화하거나 확장하기 위해 있습니다. 예를 들어, 기본 웹 응용 프로그램이 있는 컨테이너 인스턴스와 웹 응용 프로그램 로그를 로깅 서버로 내보내는 sidecar 컨테이너가 있습니다.
참고:
응용 프로그램 컨테이너와 함께 데이터베이스 컨테이너를 실행하는 것은 개발 및 테스트에만 적합합니다. 운용 배치 시 Oracle MySQL Database Service 사용을 고려합니다.이 참조 아키텍처에 컨테이너 인스턴스와 통합된 데이터베이스와 함께 WordPress를 배포할 것입니다. 다음 비디오는 프로세스를 진행합니다.
다음 다이어그램은 이 참조 구조를 보여 줍니다.
oci-container-instance-wordpress-oracle.zip
구조에는 다음과 같은 구성 요소가 있습니다.
- 테넌시
테넌시는 Oracle Cloud Infrastructure에 등록할 때 Oracle이 Oracle Cloud 내에서 설정하는 안전하고 격리된 파티션입니다. 테넌시 내 Oracle Cloud에서 리소스를 생성, 구성 및 관리할 수 있습니다. 테넌시는 회사 또는 조직과 동의어입니다. 일반적으로 회사는 단일 테넌시를 가지며 해당 테넌시 내의 조직 구조를 반영합니다. 단일 테넌시는 일반적으로 단일 구독과 연관되며, 단일 구독에는 일반적으로 하나의 테넌시만 포함됩니다.
- 지역
Oracle Cloud Infrastructure 지역은 가용성 도메인이라고 하는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 방대한 거리로 이들을 분리할 수 있습니다(국가 또는 대륙 간).
- 구획
구획은 Oracle Cloud Infrastructure 테넌시 내의 지역 간 논리적 파티션입니다. 구획을 사용하여 Oracle Cloud에서 리소스를 구성하고, 리소스에 대한 액세스를 제어하고, 사용 할당량을 설정합니다. 제공된 구획의 리소스에 대한 액세스를 제어하려면 리소스에 액세스할 수 있는 사용자 및 수행할 수 있는 작업을 지정하는 정책을 정의합니다.
- 가용성 도메인
가용성 도메인은 한 지역 내의 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 내결함성을 제공하는 다른 가용성 도메인의 리소스와 분리됩니다. 가용성 도메인은 전원, 냉각 등의 인프라 또는 내부 가용성 도메인 네트워크를 공유하지 않으므로 따라서 특정 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다.
- 결함 도메인
장애 도메인은 한 가용성 도메인 내 하드웨어와 인프라의 그룹입니다. 각 가용성 도메인은 3개의 장애 도메인과 독립적인 전원 및 하드웨어를 제공합니다. 여러 장애 도메인에 리소스를 분산하면 애플리케이션은 장애 도메인 내에서 물리적 서버 장애, 시스템 유지보수 및 전원 장애를 허용할 수 있습니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 영역에서 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN은 네트워크 환경에 대한 완벽한 제어를 제공합니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 여러 CIDR 블록이 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- 보안 목록
각 서브넷에 대해 서브넷에 들어오고 나가야 하는 트래픽의 소스, 대상, 유형을 지정하는 보안 규칙을 생성할 수 있습니다.
- NAT(네트워크 주소 변환) 게이트웨이
NAT 게이트웨이를 사용하면 VCN의 전용 리소스가 수신 인터넷 연결에 리소스를 노출하지 않고도 인터넷의 호스트에 접근할 수 있습니다.
- 서비스 게이트웨이
서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스에 대한 접근을 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 경유하지 않습니다.
- 컨테이너 레지스트리
운용 워크플로우 개발을 간소화할 수 있는 Oracle 관리 레지스트리입니다.
권장 사항
- VCN
VCN을 생성할 때 VCN의 서브넷에 연결할 리소스의 수에 따라 필요한 CIDR 블록 수 및 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.
전용 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.
VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.
서브넷을 설계할 때는 트래픽 플로우와 보안 요구사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계로 사용할 수 있는 동일한 서브넷에 연결합니다.
- 보안
Oracle Cloud Guard를 사용하여 Oracle Cloud Infrastructure의 리소스 보안을 사전 모니터링하고 유지보수합니다. Cloud Guard는 정의 가능한 감지기 레시피를 사용하여 보안 취약점에 대한 리소스를 검사하고 운영자와 사용자가 위험한 작업을 모니터합니다. 잘못된 구성 또는 비보안 작업이 감지되면 Cloud Guard는 수정 조치를 권장하고 사용자가 정의할 수 있는 응답기 레시피를 기반으로 이러한 작업을 수행할 수 있도록 지원합니다.
최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle 정의 보안 정책 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없으며 고객 관리 키를 사용하여 암호화되어야 합니다. 보안 영역에서 리소스를 생성 및 업데이트하면 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 모든 정책을 위반하는 작업을 거부합니다.
- Cloud Guard
Oracle에서 제공하는 기본 레시피를 복제하고 사용자정의하여 사용자정의 감지기 및 응답기 레시피를 생성합니다. 이러한 레시피를 사용하면 경고를 생성하는 보안 위반 유형과 이에 대해 수행할 수 있는 작업을 지정할 수 있습니다. 예를 들어 가시성이 공용으로 설정된 오브젝트 스토리지 버킷을 감지할 수 있습니다.
테넌시 레벨에서 Cloud Guard를 적용하여 가장 광범위한 범위를 포괄하고 다중 구성 유지 관리에 대한 관리 부담을 줄입니다.
관리 목록 기능을 사용하여 감지기에 특정 구성을 적용할 수도 있습니다.
- 보안 영역
최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle 정의 보안 정책 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없으며 고객 관리 키를 사용하여 암호화되어야 합니다. 보안 영역에서 리소스를 생성하고 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 모든 정책을 위반하는 작업을 거부합니다.
- NSG(네트워크 보안 그룹)
NSG를 사용하여 특정 VNIC에 적용되는 일련의 수신 및 송신 규칙을 정의할 수 있습니다. NSG를 사용하면서 VCN 서브넷 아키텍처를 애플리케이션의 보안 요구사항과 분리할 수 있으므로 보안 목록이 아닌 NSG를 사용하는 것이 좋습니다.
- 로드 밸런서 대역폭
로드 밸런서를 생성하는 동안 고정 대역폭을 제공하는 사전 정의된 구성을 선택하거나, 대역폭 범위를 설정하는 커스터마이징(가변형) 구성을 지정하고 서비스에서 트래픽 패턴을 기반으로 대역폭을 자동으로 확장할 수 있습니다. 어느 접근 방식이든 로드 밸런서를 생성한 후에는 언제든지 구성을 변경할 수 있습니다.