Resilience 퀴즈

지원 버전: Istio 1.28.0 EKS 버전: 1.34 (Kubernetes 1.28+) 마지막 업데이트: 2026년 2월 19일

이 퀴즈는 Istio의 복원력(Resilience) 기능에 대한 이해도를 테스트합니다.

객관식 문제 (1-5번)

문제 1: Outlier Detection 기본 개념

Outlier Detection의 주요 목적으로 옳지 않은 것은?

A. 비정상적으로 동작하는 인스턴스를 자동으로 감지 B. 임계값 초과 시 트래픽 풀에서 자동 제외 C. 제외된 인스턴스를 영구적으로 삭제 D. 일정 시간 후 자동으로 복구 시도

chevron-right정답 및 해설hashtag

정답: C

Outlier Detection은 인스턴스를 삭제하지 않고 트래픽 풀에서 일시적으로 제외합니다.

해설:

Outlier Detection의 작동 원리:

주요 기능:

  1. 자동 감지: 에러율, 지연시간, 응답 실패를 자동으로 모니터링

  2. 자동 제외: 임계값 초과 시 트래픽 풀에서 일시적 제외

  3. 자동 복구: baseEjectionTime 후 자동으로 복구 시도

  4. 일시적 조치: 인스턴스를 삭제하지 않고 트래픽만 차단

잘못된 선택지 C의 문제점:

  • Outlier Detection은 Circuit Breaker 패턴

  • 인스턴스를 일시적으로 제외하되 삭제하지 않음

  • 복구 시도를 통해 정상화되면 다시 트래픽 수신

참고 자료:


문제 2: Rate Limiting 유형 비교

로컬 Rate Limiting과 글로벌 Rate Limiting의 비교로 옳은 것은?

A. 로컬 Rate Limiting이 정확도가 더 높다 B. 글로벌 Rate Limiting이 성능이 더 빠르다 C. 로컬 Rate Limiting은 각 Envoy 프록시가 독립적으로 제한한다 D. 글로벌 Rate Limiting은 외부 서비스 없이 동작한다

chevron-right정답 및 해설hashtag

정답: C

로컬 Rate Limiting은 각 Envoy 프록시가 독립적으로 요청을 제한합니다.

해설:

로컬 vs 글로벌 Rate Limiting 비교:

특성
로컬 Rate Limiting
글로벌 Rate Limiting

정확도

❌ 낮음 (인스턴스별)

✅ 높음 (전체)

성능

✅ 매우 빠름

⚠️ 약간 느림

복잡도

✅ 낮음

⚠️ 높음 (외부 서비스 필요)

사용 사례

일반적인 보호

정확한 제한 필요 시

로컬 Rate Limiting의 특징:

# 각 파드당 100 req/s 제한
# 파드가 3개면 전체 300 req/s까지 허용됨
apiVersion: networking.istio.io/v1beta1
kind: EnvoyFilter
metadata:
  name: local-ratelimit
spec:
  workloadSelector:
    labels:
      app: myapp
  configPatches:
  - applyTo: HTTP_FILTER
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.filters.http.local_ratelimit
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
          stat_prefix: http_local_rate_limiter
          token_bucket:
            max_tokens: 100        # 최대 토큰 수
            tokens_per_fill: 10    # 초당 10개 추가
            fill_interval: 1s

글로벌 Rate Limiting의 특징:

# 전체 100 req/s 제한
# 파드 개수와 무관하게 100 req/s까지만 허용
# 중앙 집중식 Rate Limit 서버 필요 (예: Redis)

Token Bucket 알고리즘:

참고 자료:


문제 3: Zone Aware Routing의 이점

Zone Aware Routing을 사용할 때 얻을 수 있는 이점으로 옳지 않은 것은?

A. 같은 AZ 내 통신으로 지연시간 감소 B. 크로스 AZ 데이터 전송 비용 절감 C. 모든 트래픽을 단일 AZ로 집중하여 성능 향상 D. 장애 시 자동으로 다른 AZ로 장애조치

