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. 일정 시간 후 자동으로 복구 시도
정답 및 해설
정답: C
Outlier Detection은 인스턴스를 삭제하지 않고 트래픽 풀에서 일시적으로 제외합니다.
해설:
Outlier Detection의 작동 원리:
주요 기능:
자동 감지: 에러율, 지연시간, 응답 실패를 자동으로 모니터링
자동 제외: 임계값 초과 시 트래픽 풀에서 일시적 제외
자동 복구: baseEjectionTime 후 자동으로 복구 시도
일시적 조치: 인스턴스를 삭제하지 않고 트래픽만 차단
잘못된 선택지 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은 외부 서비스 없이 동작한다
정답 및 해설
정답: C
로컬 Rate Limiting은 각 Envoy 프록시가 독립적으로 요청을 제한합니다.
해설:
로컬 vs 글로벌 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로 장애조치
정답 및 해설
정답: C
Zone Aware Routing은 트래픽을 단일 AZ에 집중하는 것이 아니라, 같은 AZ를 우선하되 가용성을 위해 분산합니다.
해설:
Zone Aware Routing의 올바른 동작:
Zone Aware Routing의 실제 이점:
지연시간 감소:
같은 AZ 내 통신: ~0.5ms
크로스 AZ 통신: ~1-2ms
비용 절감:
AWS 크로스 AZ 전송: GB당 $0.01-0.02
대용량 트래픽 환경에서 월 수백~수천 달러 절감
가용성 향상:
같은 AZ 파드 장애 시 자동으로 다른 AZ로 전환
단일 AZ 집중은 잘못된 접근 (가용성 저하)
성능 최적화:
네트워크 홉 감소
대역폭 최적화
DestinationRule 설정 예시:
참고 자료:
문제 4: Outlier Detection 파라미터
다음 Outlier Detection 설정에서 인스턴스가 제외되는 조건은?
A. 5초 동안 에러 발생 시 B. 연속으로 5번 에러 발생 시 C. 30초 동안 에러율 50% 초과 시 D. 30초마다 무조건 제외
정답 및 해설
정답: 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
정답 및 해설
정답: A
tokens_per_fill: 10과 fill_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 게이트웨이 에러도 감지
예시 답안
답변:
해설:
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헤더 포함
예시 답안
답변:
해설:
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 적용
예시 답안
답변:
해설:
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 전략을 구현하세요:
Outlier Detection: 연속 3번 에러 시 인스턴스 제외
Retry: 502, 503, 504 에러 시 최대 3번 재시도
Timeout: 요청당 5초 타임아웃
Circuit Breaker: 에러율 50% 초과 시 서비스 전체 차단
DestinationRule과 VirtualService를 작성하세요.
예시 답안
답변:
해설:
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% 이하
예시 답안
답변:
종합 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점: 재학습 필요
학습 자료
마지막 업데이트