컨테이너용 Azure Application Gateway는 Kubernetes에서 실행되는 워크로드에 대한 관리되는 애플리케이션 계층(계층 7) 부하 분산 및 동적 트래픽 관리 서비스입니다. 들어오는 요청을 클러스터의 백 엔드 대상으로 라우팅합니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 Azure Application Gateway for Containers가 일시적인 오류, 가용성 영역 오류, 지역 전체 오류 및 서비스 유지 관리를 처리하는 방법을 설명합니다. 또한 백업 및 복원 옵션과 SLA(서비스 수준 계약)에 대한 주요 정보를 설명합니다.
안정성을 위한 프로덕션 배포 권장 사항
컨테이너용 Application Gateway는 기본적으로 고가용성입니다. 프로덕션 워크로드의 경우:
영역 중복성을 위해 가용성 영역을 지원하는 지역에 컨테이너용 Application Gateway를 배포합니다. 서비스는 해당 지역에서 자동으로 영역 중복을 지원합니다.
영역 복원력을 위해 Kubernetes 클러스터, Kubernetes 리소스 및 백 엔드 워크로드를 구성합니다. 지침은 가용성 영역 장애에 대한 복원력을 참조하세요.
지역 전체 오류에 대한 복원력을 위해 각 지역에 Application Gateway for Containers 및 해당 종속 워크로드를 배포하고 지역 간 트래픽 관리를 구성합니다. 지침은 복원력을 위한 사용자 지정 다중 리전 솔루션을 참조하세요.
연결 서브넷에서 NSG(네트워크 보안 그룹) 또는 UDR(사용자 정의 경로)을 구성하는 경우 NSG 지침 및 사용자 정의 경로 지침을 따릅니다.
토폴로지, 트래픽 흐름, 안정성, 보안 및 작업에 대한 예제 아키텍처 및 지침은 Azure Kubernetes Service 컨테이너용 Application Gateway 배포를 참조하세요.
안정성 아키텍처 개요
이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.
논리 아키텍처
컨테이너용 Application Gateway 배포에는 Azure 및 Kubernetes 클러스터의 리소스가 포함됩니다.
- Azure 리소스:컨트롤 플레인은 구성에 따라 게이트웨이의 프록시 구성을 오케스트레이션합니다. Azure 관리되는 데이터 평면은 클러스터 외부에서 실행되고 애플리케이션 트래픽을 처리합니다.
- Kubernetes 리소스: Kubernetes 리소스를 사용하여 라우팅 및 기타 구성을 정의합니다. ALB 컨트롤러는 클러스터에서 실행되고, 해당 리소스를 감시하며, Azure Application Gateway for Containers에 구성을 전파합니다.
두 가지 배포 전략 중에서 선택할 수 있습니다. BYO(Bring Your Own) 전략을 사용하면 Azure 도구를 통해 Application Gateway for Containers, 연결 및 프런트 엔드 리소스의 수명 주기를 관리합니다. ALB Controller가 관리하는 전략을 사용하면 ALB Controller는 사용자가 정의한 Kubernetes 리소스를 기반으로 해당 Azure 리소스의 수명 주기를 관리합니다.
구성 요소에 대한 전체 설명은 Application Gateway for Containers 구성 요소를 참조하세요.
컨테이너용 Application Gateway를 배포하고 구성한 후 들어오는 요청을 Kubernetes 내에서 실행되는 애플리케이션을 나타내는 백 엔드 대상으로 라우팅합니다.
ALB 컨트롤러 또는 컨트롤 플레인을 사용할 수 없는 경우 데이터 플레인은 마지막으로 성공적으로 적용된 구성을 사용하여 트래픽을 계속 처리합니다. 가동 중단 중에는 구성 업데이트가 전파되지 않으며, 서비스는 스케일 아웃 이벤트에 필요한 구성을 설정할 수 없습니다.
물리적 아키텍처
Azure는 애플리케이션 트래픽에 따라 데이터 평면 인프라를 관리하고 자동으로 크기 조정합니다. 컨테이너용 Application Gateway는 항상 고가용성 구성으로 배포됩니다. 가용성 영역을 지원하는 지역에서 게이트웨이는 영역 중복으로 구성됩니다. 가용성 영역을 지원하지 않는 지역에서 Azure는 가용성 집합을 사용합니다.
일시적인 오류에 대한 복원력
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 일시적 결함 처리를 위한 권장 사항을 참조하세요.
컨테이너용 Application Gateway를 사용하는 경우 다음 모범 사례를 고려합니다.
다시 시도 논리를 구현합니다. 일시적인 연결 실패 후 요청을 다시 시도하도록 클라이언트를 구성합니다.
허용 오차를 사용하여 상태 프로브를 구성합니다. 사용자 지정 상태 프로브를 구성하는 경우 일시적인 오류를 허용하도록 비정상 임계값 을 설정합니다. 비정상 임계값은 백 엔드 대상이 비정상으로 표시되도록 트리거하는 연속 실패 프로브 수를 지정합니다. 기본 상태 프로브는 세 프로브의 비정상 임계값을 사용하므로 단일 임시 프로브 오류가 백 엔드를 비정상으로 표시하지 않도록 방지합니다.
가용성 영역 오류에 대한 복원력
가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.
가용성 영역을 지원하는 Azure 지역에 컨테이너용 Application Gateway를 배포하는 경우 Microsoft는 컨트롤 플레인과 데이터 플레인을 여러 영역에 걸쳐 영역 중복 지원으로 자동 구성합니다. 서비스가 사용할 영역을 사용자가 선택하는 것은 아닙니다.
Important
Microsoft 컨테이너용 Application Gateway 컨트롤 플레인 및 데이터 평면에 대한 영역 중복성을 관리합니다. 엔드투엔드 영역 복원력을 달성하려면 여러 영역에서 정상 상태의 대상을 제공하도록 Kubernetes 클러스터, Kubernetes 리소스 및 백엔드 워크로드를 구성하세요.
Requirements
지역 지원: 영역 중복성을 사용하려면 컨테이너용 Application Gateway와 가용성 영역을 모두 지원하는 지역을 선택합니다. Application Gateway for Containers 지역별 사용 가능 여부를 확인하고 가용성 영역을 지원하는 지역 목록과 비교합니다.
Considerations
Kubernetes 플랫폼과의 공유 책임: 가용성 영역 장애 시 Application Gateway for Containers에 대한 트래픽 리디렉션을 Microsoft가 관리합니다. AKS(Azure Kubernetes Service)의 경우 Microsoft는 Kubernetes 컨트롤 플레인을 관리합니다. 사용자는 클러스터의 노드 풀 및 관리하는 기타 리소스에 대한 영역 복원력을 구성하고, 영역 중단 시 애플리케이션의 동작을 담당합니다.
클러스터: 가용성 영역에 걸쳐 있도록 관리하는 AKS 노드 풀 및 기타 영역 바인딩 클러스터 리소스를 구성합니다. AKS는 컨트롤 플레인을 관리합니다. AKS 노드 풀에 대한 가용성 영역 구성을 참조하세요.
워크로드: 여러 Pod 복제본을 배포하고, 영역에 분산하고, 영역 중단 시 트래픽을 처리할 수 있는 정상 백엔드 워크로드를 보장해야 합니다. 가용성 영역, 토폴로지 확산 제약 조건 및 Pod 안티 어피니티에 걸쳐 있는 노드 풀을 사용할 수 있습니다.
Kubernetes 구성 개체: 컨테이너용 Application Gateway는 클러스터 API에 의해 저장된 Kubernetes 구성 개체를 사용합니다. 해당 가용성은 Kubernetes 컨트롤 플레인 및 클러스터에서 관리하는 구성에 따라 달라집니다.
ALB 컨트롤러: 구성을 조정하도록 Kubernetes 클러스터에 ALB 컨트롤러를 배포합니다. 컨테이너용 Application Gateway 데이터 경로의 일부가 아닙니다.
ALB 컨트롤러는 두 개의 복제본을 실행하며, 하나는 리더 역할을 하고 다른 하나는 보조 역할을 합니다. 리더를 사용할 수 없게 되면 보조는 리더가 되어 구성을 계속 전파할 수 있습니다. 두 복제본은 클러스터가 이를 스케줄링하는 방법에 따라 동일한 가용성 영역에서 실행될 수 있습니다. 영역 복원력을 위해 클러스터 및 컨트롤러 Pod를 구성할 책임이 있습니다. Pod 토폴로지 확산 제약 조건 또는 Pod 안티-어피니티를 사용하여 여러 영역에 복제본을 분산합니다. 자세한 내용은 AKS 노드 풀에 대한 가용성 영역 구성을 참조하세요.
Cost
Application Gateway for Containers에 대한 가용성 영역 지원은 표준 서비스 가격 책정 이외의 추가 요금이 발생하지 않습니다. 가격 책정에 대한 자세한 내용은 Azure Application Gateway 가격 책정을 참조하세요.
가용성 영역 지원 구성
지원되는 지역에 새 게이트웨이를 배포하는 경우 기본적으로 영역 중복으로 구성됩니다. Azure 리소스에서 영역 중복을 사용하도록 설정할 필요가 없습니다.
영역 복원력을 위해 Kubernetes 클러스터, ALB 컨트롤러 및 백 엔드 워크로드를 구성할 책임이 있습니다.
모든 영역이 정상인 경우의 동작
이 섹션에서는 가용성 영역을 지원하는 지역에 컨테이너용 Application Gateway를 배포하고 서비스에서 사용하는 모든 영역이 작동할 때 예상되는 사항에 대해 설명합니다.
영역 간 운영: Azure에서 관리되는 Application Gateway for Containers 데이터 평면은 들어오는 요청을 여러 영역의 인프라에 분산합니다.
여러 영역에서 실행되도록 백 엔드 워크로드를 구성하고 해당 트래픽을 수신하는 정상 대상을 제공해야 합니다.
영역 간 데이터 복제: 컨테이너용 Application Gateway는 애플리케이션 데이터를 저장하지 않습니다. 플랫폼은 영역 중복 컨트롤 플레인을 통해 구성 상태를 관리하여 내구성과 복원력을 제공합니다.
영역 오류 중 동작
이 섹션에서는 가용성 영역을 지원하는 지역에 Application Gateway for Containers를 배포하고 서비스에서 사용하는 영역 중 하나에 가동 중단이 발생할 때 예상되는 사항에 대해 설명합니다.
감지 및 대응: 컨테이너용 Application Gateway는 영역 중단 시 나머지 정상 영역의 인프라로 트래픽을 리디렉션합니다. 게이트웨이의 트래픽 재배포에 대한 조치를 취할 필요가 없습니다.
그러나 귀하는 Kubernetes 클러스터 및 백엔드 애플리케이션에 대한 중단으로 인한 영향을 담당합니다.
- 통지: 영역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 영역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
활성 요청: 실패한 존에 대한 기존 연결이 끊어집니다. 클라이언트는 일시적 장애에 대한 복원력의 지침에 따라 요청을 다시 시도해야 합니다. 나머지 정상 영역의 인프라에 대한 새 연결이 설정됩니다.
예상 데이터 손실: 컨테이너용 Application Gateway는 애플리케이션 데이터를 저장하지 않습니다. 플랫폼은 영역 중복 컨트롤 플레인을 통해 구성 상태를 관리하여 내구성과 복원력을 제공합니다.
예상 가동 중지 시간: 실패한 영역에 대한 연결이 끊어지면 클라이언트에서 잠시 연결 중단을 경험할 수 있습니다. 클라이언트는 나머지 정상 영역의 인프라에 대한 새 연결을 설정하기 위한 요청을 다시 시도해야 합니다.
Azure 관리형 컨트롤 플레인은 단일 영역 중단 시에도 계속 사용할 수 있습니다. 그러나 구성 업데이트를 적용하는 기능은 Kubernetes 컨트롤 플레인 및 ALB 컨트롤러의 가용성에 따라 달라집니다.
재배포: 컨테이너용 Application Gateway는 트래픽을 나머지 정상 영역의 인프라로 리디렉션합니다.
영역 복구
컨테이너용 Application Gateway는 기저 문제로부터 자동으로 복구됩니다. Azure 게이트웨이 인프라의 복구를 관리합니다.
영역 오류 테스트
Application Gateway for Containers 플랫폼은 게이트웨이 자체에 대한 영역 장애에 대한 응답 및 트래픽 라우팅을 관리합니다. 게이트웨이의 응답을 시작하거나 관리할 필요가 없습니다. 관리하는 Kubernetes 클러스터가 있는 경우 Azure Chaos Studio 사용하여 영역 오류에 대한 클러스터의 응답을 테스트할 수 있습니다. 자세한 내용은 가용성 영역 복원력 테스트를 참조하세요.
지역 전체 오류에 대한 복원력
컨테이너용 Application Gateway는 단일 지역 서비스입니다. 게이트웨이를 배포한 Azure 지역을 사용할 수 없게 되면 해당 게이트웨이를 사용할 수 없습니다.
회복력을 위한 사용자 지정 다중 리전 솔루션
컨테이너용 Application Gateway는 기본 제공 다중Region 배포 또는 장애 조치(failover) 솔루션을 제공하지 않습니다. 지역 장애에 대비하도록 설계하려면 각 지역에서 별도의 게이트웨이 및 Kubernetes 클러스터를 배포하고 구성합니다. 지역 게이트웨이와 다른 엔드포인트 간의 트래픽을 전달하고 장애 조치(failover)를 구성할 책임이 있습니다.
여러 지역에서 Application Gateway for Containers를 일관되게 구성합니다. 배포를 간소화하고 구성을 정렬된 상태로 유지하려면 Bicep 또는 Terraform과 같은 도구를 사용하여 인프라를 코드(IaC)로 정의하세요.
클라이언트를 지역 게이트웨이로 보내도록 Azure Front Door 또는 Azure Traffic Manager 같은 전역 트래픽 관리 서비스를 선택하고 구성합니다. 이러한 서비스는 다양한 라우팅 모델 및 상태 프로브 구성을 사용합니다. 선택한 서비스를 구성하여 트래픽을 사용할 수 없는 게이트웨이에서 벗어나도록 하고 설명서를 검토하여 라우팅 동작 및 장애 조치(failover) 고려 사항을 이해하세요. Azure Front Door는 DDoS(분산 서비스 거부) 보호, WAF(웹 애플리케이션 방화벽) 기능 및 규칙 기반 라우팅과 같은 기능도 제공합니다.
각 지역에 백 엔드 애플리케이션을 배포하고 가동 중단 시 정상적으로 작동하는 워크로드를 제공하도록 구성합니다. 애플리케이션이 데이터 또는 기타 Azure 서비스에 의존하는 경우 다중 지역 가용성을 위해 해당 서비스를 디자인하고 구성합니다. 각 서비스에 대한 안정성 지침을 검토하여 멀티리전 옵션 및 제한 사항을 이해합니다.
백업 및 복원
컨테이너용 Application Gateway는 애플리케이션 데이터를 저장하지 않습니다. Azure Resource Manager는 게이트웨이의 Azure 리소스 구성을 저장합니다. 해당 구성을 다시 배포하여 이러한 리소스를 다시 만들 수 있습니다.
게이트웨이를 배포하고 트래픽을 라우팅하는 방법을 정의하는 구성 및 Kubernetes 리소스를 보존해야 합니다.
Bicep 또는 Terraform과 같은 코드형 인프라(IaC)에서 Azure 리소스 및 해당 설정을 코드로 정의하고 버전 제어에 정의를 유지합니다. 이를 사용하여 게이트웨이 리소스를 다시 배포할 수 있습니다.
게이트웨이를 구성하는 Kubernetes 리소스(예:
ApplicationLoadBalancer리소스,Gateway리소스 및HTTPRoute리소스)를 백업합니다. 라우팅 구성을 다시 만들어야 하는 경우 이를 클러스터에 복원합니다.버전 제어 또는 표준 구성 백업 프로세스를 통해 사용자 지정 규칙 및 웹 애플리케이션 방화벽 정책을 비롯한 관련 구성을 보존하세요. 배포 파이프라인을 사용하여 Azure 및 Kubernetes 리소스를 일관되게 다시 만들 수 있습니다.
서비스 유지 관리에 대한 복원력
Microsoft는 서비스의 고가용성을 유지하면서 컨테이너용 Application Gateway의 유지 관리를 담당합니다.
각 연결에 대해 유지 관리 기간을 고려한 필수 최소 서브넷 크기 /24 이므로 유지 관리를 위해 추가 서브넷 IP 주소 공간을 할당할 필요가 없습니다.
자세한 내용은 컨테이너용 Application Gateway의 크기 조정 및 가용성을 참조하세요.
서비스 수준 약정
Azure 서비스에 대한 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 솔루션이 가용성 기대치를 달성하기 위해 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스에 대한 SLA를 참조하세요.
Application Gateway for Containers SLA는 컨트롤 플레인과 데이터 평면을 개별적으로 측정합니다. 두 측면 모두 전체 SLA 계산에 포함됩니다.