API Gateway에서 엣지 최적화 API 엔드포인트의 지연 시간 문제를 해결하려면 어떻게 해야 하나요?
4분 분량
0
클라이언트가 Amazon API Gateway에서 엣지 최적화 API에 요청을 보낼 때 지연 시간이 길어지는 문제가 발생하고 있습니다. 문제 해결을 위해 지연 시간이 길어지는 원인을 찾으려면 어떻게 해야 하나요?
간략한 설명
엣지 최적화 API 엔드포인트의 지연 시간이 길어지는 원인을 찾으려면 연결 경로의 다음 각 부분에서 소요되는 시간을 확인합니다.
중요: 이러한 연결 경로 단계는 리전 API 엔드포인트가 아닌 엣지 최적화 API 엔드포인트에만 적용됩니다. 엣지 최적화 API는 Amazon CloudFront 배포를 통해 액세스합니다. 리전 API 엔드포인트는 CloudFront를 통해 액세스할 수 없습니다
DNS 이름 확인에 연결 시작.
CloudFront에 연결하기 위한 전송 제어 프로토콜(TCP) 핸드셰이크에 대한 연결 시작
CloudFront에 연결하기 위한 보안 소켓 계층(SSL) 핸드셰이크에 대한 연결 시작
CloudFront에 클라이언트 HTTP 요청 보내기 연결 시작.
CloudFront에서 전송된 첫 번째 바이트에 연결 시작.
API 대한 요청 및 응답의 총 시간
API Gateway가 요청을 처리하고 CloudFront 엣지 로케이션에 응답할 시간
통합 엔드포인트가 API Gateway의 HTTP 요청에 응답하는 데 걸리는 시간
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가 다음 연결 경로 단계를 완료하는 데 걸리는 시간을 반환합니다.
DNS 이름 확인에 연결 시작("time_namelookup")
CloudFront에 연결하기 위해 TCP 핸드셰이크에 연결 시작("time_connect")
CloudFront에 연결하기 위해 SSL 핸드셰이크에 연결 시작("time_appconnect")
CloudFront에 클라이언트 HTTP 요청 보내기 연결 시작("time_pretransfer")
CloudFront에서 전송된 첫 번째 바이트에 연결 시작("time_starttransfer")
API Gateway와 함께 AWS Lambda를 사용 중이고 높은 IntegrationLatency 지표가 표시되는 경우 Lambda 함수의 CloudWatch Logs를 검토하세요. Lambda 함수와 통합된 API 엔드포인트가 클라이언트에 응답을 보내는 데 너무 오래 걸리는 경우 긴 지연 시간을 해결해야 합니다. Lambda 함수의 콜드 스타트는 함수의 실행 시간 지표에 기록되지 않으므로 API의 통합 지연 시간이 함수의 기간보다 길어질 수 있습니다. 콜드 스타트 시 함수의 실행 소요 시간을 확인하기 위해 AWS X-Ray를 사용합니다.