chevron-right정답 및 해설hashtag

정답: C

Zone Aware Routing은 트래픽을 단일 AZ에 집중하는 것이 아니라, 같은 AZ를 우선하되 가용성을 위해 분산합니다.

해설:

Zone Aware Routing의 올바른 동작:

Zone Aware Routing의 실제 이점:

  1. 지연시간 감소:

    • 같은 AZ 내 통신: ~0.5ms

    • 크로스 AZ 통신: ~1-2ms

  2. 비용 절감:

    • AWS 크로스 AZ 전송: GB당 $0.01-0.02

    • 대용량 트래픽 환경에서 월 수백~수천 달러 절감

  3. 가용성 향상:

    • 같은 AZ 파드 장애 시 자동으로 다른 AZ로 전환

    • 단일 AZ 집중은 잘못된 접근 (가용성 저하)

  4. 성능 최적화:

    • 네트워크 홉 감소

    • 대역폭 최적화

DestinationRule 설정 예시:

참고 자료:


문제 4: Outlier Detection 파라미터

다음 Outlier Detection 설정에서 인스턴스가 제외되는 조건은?

A. 5초 동안 에러 발생 시 B. 연속으로 5번 에러 발생 시 C. 30초 동안 에러율 50% 초과 시 D. 30초마다 무조건 제외

chevron-right정답 및 해설hashtag

정답: B

consecutiveErrors: 5연속으로 5번 에러가 발생하면 인스턴스를 제외합니다.

해설:

Outlier Detection 주요 파라미터:

파라미터
설명
기본값
권장값

consecutiveErrors

연속 에러 임계값

5

3-10

interval

분석 주기

10s

10s-60s

baseEjectionTime

최소 제외 시간

30s

30s-300s

maxEjectionPercent

최대 제외 비율

10%

10%-50%

파라미터 상세 설명:

consecutiveErrors

interval

baseEjectionTime

maxEjectionPercent

완전한 DestinationRule 예제:

동작 예시:

참고 자료:


문제 5: Token Bucket 알고리즘

다음 Rate Limiting 설정에서 평균 초당 처리 가능한 요청 수는?

A. 10 req/s B. 100 req/s C. 110 req/s D. 1000 req/s

chevron-right정답 및 해설hashtag

정답: A

tokens_per_fill: 10fill_interval: 1s초당 10개의 토큰이 추가되므로, 평균 10 req/s입니다.

해설:

Token Bucket 알고리즘 파라미터:

  • max_tokens: 버킷에 저장할 수 있는 최대 토큰 수 (버스트 허용량)

  • tokens_per_fill: 매 fill_interval마다 추가할 토큰 수 (평균 처리량)

  • fill_interval: 토큰 추가 주기

계산 방식:

시간에 따른 동작:

실전 설정 예시:

EnvoyFilter 완전한 예제:

참고 자료:


주관식 문제 (6-10번)

문제 6: Outlier Detection 구현

프로덕션 환경에서 실행 중인 product-service가 간헐적으로 느려지고 타임아웃이 발생합니다. Outlier Detection을 구현하여 문제있는 인스턴스를 자동으로 제외하고 싶습니다. 다음 요구사항을 만족하는 DestinationRule을 작성하세요:

요구사항:

  • 연속 3번 에러 발생 시 제외

  • 20초마다 평가

  • 제외된 인스턴스는 60초 후 복구 시도

  • 최대 30%까지만 제외 가능

  • 502, 503, 504 게이트웨이 에러도 감지

chevron-right예시 답안hashtag

답변:

해설:

1. consecutiveErrors vs consecutive5xxErrors vs consecutiveGatewayErrors

파라미터
감지 대상
사용 사례

consecutiveErrors

모든 에러 (5xx, 연결 실패 등)

일반적인 에러 감지

consecutive5xxErrors

5xx 에러만

서버 에러만 감지

consecutiveGatewayErrors

