0Pricing
Cloud & IT Cert Prep · 강의

상태 프로브와 우아한 성능 저하

부하 분산 장치와 Traffic Manager의 상태 프로브를 구성해 장애를 신속하게 감지하고, 애플리케이션 계층을 위한 회로 차단기 및 우아한 성능 저하 패턴을 설계합니다.

상태 프로브와 우아한 성능 저하은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

상태 프로브가 필수적인 이유

상태 프로브는 부하 분산 장치와 트래픽 관리자가 백엔드 인스턴스가 요청을 처리할 수 있는지 감지하는 메커니즘입니다. 상태 프로브가 없으면 부하 분산 장치가 장애가 발생했거나 응답하지 않는 서버로 계속 트래픽을 보내 사용자에게 오류가 발생할 수 있습니다. 상태 프로브를 올바르게 구성하면 장애 발생 후 몇 초 이내에 비정상 인스턴스를 피해 트래픽을 자동으로 재라우팅할 수 있습니다.

Azure Load Balancer 상태 프로브

Azure Load Balancer는 두 가지 유형의 상태 프로브를 지원합니다.

  • TCP 프로브 — 백엔드가 지정된 포트에서 TCP 연결을 수락할 수 있는지 확인합니다. 간단하지만 애플리케이션 로직은 검증하지 않습니다.
  • HTTP/HTTPS 프로브 — 지정된 경로로 GET 요청을 보내고 200 OK 응답을 예상합니다. 애플리케이션 엔드포인트를 직접 테스트하므로 더 정확합니다.

구성 가능한 횟수만큼 연속으로 시도했는데 프로브가 실패하면 백엔드는 비정상으로 표시됩니다.

# Create an HTTP health probe for an Azure Load Balancer:
az network lb probe create \
  --resource-group myRG \
  --lb-name myLoadBalancer \
  --name httpHealthProbe \
  --protocol Http \
  --port 80 \
  --path /health \
  --interval 15 \
  --threshold 2

신뢰할 수 있는 상태 엔드포인트 설계

잘 설계된 상태 엔드포인트(/health)는 200 OK를 반환하는 것 이상을 수행하며 애플리케이션의 중요한 종속성에 연결할 수 있는지도 확인합니다. 종합적인 상태 확인에서는 데이터베이스, 캐시 및 다운스트림 API에 대한 연결을 테스트할 수 있습니다. 종속성 중 하나라도 사용할 수 없으면 엔드포인트가 5xx 상태 코드를 반환하여 부하 분산 장치에 이 인스턴스를 순환 대상에서 제거하라는 신호를 보냅니다.

# Example health endpoint response (JSON):
# GET /health
# {
#   'status': 'healthy',
#   'checks': {
#     'database': 'ok',
#     'cache': 'ok',
#     'externalApi': 'ok'
#   }
# }
# If database check fails, return HTTP 503 instead of 200

Traffic Manager 상태 프로브

Azure Traffic Manager도 상태 프로브를 사용하지만 지역 수준에서 작동합니다. 각 지역에서 구성된 엔드포인트 URL로 주기적인 HTTP 또는 HTTPS GET 요청을 보냅니다. 엔드포인트가 정해진 횟수만큼 연속된 간격 동안 시간 제한 기간 내에 응답하지 않으면 Traffic Manager는 해당 엔드포인트를 성능 저하 상태로 표시하고 해당 엔드포인트로 DNS 쿼리를 라우팅하지 않습니다. 대신 사용자를 정상 지역으로 리디렉션합니다.

# Configure Traffic Manager health probe settings:
az network traffic-manager profile update \
  --resource-group myRG \
  --name myTMProfile \
  --monitor-protocol HTTPS \
  --monitor-port 443 \
  --monitor-path /health \
  --monitor-interval 30 \
  --monitor-timeout 10 \
  --monitor-tolerated-failures 3

Application Gateway 상태 프로브

Azure Application Gateway는 Standard Load Balancer보다 더 정교한 상태 프로브 기능을 제공합니다. 사용자 지정 프로브를 지원하므로 호스트 헤더, 예상 상태 코드 범위(예: 200-399), 본문 일치 문자열을 지정할 수 있습니다. Application Gateway는 경로별 라우팅도 지원하므로 서로 다른 백엔드 풀에 URL 경로별로 서로 다른 상태 프로브 구성을 적용할 수 있습니다.

# Create a custom probe for Application Gateway:
az network application-gateway probe create \
  --gateway-name myAppGateway \
  --resource-group myRG \
  --name customProbe \
  --protocol Http \
  --host-name-from-http-settings true \
  --path /api/health \
  --interval 20 \
  --timeout 10 \
  --threshold 3

정상적인 기능 저하란 무엇인가요

정상적인 기능 저하란 하나 이상의 종속성에 장애가 발생해도 애플리케이션이 일부 기능을 계속 제공하는 능력입니다. 애플리케이션은 완전히 중단되는 대신 중요하지 않은 서비스의 사용 불가 상태를 감지하고, 기능은 제한되지만 여전히 유용한 상태로 대체합니다. 예를 들어 추천 서비스에 장애가 발생하면 전자 상거래 사이트는 상품 페이지 전체를 중단하는 대신 일반적인 추천 항목을 표시할 수 있습니다.

