Azure Container Apps에 대한 관리 및 작업 - 랜딩 존 가속기
장기적인 상태 및 안정성을 위해 앱을 디자인하고 기본 파악하는 데 사용할 수 있는 Azure Container Apps의 기능과 서비스를 검토합니다.
Container Apps 제한을 이해합니다.
네트워크, 컴퓨팅, 모니터 또는 데이터 수준에서 워크로드를 격리하는 것이 좋습니다.
워크로드별 리소스 소비를 제어하는 방법을 이해합니다.
상태 프로브를 사용하여 악화되는 애플리케이션 상태를 보고하고 복구할 수 있습니다.
Dapr을 사용하여 외부 서비스에 대한 보안 연결을 설정합니다.
로깅 및 모니터링을 사용하여 애플리케이션과 관련된 모든 문제에 대한 인사이트를 제공합니다.
중요한 애플리케이션 및 시스템 이벤트 중에 경고를 사용하여 운영 직원이 애플리케이션 오류 발생 시 신속한 조치를 취할 수 있도록 합니다.
사용하지 않는 용량을 최소화하면서 애플리케이션에 대한 트래픽을 처리할 수 있는 충분한 용량을 보장하기 위한 크기 조정 전략을 정의합니다. 크기 조정 트리거에는 KEDA 지원 스케일러와 함께 CPU 또는 메모리 사용량이 포함됩니다.
Azure Container Apps에서 이를 네트워크 프록시로 사용하므로 Envoy에 대해 잘 알고 있어야 합니다.
비즈니스 연속성 및 재해 복구에 대한 RTO(복구 시간 목표) 및 RPO(복구 지점 목표) 요구 사항을 알고 있어야 합니다. 인프라 및 애플리케이션에 대한 SLA(서비스 수준 계약)를 정의합니다. Azure Container Apps용 SLA에 대해 알아봅니다. 월별 가동 시간 계산에 대한 정보는 SLA 세부 정보 섹션을 참조하세요.
애플리케이션에 대한 특정 요구 사항에 따라 기본 Azure 플랫폼에 문제가 있는 경우 고가용성 측정값을 사용하여 지속적인 작업을 보장해야 할 수 있습니다. Azure에서 다양한 영역 및 지역을 통해 고가용성을 위한 솔루션을 빌드할 수 있습니다.
가용성 영역 Azure 데이터 센터 디자인의 오류 격리 구문입니다. 각 영역에는 자체 전원, 네트워크 및 냉각이 있으므로 영역 간에 중단이 확산되는 가능성을 최소화할 수 있습니다. 가용성 영역 사용하려면 각 Azure 리소스를 특정 영역("영역") 또는 모든 영역("영역 중복")에 배포할 수 있습니다.
다중 지역 솔루션은 가장 높은 수준의 오류 격리 및 가장 높은 안정성을 제공하지만 지리적 지역 간의 대기 시간이 높기 때문에 구현하기가 더 어려운 경우가 많습니다. 이 대기 시간으로 인해 데이터 복제본(replica) 지연이 발생할 수 있습니다. 다중 지역 디자인에 대한 자세한 내용은 Azure 중요 업무용 설명서를 참조 하세요.
Azure DevOps 및 GitHub를 사용하여 개발, 빌드 및 배포 프로세스를 관리하는 자동화된 방법을 제공하는 것이 좋습니다.
권장 사항
환경별 격리: 전체 리소스 격리를 위한 고유한 Container Apps 환경을 만듭니다. 수정 버전을 사용하여 테넌트별 컨테이너 앱을 만들지 않습니다. 자세한 내용은 다중 테넌트 솔루션의 Azure Container Apps를 참조 하세요.
리소스 계산 제한 사용: 컨테이너 CPU 및 메모리 리소스 요청 제한을 사용하여 환경 내에서 컴퓨팅 및 메모리 리소스를 관리합니다. 컨테이너 기본 제한은 컴퓨팅 및 메모리에 대해 각각 2개 vCPU 및 4GiB입니다.
상태 프로브 사용: 컨테이너 앱에 상태 프로브를 추가합니다. 수정 버전에 , 및
startupProbe
.가 포함되어livenessProbe
readinessProbe
있는지 확인합니다. 자세한 내용은 Azure Container Apps 상태 프로브를 참조 하세요.상태 프로브를 올바르게 구성합니다. 상태 프로브는 엔드포인트에 대한 호출을 담당하며 시스템이 정상 상태인 경우 일반적으로 HTTP 2xx 범위에서 성공 상태 코드를 받을 것으로 예상합니다. 이 엔드포인트는 시스템 상태뿐만 아니라 데이터베이스, 스토리지 및 메시징 서비스와 같은 중요한 다운스트림 구성 요소의 상태에 대해서도 검사 수행하는 것이 좋습니다. 연속적인 상태 검사 방지하려면 짧은 기간 동안 다운스트림 상태 응답의 캐싱을 구현하는 것이 중요합니다.
광범위하게 로그: Log Analytics 쿼리를 만들어 경고, 오류 및 중요한 메시지를 찾습니다.
애플리케이션 로그는 컨테이너 콘솔 출력(
stdout
/stderr
) 메시지에 의해 생성됩니다. Dapr을 사용하도록 설정하면 콘솔 출력에 애플리케이션 컨테이너와 Dapr 사이드카 메시지가 모두 포함됩니다. 로그 분석을 사용하여 로그를 쿼리하는 방법에 대한 자세한 내용은 로그 모니터링을 검토하세요.시스템 로그는 Azure Container Apps에서 생성됩니다.
시각적 추적 사용: Dapr을 사용하도록 설정하면 ACA 환경 수준에서 'DaprAIInstrumentationKey'를 구성하여 Azure 애플리케이션 Insights 애플리케이션 맵에서 분산 추적 컨테이너 앱을 시각화합니다.
Application Insights SDK 사용: 애플리케이션 데이터에 Application Insights SDK를 자동 계측 에이전트로 사용하는 것은 아직 지원되지 않습니다.
가용성 영역 사용: 고가용성이 필요한 경우 모든 리소스에서 가용성 영역 사용합니다. Container Apps가 영역 중복일 뿐만 아니라 데이터베이스, 스토리지 및 메시징 서비스와 같은 요청을 수행하는 데 필요한 인접한 서비스인지 확인합니다.
분산 복제본(replica) 사용: DR(재해 복구)을 위해 둘 이상의 Azure 지역에서 애플리케이션 데이터 및 소스 코드를 사용할 수 있는지 확인합니다. 예를 들어 Azure Storage 계정은 지역 복제본(replica)ted 스토리지를 허용하고 Azure SQL Database는 읽기 복제본(replica) 다른 지역에 배치할 수 있도록 허용합니다.
빌드 자동화: 엔드 투 엔드 자동화를 사용하여 Azure Container Apps 애플리케이션을 빌드하고 배포합니다.
컨테이너 레지스트리 사용: Azure Container Registry에 컨테이너 이미지를 저장하고 레지스트리를 각 ACA 지역에 지역 복제본(replica).
재해 복구 계획 테스트: 주요 오류 시나리오를 사용하여 정기적으로 재해 복구 계획을 만들고 테스트합니다. 자세한 내용은 백업 및 재해 복구 테스트를 참조 하세요.