502, 503, 504만

게이트웨이 문제 감지

2. 파라미터 설명

interval: 20s

  • Outlier Detection을 20초마다 실행

  • 각 인스턴스의 에러율을 평가

baseEjectionTime: 60s

  • 제외된 인스턴스는 최소 60초 동안 트래픽 수신 안 함

  • 반복 제외 시 시간이 증가 (60s → 120s → 180s...)

maxEjectionPercent: 30

  • 동시에 최대 30%의 인스턴스만 제외 가능

  • 예: 10개 파드면 최대 3개까지만 제외

  • 가용성 보장

minHealthPercent: 70

  • 최소 70%의 인스턴스는 정상 상태 유지

  • maxEjectionPercent와 보완 관계

3. 동작 예시

4. 모니터링

5. 프로덕션 고려사항

민감한 서비스 (빠른 감지):

안정적인 서비스 (오탐 방지):

참고 자료:


문제 7: 로컬 Rate Limiting 적용

api-gateway 서비스가 DDoS 공격을 받고 있습니다. 로컬 Rate Limiting을 적용하여 각 Envoy 프록시에서 초당 50개 요청으로 제한하고, 버스트로 최대 200개까지 허용하려고 합니다. EnvoyFilter를 작성하세요.

추가 요구사항:

  • Rate limit이 적용될 때 X-RateLimit-Limit 헤더 추가

  • 429 응답 시 Retry-After: 1 헤더 포함

chevron-right예시 답안hashtag

답변:

해설:

1. Token Bucket 계산

2. 시나리오별 동작

정상 트래픽 (40 req/s):

버스트 트래픽 (순간 200 req/s):

지속적인 과부하 (100 req/s):

3. 응답 헤더 예시

정상 요청:

Rate limit 초과:

4. 경로별 Rate Limiting

더 세밀한 제어가 필요하면 경로별로 다른 제한 설정:

5. 모니터링

참고 자료:


문제 8: Zone Aware Routing 설정

AWS EKS 클러스터가 3개의 AZ (us-east-1a, us-east-1b, us-east-1c)에 분산되어 있습니다. order-service에 Zone Aware Routing을 설정하여 크로스 AZ 데이터 전송 비용을 절감하려고 합니다.

요구사항:

  • 같은 AZ 파드에 70% 트래픽 전송

  • 다른 AZ에 각각 15%씩 분산

  • AZ 전체 장애 시 다른 AZ로 자동 장애조치

  • 최소 50% 이상의 파드가 정상일 때만 Zone Aware 적용

chevron-right예시 답안hashtag

답변:

해설:

1. Kubernetes 노드 레이블 확인

AWS EKS는 자동으로 Topology 레이블을 추가합니다:

2. Locality 계층 구조

3. 트래픽 흐름 다이어그램

4. 비용 절감 계산

시나리오: 월 1TB 트래픽

Zone Aware 없음 (균등 분산):

Zone Aware 적용 (70% 같은 AZ):

대용량 환경 (월 100TB):

5. 장애조치 시나리오

정상 상태:

us-east-1a 전체 장애:

일부 파드 비정상 (Outlier Detection):

6. 모니터링

7. AWS EKS 특화 설정

EKS 노드 그룹을 AZ별로 구성:

Pod를 AZ별로 고르게 분산:

참고 자료:


문제 9: 복합 Resilience 전략

payment-service는 외부 결제 API를 호출하는 중요한 서비스입니다. 다음 복합 Resilience 전략을 구현하세요:

  1. Outlier Detection: 연속 3번 에러 시 인스턴스 제외

  2. Retry: 502, 503, 504 에러 시 최대 3번 재시도

  3. Timeout: 요청당 5초 타임아웃

  4. Circuit Breaker: 에러율 50% 초과 시 서비스 전체 차단

DestinationRule과 VirtualService를 작성하세요.

chevron-right예시 답안hashtag

답변:

해설:

1. Outlier Detection (인스턴스 수준)

