API Gateway에서의 API Degradation 최적의 사례

April 1, 2024

Technology

현대 분산 시스템에서 API 저하(API degradation)는 중요한 결함 허용 및 안정성 보장 메커니즘으로 작용합니다. 시스템이 압박, 장애 또는 자원 제약에 직면했을 때, 비핵심 기능이나 서비스를 저하시킴으로써 전체 시스템의 안정성과 핵심 비즈니스 운영의 연속성을 보장합니다. 이 글에서는 API 저하의 시나리오와 API 게이트웨이 수준에서 저하를 구현하는 최적의 방법을 탐구합니다.

API 저하의 시나리오

  1. 시스템 과부하: 시스템이 서버의 처리 능력을 초과하는 요청 급증을 경험할 때, 비핵심 API를 저하시켜 시스템 충돌을 방지하고 핵심 기능의 정상 작동을 보장해야 합니다.

  2. 서비스 장애: 백엔드 서비스의 장애나 성능 저하가 발생했을 때, 해당 서비스의 API를 저하시켜 장애의 확산을 방지해야 합니다.

  3. 자원 제약: CPU, 메모리, 대역폭과 같은 시스템 자원이 제약될 때, 높은 자원 소비를 요구하는 API를 저하시켜 전체 시스템의 안정성을 보장해야 합니다.

게이트웨이 수준에서의 API 저하 최적의 방법

블랙 프라이데이와 같은 대규모 판매 이벤트 동안 전자상거래 플랫폼이 엄청난 트래픽 압박에 직면한 시나리오를 고려해 보겠습니다. 핵심 기능을 보호하고 사용자 경험을 보장하기 위해 팀은 게이트웨이 수준에서 API 저하 전략을 구현하기로 결정합니다.

1. 핵심 API 식별

팀은 사용자 로그인, 제품 상세 정보 조회, 장바구니에 상품 추가, 주문 제출 및 결제 처리와 같은 중요한 API를 식별합니다. 이러한 API는 사용자가 쇼핑 프로세스를 완료하는 데 필수적입니다.

2. 저하 전략 설계

핵심 API에 대해 성능 저하 처리를 설정합니다. 예를 들어, 업스트림 서버가 연속으로 세 번 500 상태 코드를 반환하면, 서킷 브레이킹이 시작되고, 서킷 다운타임이 자동으로 증가하며, 최대 300초까지 증가하여 업스트림 서비스가 복구될 때까지 유지됩니다.

사용자 리뷰, 추천 목록 및 광고 표시와 같은 비핵심 API에 대해 특정 저하 전략을 설계합니다:

  • 사용자 리뷰 API: 기본 리뷰 목록이나 빈 데이터를 반환하여 리뷰 시스템에 대한 실시간 호출을 방지합니다.

  • 추천 목록 API: 캐시된 추천 데이터를 활용하거나 고정된 추천 목록을 반환하여 추천 엔진에 대한 의존도를 줄입니다.

  • 광고 표시 API: 기본 광고나 빈 광고 슬롯을 반환하여 페이지 레이아웃이 영향을 받지 않도록 합니다.

API

3. Apache APISIX / API7 Enterprise 구성

  • 핵심 API에 대해 해당 경로에 "api-breaker" 플러그인을 활성화하고, 500 상태 코드가 연속으로 세 번 발생할 때 트리거 조건을 설정하며, 최대 서킷 다운타임을 300초로 설정합니다.

  • 사용자 평가 API에 대해 해당 경로에 mocking 플러그인을 활성화하고 response_example을 빈 데이터로 설정합니다.

  • 추천 목록 API에 대해 해당 경로에 proxy-cache 플러그인을 활성화하고, 메모리에서 응답 캐싱을 활용하도록 선택합니다.

  • 광고 표시 API에 대해 해당 경로에 mocking 플러그인을 활성화하고 response_example을 기본 광고로 설정하여 페이지 표시가 정상적으로 유지되도록 하며, 클릭 가능한 광고를 유지합니다.

4. 동적 구성 관리

변화하는 트래픽 조건에 적응하기 위해 팀은 동적으로 재로드 가능한 게이트웨이를 선택합니다: Apache APISIX / API7 Enterprise. 실시간 모니터링 데이터를 기반으로 서킷 브레이킹 임계값, 저하 전략을 조정하고, 트래픽 피크가 발생할 때 비핵심 API를 선택적으로 저하시킬 수 있습니다.

5. 모니터링 및 경고

팀은 API7 게이트웨이 내에서 편리하게 경고 정책을 설정하거나 APISIX와 자체 모니터링 및 경고 시스템을 통합합니다. API 응답 시간, 오류율 및 호출량을 실시간으로 모니터링하여 저하 임계값에 도달하거나 트리거 조건이 발생할 때 자동으로 저하를 실행합니다. 운영 담당자는 SMS, 이메일 또는 기타 수단을 통해 즉시 알림을 받아 잠재적인 문제를 신속히 해결하여 시스템 안정성을 보장합니다.

6. 평가 및 조정

저하 전략 구현 후, 팀은 시스템 성능과 사용자 경험을 면밀히 모니터링합니다. 사용자 피드백, 비즈니스 데이터 분석 및 모니터링 지표를 통해 저하 전략의 효과를 평가합니다. 평가 결과를 바탕으로 팀은 저하 전략을 적시에 조정하여 시스템 부하와 사용자 만족도를 더 잘 균형잡을 수 있도록 합니다.

결론

API 저하는 현대 분산 시스템에서 중요한 결함 허용 메커니즘으로, API 게이트웨이 수준에서 구현될 때 시스템 안정성과 사용자 경험을 크게 향상시킵니다. 핵심 API를 식별하고, 저하 전략을 설계하며, 게이트웨이 플러그인을 구성하고, 동적으로 구성을 관리하며, 모니터링경고를 설정하고, 효과를 평가함으로써 팀은 다양한 도전에 유연하게 대응하여 압박 하에서도 시스템 안정성을 보장할 수 있습니다.

Tags: