Traffic Management 퀴즈
지원 버전: Istio 1.28.0 EKS 버전: 1.34 (Kubernetes 1.28+) 마지막 업데이트: 2026년 2월 23일
이 퀴즈는 Istio의 트래픽 관리 기능에 대한 이해도를 테스트합니다.
객관식 문제 (1-5번)
문제 1: VirtualService의 역할
VirtualService에 대한 설명으로 올바른 것은?
A. Kubernetes Service를 대체하는 리소스이다 B. 로드 밸런싱 알고리즘만 정의할 수 있다 C. 라우팅 규칙을 정의하고 트래픽을 제어한다 D. Control Plane에서만 작동한다
정답 및 해설
정답: C
VirtualService는 라우팅 규칙을 정의하여 트래픽을 제어하는 Istio의 핵심 CRD입니다.
해설:
A (X): VirtualService는 Kubernetes Service를 대체하지 않고, Service 위에서 라우팅 규칙을 추가합니다
B (X): 로드 밸런싱은 DestinationRule이 담당하고, VirtualService는 라우팅 규칙을 정의합니다
C (O): VirtualService는 다음을 정의합니다:
HTTP/TCP 라우팅 규칙
URL 경로 기반 라우팅
Header 기반 라우팅
가중치 기반 트래픽 분할
Timeout, Retry 설정
D (X): VirtualService는 Data Plane의 Envoy에서 실행됩니다
예제:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1참고 자료:
문제 2: DestinationRule의 기능
DestinationRule이 수행하는 작업이 아닌 것은?
A. 서브셋(Subset) 정의 B. 로드 밸런싱 알고리즘 설정 C. HTTP 경로 기반 라우팅 D. Connection Pool 설정
정답 및 해설
정답: C
HTTP 경로 기반 라우팅은 VirtualService의 역할입니다.
해설:
DestinationRule의 주요 기능:
서브셋 정의 (A - O)
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2로드 밸런싱 설정 (B - O)
spec:
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN # RANDOM, LEAST_REQUEST 등Connection Pool 설정 (D - O)
spec:
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
http:
http1MaxPendingRequests: 50HTTP 경로 기반 라우팅 (C - X)
이것은 VirtualService의 역할입니다:
# VirtualService에서 처리
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
spec:
http:
- match:
- uri:
prefix: /api # 경로 기반 라우팅
route:
- destination:
host: api-service비교표:
라우팅 규칙
✅
❌
경로 매칭
✅
❌
서브셋 정의
❌
✅
로드 밸런싱
❌
✅
Connection Pool
❌
✅
참고 자료:
문제 3: Canary 배포의 트래픽 분할
다음 VirtualService 구성에서 v1과 v2로 가는 트래픽의 비율은?
A. v1: 50%, v2: 50% B. v1: 80%, v2: 20% C. v1: 20%, v2: 80% D. v1: 100%, v2: 0%
정답 및 해설
정답: B
weight 값이 v1: 80, v2: 20이므로 트래픽은 80%가 v1, 20%가 v2로 분배됩니다.
해설:
Weight 기반 트래픽 분할:
weight필드는 상대적 비율을 의미합니다총 weight: 80 + 20 = 100
v1 비율: 80/100 = 80%
v2 비율: 20/100 = 20%
Canary 배포 단계:
Argo Rollouts를 사용한 자동 Canary:
참고 자료:
문제 4: Gateway의 용도
Istio Gateway의 주요 역할로 적절하지 않은 것은?
A. 클러스터 외부에서 내부로의 트래픽 진입점 B. TLS 종료 및 인증서 관리 C. 서비스 간 mTLS 암호화 D. 외부 트래픽의 로드 밸런싱
정답 및 해설
정답: C
서비스 간 mTLS 암호화는 Sidecar Envoy와 PeerAuthentication의 역할입니다.
해설:
Gateway의 주요 역할:
Ingress/Egress 트래픽 진입점 (A - O)
TLS 종료 (B - O)
외부 트래픽 로드 밸런싱 (D - O)
Gateway는 Kubernetes LoadBalancer Service와 연동
외부 트래픽을 클러스터 내부로 분산
서비스 간 mTLS (C - X)
이것은 Sidecar Envoy의 역할입니다:
Gateway vs Sidecar 역할:
외부 → 내부 트래픽
✅
❌
TLS 종료
✅
❌
서비스 간 mTLS
❌
✅
내부 라우팅
❌
✅
참고 자료:
문제 5: Timeout 및 Retry 정책
다음 VirtualService 구성의 의미는?
A. 총 10초 동안 3번 재시도, 각 시도는 2초 제한 B. 총 2초 동안 3번 재시도, 각 시도는 10초 제한 C. 총 10초 동안 무제한 재시도, 각 시도는 2초 제한 D. 재시도 없이 10초 후 실패
정답 및 해설
정답: A
이 구성은 총 10초 내에 3번까지 재시도하되, 각 시도는 2초 제한입니다.
해설:
구성 해석:
실행 시나리오:
Retry 조건 설정:
모범 사례:
주의사항:
timeout≥attempts × perTryTimeout이어야 모든 재시도 가능너무 많은 재시도는 cascading failure 유발 가능
Idempotent 작업에만 재시도 권장
참고 자료:
주관식 문제 (6-10번)
문제 6: Argo Rollouts + Istio Canary 배포
Argo Rollouts와 Istio를 함께 사용하여 자동화된 Canary 배포를 구현하는 과정을 설명하세요. 필수 리소스(Rollout, VirtualService, DestinationRule, AnalysisTemplate)와 자동 롤백 조건을 포함해야 합니다.
예시 답안
답변:
Argo Rollouts + Istio Canary 배포 구현:
1. Service 생성 (기본 Kubernetes Service)
2. DestinationRule 정의 (서브셋 정의)
중요: Rollout은 Pod에 rollouts-pod-template-hash 레이블을 자동으로 추가하고, 이 레이블로 서브셋을 구분합니다.
3. VirtualService 정의 (트래픽 분할)
주요 포인트:
http[].name필드는 필수Rollout은 이 VirtualService의
weight값만 자동으로 업데이트
4. AnalysisTemplate 정의 (자동 롤백 조건)
성공률 분석:
지연시간 분석:
5. Rollout 리소스 정의 (Canary 전략)
6. 배포 실행 및 모니터링
자동 롤백 시나리오:
시나리오 1: 에러율 > 5%
시나리오 2: 지연시간 > 500ms
시나리오 3: 모든 메트릭 정상
주요 이점:
완전 자동화: 사람 개입 없이 배포 진행
즉시 롤백: 메트릭 실패 감지 후 수초 내 롤백
안전한 배포: 각 단계마다 자동 검증
일관된 프로세스: 표준화된 배포 전략
참고 자료:
문제 7: Blue/Green 배포 vs Canary 배포
Blue/Green 배포와 Canary 배포의 차이점을 비교하고, 각각의 장단점 및 사용 시나리오를 설명하세요.
예시 답안
답변:
Blue/Green 배포 vs Canary 배포 비교:
1. 배포 방식 차이
Blue/Green 배포:
Canary 배포:
2. 상세 비교표
트래픽 전환
즉시 100% 전환
점진적 증가 (10% → 100%)
롤백 속도
즉시 (단일 전환)
빠름 (현재 단계에서만)
리소스 사용
2배 (Blue + Green)
1배 + 소량 (Stable + Canary)
위험도
중간 (한 번에 모든 사용자)
낮음 (소수 사용자부터)
테스트 기간
배포 전 충분히 테스트
프로덕션에서 점진적 검증
복잡도
낮음
중간 (메트릭 분석 필요)
사용자 영향
모든 사용자 동시 영향
소수 사용자부터 점진적
3. Istio 구현 예제
Blue/Green 배포 (Argo Rollouts):
Canary 배포 (Argo Rollouts):
4. 장단점 비교
Blue/Green 장점:
✅ 간단한 구조 (Blue ↔ Green 전환만)
✅ 즉시 롤백 가능 (스위치 전환)
✅ 배포 전 충분한 테스트 가능
✅ 예측 가능한 동작
Blue/Green 단점:
❌ 2배의 리소스 필요
❌ 전체 사용자에게 동시 영향
❌ 데이터베이스 마이그레이션 복잡
❌ 점진적 검증 불가
Canary 장점:
✅ 소수 사용자부터 점진적 검증
✅ 리소스 효율적 (1배 + 소량)
✅ 프로덕션 환경에서 실제 검증
✅ 자동 롤백 가능 (메트릭 기반)
Canary 단점:
❌ 복잡한 구성 (메트릭, 분석)
❌ 모니터링 필수
❌ 긴 배포 시간
❌ 버전 혼재 기간 존재
5. 사용 시나리오
Blue/Green 권장 시나리오:
중요한 릴리스: 충분한 테스트 후 빠른 전환
데이터베이스 변경 없음: 스키마 변경이 없는 경우
즉시 롤백 필요: 문제 발생 시 빠른 복구 필요
충분한 리소스: 2배 리소스를 감당할 수 있는 경우
예측 가능한 변경: 사전 테스트로 충분히 검증 가능
예시:
Canary 권장 시나리오:
실험적 기능: 소수 사용자에게 먼저 테스트
리소스 제약: 2배 리소스를 사용할 수 없는 경우
점진적 검증: 프로덕션 환경에서 실제 데이터로 검증
자동화된 배포: CI/CD에서 자동으로 배포
마이크로서비스: 서비스 간 의존성이 복잡한 경우
예시:
6. 하이브리드 접근
실제로는 두 전략을 조합하여 사용할 수 있습니다:
참고 자료:
문제 8: Traffic Mirroring (섀도우 테스트)
Traffic Mirroring을 사용하여 새 버전을 안전하게 테스트하는 방법을 설명하세요. 사용 사례, 구성 방법, 주의사항을 포함해야 합니다.
예시 답안
답변:
Traffic Mirroring (트래픽 미러링) 개념:
트래픽 미러링은 프로덕션 트래픽을 복제하여 새 버전으로 전송하되, 응답은 무시하는 기법입니다. "섀도우 테스트"라고도 합니다.
1. 작동 원리
핵심 특징:
사용자는 v1의 응답만 받음
v2의 응답은 Envoy가 폐기
v2의 에러는 사용자에게 영향 없음
2. 구성 방법
기본 미러링 (100%):
부분 미러링 (50%):
미러링 + Canary 조합:
3. 사용 사례
사례 1: 새 버전 성능 테스트
사례 2: 데이터베이스 마이그레이션 검증
사례 3: 버그 수정 검증
사례 4: 캐시 워밍
4. 모니터링 구성
Prometheus 쿼리로 미러 트래픽 모니터링:
Grafana 대시보드:
5. 주의사항
⚠️ 부하 증가:
⚠️ 부작용 주의:
⚠️ 비용:
⚠️ 응답 검증 불가:
6. 모범 사례
참고 자료:
문제 9: Locality Load Balancing (Zone Aware Routing)
AWS EKS에서 Istio의 Locality Load Balancing을 사용하여 크로스 AZ 비용을 절감하는 방법을 설명하세요. 구성 예시와 예상 비용 절감액을 포함해야 합니다.
예시 답안
답변:
Locality Load Balancing 개념:
Locality Load Balancing은 같은 가용 영역(AZ) 내 서비스를 우선적으로 라우팅하여 네트워크 지연시간을 줄이고 크로스 AZ 비용을 절감하는 기능입니다.
1. AWS EKS에서 크로스 AZ 비용
비용 구조:
예시 계산:
2. EKS Pod Topology 레이블
EKS 노드는 자동으로 topology 레이블이 설정됩니다:
3. Locality Load Balancing 구성
기본 구성 (같은 AZ 우선):
고급 구성 (가중치 분배):
장애 조치 정책:
4. Outlier Detection과 결합
동작:
5. 비용 절감 계산
시나리오: 대규모 마이크로서비스 아키텍처
Locality LB 없음:
Locality LB 적용:
6. 성능 향상
지연시간 개선:
실제 측정 예시:
7. 모니터링
Prometheus 쿼리:
Grafana 대시보드:
8. 주의사항
⚠️ 불균형 로드:
⚠️ AZ 장애:
⚠️ Cold Start:
9. 모범 사례
참고 자료:
문제 10: Gateway TLS 구성
Istio Gateway에서 TLS 종료를 구성하고, HTTPS 리다이렉트를 설정하는 방법을 설명하세요. ACM (AWS Certificate Manager) 인증서를 사용하는 경우와 자체 인증서를 사용하는 경우를 모두 포함해야 합니다.
예시 답안
답변:
Istio Gateway TLS 구성:
1. 자체 인증서 사용 (Kubernetes Secret)
1단계: TLS 인증서 생성
2단계: Kubernetes Secret 생성
3단계: Gateway 구성 (HTTPS + HTTP → HTTPS 리다이렉트)
4단계: VirtualService 연결
5단계: 테스트
2. AWS ACM 인증서 사용 (NLB Annotation)
AWS EKS에서는 ACM 인증서를 NLB에서 TLS 종료하는 방법을 권장합니다.
1단계: ACM 인증서 발급
2단계: Istio Ingress Gateway Service 수정
3단계: Gateway 구성 (TLS Passthrough)
3. Mutual TLS (mTLS) - 클라이언트 인증
클라이언트도 인증서를 제시해야 하는 경우:
클라이언트 인증서로 접속:
4. 와일드카드 인증서
여러 서브도메인을 하나의 인증서로:
VirtualService로 서브도메인별 라우팅:
5. TLS 버전 및 Cipher Suite 설정
6. 인증서 자동 갱신 (cert-manager)
7. 모범 사례
주의사항:
✅ TLS 1.2 이상 사용
✅ 강력한 Cipher Suite 설정
✅ 인증서 자동 갱신 (cert-manager)
✅ HTTP → HTTPS 리다이렉트 활성화
❌ 자체 서명 인증서는 프로덕션에 사용 금지
❌ TLS 1.0/1.1 사용 금지
참고 자료:
점수 계산
객관식 1-5번: 각 10점 (총 50점)
주관식 6-10번: 각 10점 (총 50점)
총점: 100점
평가 기준:
90-100점: 우수 (Istio 트래픽 관리 전문가)
80-89점: 양호 (프로덕션 운영 가능)
70-79점: 보통 (추가 학습 권장)
60-69점: 미흡 (기본 개념 복습 필요)
0-59점: 재학습 필요
학습 자료
마지막 업데이트