안티패턴: 사용하지 않는 NodeJS API 프록시를 배포된 상태로 유지

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

Apigee Edge의 고유하고 유용한 기능 중 하나는 NodeJS 애플리케이션을 API 프록시로 래핑하는 기능입니다. 이를 통해 개발자는 Edge를 사용하여 이벤트 기반 서버 측 애플리케이션을 만들 수 있습니다.

안티패턴

API 프록시 배포는 API 요청을 처리할 수 있도록 API 프록시를 제공하는 프로세스입니다. 배포된 각 API 프록시는 특정 API 프록시의 API 요청을 처리할 수 있도록 메시지 프로세서의 런타임 메모리에 로드됩니다. 따라서 배포된 API 프록시 수가 증가하면 런타임 메모리 사용량이 증가합니다. 사용하지 않는 API 프록시를 배포된 상태로 두면 런타임 메모리가 불필요하게 사용될 수 있습니다.

NodeJS API 프록시의 경우 추가적인 의미가 있습니다.

플랫폼은 배포된 모든 NodeJS API 프록시의 'Node 앱'을 실행합니다. Node 앱은 메시지 프로세서 JVM 프로세스의 독립형 노드 서버 인스턴스와 유사합니다.

실제로 배포된 모든 NodeJS API 프록시에 대해 Edge는 각 노드 서버를 실행하여 해당 프록시의 요청을 처리합니다. 동일한 NodeJS API 프록시가 여러 환경에 배포되면 각 환경에 해당하는 노드 앱이 실행됩니다. 배포되었지만 사용되지 않는 NodeJS API 프록시가 많은 경우 여러 Node 앱이 실행됩니다. 사용하지 않는 NodeJS 프록시는 메모리를 소비하고 애플리케이션 프로세스의 시작 시간에 영향을 미치는 유휴 Node 앱으로 변환됩니다.

사용된 프록시 미사용 프록시
# Proxies # Deployed Environments # nodeapps Launched # Proxies # Deployed Environments # Node 앱 실행됨
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) 12x3=36

위의 그림에서는 사용되지 않는 노드 앱 36개가 실행되어 시스템 메모리를 사용하고 프로세스의 시작 시간에 부정적인 영향을 미칩니다.

영향

  • 높은 메모리 사용량과 애플리케이션의 추가 요청 처리 능력에 대한 연쇄 효과
  • 실제로 트래픽을 제공하는 API 프록시에 미칠 수 있는 성능 영향

권장사항

  • 사용하지 않는 API 프록시 배포 취소
  • 애널리틱스 프록시 실적 대시보드를 사용하여 트래픽을 게재하지 않는 프록시를 확인하고 필요하지 않은 프록시는 배포 해제합니다.

추가 자료