다음을 통해 공유


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.가 포함되어 livenessProbereadinessProbe있는지 확인합니다. 자세한 내용은 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).

  • 재해 복구 계획 테스트: 주요 오류 시나리오를 사용하여 정기적으로 재해 복구 계획을 만들고 테스트합니다. 자세한 내용은 백업 및 재해 복구 테스트를 참조 하세요.