회로 차단기 패턴

회로 차단기 패턴은 장애가 발생한 하위 서비스를 애플리케이션이 반복해서 호출하지 않도록 방지합니다. 서비스에 장애가 발생하기 시작하면 회로 차단기가 열린 상태가 되어 네트워크 호출을 수행하지 않고 즉시 오류 또는 대체 응답을 반환합니다. 일정한 대기 시간이 지나면 반열림 상태로 전환되어 시험 요청을 허용합니다. 이 요청이 성공하면 회로가 닫히고 정상적인 작업이 재개됩니다.

# Circuit breaker states:
# CLOSED: normal operation, calls pass through
# OPEN:   service failing, calls immediately return error/fallback
# HALF-OPEN: cool-down expired, try one request:
#           success -> CLOSED
#           failure -> OPEN (reset timer)

# Libraries: Polly (.NET), Resilience4j (Java), polly-js (JS)

지수 백오프를 적용한 재시도

일시적인 장애(잠깐 발생하는 네트워크 문제, 일시적인 서비스 과부하)에는 지수 백오프를 적용한 재시도 전략이 적합합니다. 애플리케이션은 지연 시간 후 실패한 호출을 다시 시도하며, 재시도할 때마다 최대 한도까지 지연 시간을 두 배로 늘립니다. 지연 시간에 jitter(무작위 변동)를 추가하면 모든 재시도 시도가 동시에 실행되어 복구 중인 서비스에 과부하를 일으키는 것을 방지할 수 있습니다.

# Exponential backoff with jitter (pseudocode):
# attempt 1: wait 1s  + random(0-500ms)
# attempt 2: wait 2s  + random(0-500ms)
# attempt 3: wait 4s  + random(0-500ms)
# attempt 4: wait 8s  + random(0-500ms)
# max retries: 4
# max wait: 30s (cap)
# After max retries: return error to caller

격벽 패턴

격벽 패턴은 애플리케이션의 서로 다른 부분을 리소스 풀로 격리하여 한 영역의 장애가 모든 리소스를 소모하고 전체 시스템을 중단시키지 않도록 합니다. 한 구획에 물이 차도 선박 전체가 침몰하지 않도록 하는 선박의 격벽에서 이름을 따왔습니다. Azure에서는 장애를 특정 범위 안에 가두기 위해 서비스별로 별도의 스레드 풀이나 별도의 App Service 계획을 사용하는 방식이 될 수 있습니다.

대체 응답 및 캐시된 데이터

일반적인 정상적 성능 저하 처리 기법은 실시간 데이터 원본을 사용할 수 없을 때 캐시된 데이터 또는 오래된 데이터를 제공하는 것입니다. 예를 들어 데이터베이스에 일시적으로 연결할 수 없을 때 제품 카탈로그 페이지에서 오류를 표시하는 대신 Azure Cache for Redis에 저장된 어제의 캐시 가격을 제공할 수 있습니다. 사용자는 완전한 장애 대신 약간 불편한 상황(조금 오래된 가격)을 겪게 됩니다.

성능 저하 모니터링 및 경고

정상적 성능 저하는 확인하고 측정할 수 있어야 합니다. Application Insights를 사용하여 회로 차단기가 열린 횟수, 대체 응답 및 재시도 시도 횟수를 사용자 지정 메트릭으로 추적합니다. 이러한 메트릭이 임계값을 초과할 때 경고가 발생하도록 설정하면, 사용자에게 보이는 경험이 괜찮아 보이더라도 애플리케이션이 성능 저하 상태로 실행 중임을 담당 팀에 알릴 수 있습니다.

빠른 확인

이 수업에서 다룬 Microsoft Azure Fundamentals (AZ-900) 개념에 대한 이해도를 확인해 보세요.

수업 요약

이 수업에서는 다음을 배웠습니다. 상태 프로브를 사용하면 부하 분산 장치가 장애가 발생한 백엔드를 감지하고 트래픽을 자동으로 다른 곳으로 전달할 수 있습니다. 정상적 성능 저하 처리를 사용하면 종속성에 장애가 발생해도 애플리케이션을 부분적으로 계속 사용할 수 있습니다. 또한 회로 차단기, 백오프를 적용한 재시도, 격벽과 같은 패턴은 애플리케이션 수준에서 복원력을 구현합니다. 다음에서는 RTO, RPO 및 복구 계층을 정의하는 재해 복구 개념을 살펴봅니다.

자주 묻는 질문

“상태 프로브와 우아한 성능 저하” 강의는 무료인가요?

네 — “상태 프로브와 우아한 성능 저하” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“상태 프로브와 우아한 성능 저하”에서 뭘 배우나요?

부하 분산 장치와 Traffic Manager의 상태 프로브를 구성해 장애를 신속하게 감지하고, 애플리케이션 계층을 위한 회로 차단기 및 우아한 성능 저하 패턴을 설계합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“상태 프로브와 우아한 성능 저하” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Azure SLA와 복합 SLA
  2. 가용성 집합과 가용성 영역
  3. 다중 지역 활성-활성 아키텍처
  4. 상태 프로브와 우아한 성능 저하
← Cloud & IT Cert Prep(으)로 돌아가기