연속 에러 감지:

  • 특정 파드가 3번 연속 에러 → 해당 파드만 제외

  • 다른 정상 파드는 계속 트래픽 수신

2. Circuit Breaker (서비스 수준)

에러율 기반 차단:

동작 방식:

3. Retry 전략

재시도 조건 (retryOn):

조건
설명

5xx

모든 5xx 에러

reset

연결 리셋

connect-failure

연결 실패

refused-stream

HTTP/2 스트림 거부

retriable-4xx

재시도 가능한 4xx (409, 429)

재시도 타임라인:

4. Timeout 계층

전체 타임라인:

5. 완전한 동작 예시

시나리오 1: 일시적인 네트워크 문제

시나리오 2: 특정 파드 문제

시나리오 3: 서비스 전체 장애 (Circuit Breaker)

6. Connection Pool (추가 보호)

동작:

  • 동시 연결 수 100개 초과 → 새 연결 거부

  • 대기 요청 50개 초과 → 503 반환

  • 서비스 과부하 방지

7. 모니터링

8. 프로덕션 고려사항

외부 API 호출 시:

내부 서비스 간:

참고 자료:


문제 10: 성능 최적화 및 비용 절감

대규모 마이크로서비스 환경에서 월 네트워크 비용이 $5,000입니다. Istio Resilience 기능을 활용하여 성능을 최적화하고 비용을 절감하는 종합 전략을 수립하세요.

현재 상황:

  • 3개 AZ에 균등 분산된 100개 서비스

  • 월 트래픽: 500TB

  • 평균 응답 시간: 150ms

  • 에러율: 3%

목표:

  • 크로스 AZ 비용 50% 절감

  • 평균 응답 시간 100ms 이하

  • 에러율 1% 이하

chevron-right예시 답안hashtag

답변:

종합 Resilience 전략

1. Zone Aware Routing (비용 절감 + 성능 향상)

DestinationRule 템플릿:

비용 절감 계산:

성능 향상:

2. Outlier Detection (에러율 감소)

민감한 감지 설정:

에러율 감소 효과:

3. Rate Limiting (서비스 보호)

티어별 Rate Limiting:

4. 종합 성능 최적화

응답 시간 개선 전략:

5. 구현 로드맵

Phase 1: Zone Aware Routing (Week 1-2)

예상 효과:

  • 비용: $5,000 → $1,500 (70% 절감)

  • 지연시간: 150ms → 120ms (20% 개선)

Phase 2: Outlier Detection (Week 3-4)

예상 효과:

  • 에러율: 3% → 1.5% (50% 감소)

  • 지연시간: 120ms → 100ms (추가 개선)

Phase 3: Rate Limiting (Week 5-6)

예상 효과:

  • DDoS 보호

  • 서비스 안정성 향상

  • 불필요한 리소스 소비 방지

6. 모니터링 및 검증

Grafana 대시보드:

7. 최종 결과 예측

지표
현재
목표
예상 결과

월 네트워크 비용

$5,000

$2,500

$1,500 (✅ 70% 절감)

평균 응답 시간

150ms

100ms

95ms (✅ 37% 개선)

에러율

3%

1%

0.8% (✅ 73% 감소)

크로스 AZ 트래픽

66.7%

33%

20% (✅ 70% 감소)

8. 추가 최적화 기회

캐싱 전략:

Service Mesh 최적화:

Auto Scaling:

참고 자료:


점수 계산

  • 객관식 1-5번: 각 10점 (총 50점)

  • 주관식 6-10번: 각 10점 (총 50점)

  • 총점: 100점

평가 기준:

  • 90-100점: 우수 (Istio Resilience 전문가)

  • 80-89점: 양호 (프로덕션 적용 가능)

  • 70-79점: 보통 (추가 학습 권장)

  • 60-69점: 미흡 (기본 개념 복습 필요)

  • 0-59점: 재학습 필요

학습 자료

마지막 업데이트