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에서만 작동한다

chevron-right정답 및 해설hashtag

정답: 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 설정

chevron-right정답 및 해설hashtag

정답: C

HTTP 경로 기반 라우팅은 VirtualService의 역할입니다.

해설:

DestinationRule의 주요 기능:

  1. 서브셋 정의 (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
  1. 로드 밸런싱 설정 (B - O)

spec:
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN  # RANDOM, LEAST_REQUEST 등
  1. Connection Pool 설정 (D - O)

spec:
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 100
      http:
        http1MaxPendingRequests: 50
  1. HTTP 경로 기반 라우팅 (C - X)

  • 이것은 VirtualService의 역할입니다:

# VirtualService에서 처리
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
spec:
  http:
  - match:
    - uri:
        prefix: /api  # 경로 기반 라우팅
    route:
    - destination:
        host: api-service

비교표:

기능
VirtualService
DestinationRule

라우팅 규칙

경로 매칭

서브셋 정의

로드 밸런싱

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%

chevron-right정답 및 해설hashtag

정답: 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. 외부 트래픽의 로드 밸런싱

chevron-right정답 및 해설hashtag

정답: C

서비스 간 mTLS 암호화는 Sidecar EnvoyPeerAuthentication의 역할입니다.

해설:

Gateway의 주요 역할:

  1. Ingress/Egress 트래픽 진입점 (A - O)

  1. TLS 종료 (B - O)

  1. 외부 트래픽 로드 밸런싱 (D - O)

  • Gateway는 Kubernetes LoadBalancer Service와 연동

  • 외부 트래픽을 클러스터 내부로 분산

  1. 서비스 간 mTLS (C - X)

  • 이것은 Sidecar Envoy의 역할입니다:

Gateway vs Sidecar 역할:

기능
Gateway
Sidecar Envoy

외부 → 내부 트래픽

TLS 종료

서비스 간 mTLS

내부 라우팅

참고 자료:


문제 5: Timeout 및 Retry 정책

다음 VirtualService 구성의 의미는?

A. 총 10초 동안 3번 재시도, 각 시도는 2초 제한 B. 총 2초 동안 3번 재시도, 각 시도는 10초 제한 C. 총 10초 동안 무제한 재시도, 각 시도는 2초 제한 D. 재시도 없이 10초 후 실패

chevron-right정답 및 해설hashtag

정답: A

이 구성은 총 10초 내에 3번까지 재시도하되, 각 시도는 2초 제한입니다.

해설:

구성 해석:

실행 시나리오:

Retry 조건 설정:

모범 사례:

주의사항:

  • timeoutattempts × perTryTimeout이어야 모든 재시도 가능

  • 너무 많은 재시도는 cascading failure 유발 가능

  • Idempotent 작업에만 재시도 권장

참고 자료:


주관식 문제 (6-10번)

문제 6: Argo Rollouts + Istio Canary 배포

Argo Rollouts와 Istio를 함께 사용하여 자동화된 Canary 배포를 구현하는 과정을 설명하세요. 필수 리소스(Rollout, VirtualService, DestinationRule, AnalysisTemplate)와 자동 롤백 조건을 포함해야 합니다.

chevron-right예시 답안hashtag

답변:

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: 모든 메트릭 정상


주요 이점:

  1. 완전 자동화: 사람 개입 없이 배포 진행

  2. 즉시 롤백: 메트릭 실패 감지 후 수초 내 롤백

  3. 안전한 배포: 각 단계마다 자동 검증

  4. 일관된 프로세스: 표준화된 배포 전략

참고 자료:


문제 7: Blue/Green 배포 vs Canary 배포

Blue/Green 배포와 Canary 배포의 차이점을 비교하고, 각각의 장단점사용 시나리오를 설명하세요.

chevron-right예시 답안hashtag

답변:

Blue/Green 배포 vs Canary 배포 비교:


1. 배포 방식 차이

Blue/Green 배포:

Canary 배포:


2. 상세 비교표

항목
Blue/Green
Canary

트래픽 전환

즉시 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 권장 시나리오:

  1. 중요한 릴리스: 충분한 테스트 후 빠른 전환

  2. 데이터베이스 변경 없음: 스키마 변경이 없는 경우

  3. 즉시 롤백 필요: 문제 발생 시 빠른 복구 필요

  4. 충분한 리소스: 2배 리소스를 감당할 수 있는 경우

  5. 예측 가능한 변경: 사전 테스트로 충분히 검증 가능

예시:

Canary 권장 시나리오:

  1. 실험적 기능: 소수 사용자에게 먼저 테스트

  2. 리소스 제약: 2배 리소스를 사용할 수 없는 경우

  3. 점진적 검증: 프로덕션 환경에서 실제 데이터로 검증

  4. 자동화된 배포: CI/CD에서 자동으로 배포

  5. 마이크로서비스: 서비스 간 의존성이 복잡한 경우

예시:


6. 하이브리드 접근

실제로는 두 전략을 조합하여 사용할 수 있습니다:

참고 자료:


문제 8: Traffic Mirroring (섀도우 테스트)

Traffic Mirroring을 사용하여 새 버전을 안전하게 테스트하는 방법을 설명하세요. 사용 사례, 구성 방법, 주의사항을 포함해야 합니다.

chevron-right예시 답안hashtag

답변:

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 비용을 절감하는 방법을 설명하세요. 구성 예시와 예상 비용 절감액을 포함해야 합니다.

chevron-right예시 답안hashtag

답변:

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) 인증서를 사용하는 경우와 자체 인증서를 사용하는 경우를 모두 포함해야 합니다.

chevron-right예시 답안hashtag

답변:

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점: 재학습 필요

학습 자료

마지막 업데이트