Azure Container Apps 샌드박스는 코드를 실행하기 위한 격리된 환경을 제공합니다. 각 샌드박스는 1초 이내에 시작되고 일시 중단 시 메모리 내 상태를 유지할 수 있는 간단한 microVM(가상 머신)에서 실행됩니다. 이 서비스는 사용자가 구성한 기능과 플랫폼이 사용자를 대신하여 관리하는 기능을 통해 샌드박스 워크로드의 안정성을 지원합니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 일시적인 오류, 가용성 영역 오류, 지역 전체 오류 및 서비스 유지 관리에 대해 Container Apps 샌드박스를 복원력 있게 만드는 방법을 설명합니다. 또한 백업 및 복원 옵션과 SLA(서비스 수준 계약)에 대한 주요 정보를 설명합니다.
안정성을 위한 프로덕션 배포 권장 사항
프로덕션 워크로드의 경우 다음을 수행하는 것이 좋습니다.
샌드박스 메모리 외부에 지속성 데이터를 저장하고 복구 목표와 일치하는 스토리지 중복 옵션을 선택합니다. 샌드박스가 중지되면 유지해야 하는 데이터에 샌드박스 볼륨을 사용합니다. 지역 전체 오류에 대한 복원력을 위해 데이터를 다른 지역에 복제하는 외부 데이터 저장소를 사용합니다.
Azure Blob Storage 사용하는 경우 GRS(지역 중복 스토리지)는 데이터를 쌍을 이루는 지역에 복제합니다. 쌍을 이루지 않는 지역의 경우 별도의 스토리지 계정을 배포하고 블록 블롭에 대한 개체 복제와 같은 지원되는 복제 방법을 구성합니다. 자세한 내용은 Azure Blob Storage용 사용자 지정 다중 지역 솔루션을 참조하세요.
단일 지역 배포에서 가동 시간 대상을 충족할 수 없는 경우 여러 지역에 별도의 샌드박스 그룹을 배포합니다. 자세한 내용은 지역 전체 오류에 대한 복원력을 참조하세요.
안정성 아키텍처 개요
이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.
논리 아키텍처
Azure Container Apps 앱, 작업, 동적 세션 및 샌드박스에 대한 고유한 컴퓨팅 옵션을 제공합니다. 샌드박스 그룹에는 Container Apps 환경이 필요하지 않습니다. 다른 Container Apps 구성 요소의 안정성에 대한 자세한 내용은 Azure Container Apps 안정성을 참조하세요.
Container Apps 샌드박스의 주요 리소스는 다음과 같습니다.
샌드박스 그룹:샌드박스 그룹은 샌드박스 의 최상위 지역 관리 경계이며 리소스 종류를 사용합니다
Microsoft.App/sandboxGroups. 모든 샌드박스, 디스크 이미지, 스냅샷, 볼륨 및 중요한 구성 값(비밀)은 샌드박스 그룹으로 범위가 지정됩니다.샌드박스: 각 샌드박스 는 디스크 이미지 또는 스냅샷에서 실행되고 자체 CPU, 메모리, 로컬 디스크 및 네트워크 경계가 있는 가볍고 격리된 microVM입니다.
디스크 이미지는 샌드박스 루트 파일 시스템으로 사용하기 위해 변환된 OCI(Open Container Initiative) 컨테이너 이미지입니다.
스냅샷은 원본 샌드박스와 독립적으로 유지되는 샌드박스의 전체 상태를 지정하는 시점 캡처입니다.
샌드박스의 상태는 실행 중이거나 중지될 수 있습니다. 샌드박스가 자동으로 또는 요청에 따라 중지되면 컴퓨팅 리소스를 해제합니다. 메모리 모드 는 샌드박스의 전체 메모리 이미지와 로컬 디스크를 유지합니다. 디스크 모드 는 로컬 디스크만 유지하므로 샌드박스를 다시 시작할 때 microVM 및 해당 프로세스가 다시 시작됩니다.
볼륨: 로컬 디스크는 개별 샌드박스에 속합니다. 샌드박스 볼륨 은 개별 샌드박스와 독립적으로 존재하는 영구 스토리지를 제공합니다. Azure Blob Storage 볼륨을 동시에 여러 샌드박스에 탑재할 수 있지만 Azure Disk Storage 지원되는 데이터 디스크 볼륨은 한 번에 하나의 샌드박스에만 탑재할 수 있습니다. 백업 스토리지 서비스는 볼륨 데이터의 내구성 및 복구 옵션을 결정합니다.
샌드박스 아키텍처 및 리소스에 대한 자세한 내용은 Azure Container Apps 샌드박스 개요를 참조하세요.
물리적 아키텍처
샌드박스는 Microsoft 작동하는 여러 독립 컴퓨팅 클러스터에서 실행됩니다. 배포하는 샌드박스 그룹, 샌드박스 및 기타 리소스를 구성할 책임이 있습니다. Microsoft 클러스터 배포, 구성, 용량 관리, 상태 모니터링 및 유지 관리를 담당합니다. 클러스터를 선택, 배포, 구성 또는 관리하지 않습니다. 이 서비스는 새 샌드박스를 할당하고, 중지된 샌드박스를 정상 상태의 클러스터에서 다시 시작하며, 비정상 상태의 클러스터를 우회하도록 배치를 라우팅합니다.
Microsoft 서비스 구성, 샌드박스 메타데이터 및 디스크 이미지 및 스냅샷과 같은 아티팩트를 위해 중복 상태 저장소를 유지 관리합니다.
일시적인 오류에 대한 복원력
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 일시적 결함 처리를 위한 권장 사항을 참조하세요.
Container Apps 샌드박스를 사용하는 경우 솔루션의 다음 부분에서 일시적인 오류를 고려합니다.
샌드박스 관리 작업: 자동화에서 샌드박스 그룹, 샌드박스 또는 관련 리소스를 관리하는 경우 일시적인 오류로 인해 실패한 요청을 다시 시도하고 지수 백오프를 사용합니다. 재시도 횟수를 제한하고 반복하기에 안전한 작업만 다시 시도합니다.
샌드박스에서 실행되는 코드: 외부 API, 데이터베이스 및 기타 서비스에 대한 호출에 대한 일시적인 오류 처리를 구현합니다. 다시 시도 동작 및 반복에 안전한 작업은 서비스에 따라 다르므로 각 종속성에 대한 재시도 지침을 따릅니다.
가용성 영역 오류에 대한 복원력
Container Apps 샌드박스는 샌드박스 그룹에 대한 특정 가용성 영역 또는 영역 중복성에 대한 배포를 지원하지 않습니다. 가용성 영역 오류에 대한 워크로드 복원력을 유지하려면 여러 지역에 별도의 샌드박스 그룹을 배포합니다. 자세한 내용은 지역 전체 오류에 대한 복원력을 참조하세요.
지역 전체 오류에 대한 복원력
Container Apps 샌드박스는 단일 지역 서비스입니다. 해당 지역을 사용할 수 없게 되면 샌드박스 그룹과 그 안에 포함된 샌드박스도 사용할 수 없게 됩니다. 이 서비스는 지역 간에 샌드박스 그룹 또는 샌드박스를 복제하지 않고, 다른 지역으로 자동 장애 조치되지도 않습니다. 그러나 여러 지역에 별도의 샌드박스 그룹을 배포할 수 있습니다. 각 지역에서 종속 항목을 사용할 수 있도록 하고 워크로드 분산 및 장애 조치를 관리할 책임이 있습니다. 자세한 내용은 복원성을 위한 맞춤형 다중 리전 솔루션을 참조하세요.
지역 전체에서 오류가 발생하는 동안 실행 중인 샌드박스의 메모리에만 보관된 상태가 손실될 수 있습니다. 영향을 받는 지역의 샌드박스 그룹, 샌드박스 및 서비스 관리 아티팩트에서는 지역이 복구될 때까지 사용할 수 없습니다.
샌드박스 볼륨은 개별 샌드박스의 수명 주기를 초과하여 지속되는 스토리지를 제공합니다. 지역 전체 실패 시 볼륨 가용성 및 복구는 백업 스토리지 서비스 및 해당 구성에 따라 달라집니다. Container Apps 샌드박스는 볼륨 데이터에 대해 지역 간 복제 또는 장애 조치를 제공하지 않습니다. 대신 백업 스토리지 서비스는 구성 시 이러한 기능을 제공합니다. 예를 들어 Azure Blob Storage 볼륨에 대한 자세한 내용은 Azure Blob Storage 안정성을 참조하세요.
회복력을 위한 사용자 지정 다중 리전 솔루션
Azure Container Apps 샌드박스는 다중 리소스 배포를 조정하거나 지역 간에 샌드박스 그룹, 샌드박스 또는 관련 리소스를 복제하지 않습니다. 사용자 지정 다중 리전 솔루션을 만들려면 다음과 같은 책임이 있습니다.
지역 배포 및 종속성: 사용하려는 각 지역에 별도의 샌드박스 그룹을 배포합니다. 각 지역에서 사용할 수 있는 구성, 디스크 이미지, 비밀 및 기타 종속성을 유지합니다.
오류 검색 및 워크로드 복구: 지역을 사용할 수 없는 시기를 감지하고, 새 샌드박스 만들기 및 워크로드 처리를 정상 지역으로 전달하고, 중단된 작업을 다시 시작하는 방법을 결정하도록 애플리케이션 또는 오케스트레이션 계층을 구성합니다.
트래픽 라우팅: 클라이언트가 애플리케이션에서 노출하는 지역별 엔드포인트를 통해 연결하는 경우 Azure Front Door 또는 Azure Traffic Manager 같은 전역 부하 분산 서비스를 사용하여 트래픽을 정상 엔드포인트로 라우팅합니다.
데이터 복제 및 복구: 지역 간 복제 및 복구를 지원하는 외부 데이터 저장소에 장애 조치(failover) 후 필요한 상태를 저장합니다. 백업 스토리지 서비스가 볼륨 데이터에 대한 지역 간 복제를 제공하는 경우 해당 서비스는 복제 및 장애 조치(failover) 동작을 결정합니다. Azure Container Apps 샌드박스는 지역 간에 볼륨 데이터를 복제하거나 장애 조치하지 않습니다.
백업 및 복원
샌드박스 메모리 또는 로컬 디스크를 유일한 지속성 데이터 저장소로 사용하지 마세요. 샌드박스를 일시 중단하면 로컬 디스크와 메모리 모드에서 해당 메모리 상태가 유지됩니다. 원본 샌드박스와 독립적으로 유지되는 스냅샷을 만들 수도 있습니다. 일시 중단된 상태 및 스냅샷은 지역 샌드박스 그룹으로 범위가 유지되며 지역 간 백업이 아닙니다.
개별 샌드박스의 수명 주기를 초과하여 유지해야 하는 데이터에 샌드박스 볼륨을 사용합니다. 백업 스토리지 서비스 및 해당 구성은 볼륨 데이터의 백업 및 복원 기능을 결정합니다. 관리하는 외부 데이터 저장소의 경우 내구성 및 복구 목표를 충족하도록 백업 및 지역 간 복구를 구성해야 합니다.
실수로 삭제되거나 지역 전체에서 오류가 발생한 후 샌드박스 배포를 다시 만들려면 Bicep 또는 Terraform과 같은 버전 제어 코드 기반 인프라 템플릿에 샌드박스 그룹 구성을 저장합니다. 복구 요구 사항을 충족하는 레지스트리에 원본 디스크 이미지를 유지합니다.
서비스 유지 관리에 대한 복원력
Microsoft는 정기적으로 서비스 업데이트를 적용하고 다른 유지 관리를 수행합니다. Azure 플랫폼은 이러한 활동을 자동으로 처리하여 유지 관리가 원활하고 투명하도록 합니다. 유지 관리 작업 중에 짧은 중단을 관찰할 수 있습니다. 일반적으로 이러한 중단은 몇 초 동안 지속됩니다. 클라이언트 애플리케이션이 일시적인 오류를 처리하도록 구성되어 짧은 중단에 대한 복원력이 있는지 확인합니다.
유지 관리가 실행 중인 샌드박스에 영향을 주면 플랫폼은 상태를 유지하고 정상 컴퓨팅 용량으로 이동하고 자동으로 다시 시작합니다. 메모리 모드를 사용하는 샌드박스의 경우 플랫폼은 메모리 및 로컬 디스크 상태를 유지합니다. 디스크 모드를 사용하는 샌드박스의 경우 플랫폼은 로컬 디스크 상태만 유지합니다.
서비스 수준 약정
Azure Container Apps 샌드박스는 가용성 SLA(서비스 수준 계약)를 제공하지 않습니다. 솔루션에서 사용하는 샌드박스 볼륨 및 외부 데이터 저장소를 백업하는 스토리지 서비스에는 별도의 SLA가 있을 수 있습니다. 자세한 내용은 온라인 서비스에 대한 서비스 수준 계약을 참조하세요.