API Gateway에서 엣지 최적화 API 엔드포인트의 요청 대기 시간을 유발하는 원인을 확인하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 11월 4일

클라이언트가 Amazon API Gateway에서 엣지 최적화 API에 대한 요청을 보낼 때 대기 시간이 길어집니다. 대기 시간 소스를 확인하려면 어떻게 해야 합니까?

간략한 설명

엣지 최적화 API 엔드포인트의 대기 시간 소스를 찾으려면 연결 경로의 다음 각 부분에 걸리는 시간을 결정합니다.

중요: 이러한 연결 경로 단계는 리전 API 엔드포인트가 아닌 엣지 최적화 API 엔드포인트에만 적용됩니다. 엣지 최적화 API는 Amazon CloudFront 배포를 통해 액세스합니다. 리전 API 엔드포인트는 CloudFront를 통해 액세스할 수 없습니다

  1. DNS 이름 확인에 연결 시작.
  2. CloudFront에 연결하기 위한 전송 제어 프로토콜(TCP) 핸드셰이크에 대한 연결 시작
  3. CloudFront에 연결하기 위한 보안 소켓 계층(SSL) 핸드셰이크에 대한 연결 시작
  4. CloudFront에 클라이언트 HTTP 요청 보내기 연결 시작.
  5. CloudFront에서 전송된 첫 번째 바이트에 연결 시작.
  6. API 대한 요청 및 응답의 총 시간
  7. API Gateway가 요청을 처리하고 CloudFront 엣지 로케이션에 응답할 시간
  8. 통합 엔드포인트가 API Gateway의 HTTP 요청에 응답하는 데 걸리는 시간
  9. API Gateway가 CloudFront 엣지 로케이션에 응답하고 CloudFront가 클라이언트에 응답할 시간

연결 경로에서 가장 오래 걸리는 부분이 대기 시간의 소스입니다.

참고: AWS X-Ray를 사용하여 Amazon API Gateway REST API를 통해 기본 서비스로 이동하는 사용자 요청을 추적하고 분석할 수 있습니다. API Gateway는 X-Ray를 사용할 수 있는 AWS 리전의 모든 API Gateway REST API 엔드포인트 유형에 대해 X-Ray 추적을 지원합니다. X-Ray를 사용할 수 있는 모든 리전을 보려면 AWS 리전 표를 참조하세요.

해결 방법

curl_for_latency Bash 스크립트를 실행합니다.

API의 연결 경로 프로세스의 1~6단계 지속 시간을 확인하려면 GitHub에서 curl_for_latency Bash 스크립트를 실행합니다.

중요: URL, HTTP 메서드파라미터 값을 API 정보와 일치하도록 바꿔야 합니다.

스크립트는 API가 다음 연결 경로 단계를 완료하는 데 걸리는 시간을 반환합니다.

  1. DNS 이름 확인에 연결 시작("time_namelookup")
  2. CloudFront에 연결하기 위해 TCP 핸드셰이크에 연결 시작("time_connect")
  3. CloudFront에 연결하기 위해 SSL 핸드셰이크에 연결 시작("time_appconnect")
  4. CloudFront에 클라이언트 HTTP 요청 보내기 연결 시작("time_pretransfer")
  5. CloudFront에서 전송된 첫 번째 바이트에 연결 시작("time_starttransfer")
  6. API에 대한 요청 및 응답에 대한 총 시간(“time_total”)

API Gateway가 요청을 처리하고 CloudFront 엣지 로케이션을 처리하는 데 걸리는 시간을 확인합니다.

CloudWatch 콘솔에서 API에 대한 Latency 지표를 검토합니다. 그런 다음 1분 간격최대값에 대한 대기 시간 지표 그래프 설정을 구성하여 1분 기간 내에 가장 긴 처리 시간을 확인합니다.

지침은 CloudWatch 콘솔에서 API Gateway 지표 보기를 참조하세요.

통합 엔드포인트가 API Gateway의 HTTP 요청에 응답하는 데 걸리는 시간 확인

CloudWatch 콘솔에서 IntegrationLatency 지표를 검토합니다. 그런 다음 1분 간격최대값에 대한 IntegrationLatency 그래프 설정을 구성하여 1분 기간 내에 가장 긴 처리 시간을 확인합니다.

-또는-

API에 대해 CloudWatch 로깅을 활성화한 경우 다음과 유사한 라인 항목에 대한 로그를 검토합니다.

Received response. Integration latency: 325 ms

중요: API Gateway와 함께 AWS Lambda를 사용 중이고 높은 IntegrationLatency 지표가 표시되는 경우 Lambda 함수의 CloudWatch Logs도 검토하세요. Lambda 함수의 콜드 스타트는 함수의 기간 지표에 기록되지 않으므로 API의 통합 대기 시간이 함수의 지속 시간보다 길어질 수 있습니다. 첫 시작으로 함수의 기간을 확인하기 위해 AWS X-Ray를 사용합니다.

API Gateway가 CloudFront 엣지 로케이션에 응답하고 CloudFront가 클라이언트에 응답하는 데 걸리는 시간을 확인합니다.

API에 대한 요청 및 응답에 대한 총 시간(“time_total”)을 취한 후 다음을 뺍니다.

  • CloudFront에 클라이언트 HTTP 요청 보내기 연결 시작("time_pretransfer")
  • API Gateway가 요청을 처리하고 CloudFront 엣지 로케이션(API의 대기 시간 지표)에 응답하는 데 걸리는 시간

그 결과 API Gateway가 CloudFront 엣지 로케이션에 응답하고 CloudFront가 클라이언트에 응답하는 데 걸리는 시간을 알 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?