CloudFront에서 문제를 해결하고 증가된 지연 시간을 줄이려면 어떻게 해야 하나요?

4분 분량
0

Amazon CloudFront의 응답 지연 시간이 증가하고 있습니다. 원인을 파악하고 지연 시간을 줄이려면 어떻게 해야 하나요?

간략한 설명

CloudFront의 지연 시간 문제를 해결하려면 먼저 다음 이벤트 중 지연 시간에 영향을 주는 이벤트를 식별합니다.

  • 요청이 클라이언트와 CloudFront 엣지 로케이션 간에 이동하는 데 걸린 시간입니다. 여기에는 도메인 이름 시스템(DNS) 조회 프로세스와 TCP 및 SSL/TLS 협상이 포함됩니다.
  • 요청이 CloudFront와 오리진 간에 이동하는 데 걸린 시간입니다. 여기에는 오리진 DNS 조회 프로세스, 오리진과의 TCP 및 SSL/TLS 협상, 오리진이 객체를 처리하고 응답하는 데 걸리는 시간이 포함됩니다.

그런 다음 지연 시간을 가장 많이 유발하는 이벤트에 대해 문제 해결 단계를 따릅니다.

해결 방법

CloudFront에서 지연 시간을 유발하는 이벤트를 식별합니다.

CloudFront에서 지연 시간을 유발하는 이벤트를 식별하려면 다음 중 하나를 수행합니다.

  • 다음 cURL 명령을 실행합니다.
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com

참고: example.com을 CloudFront 도메인 이름 또는 대체 도메인 이름(CNAME) 및 URL 경로로 바꿉니다.

각 이벤트 또는 요청에 **걸린 시간(time-taken)**을 기준으로 이 문서의 관련 해결 방법 섹션을 참조하세요.

과거에 지연 시간을 관찰한 경우 CloudFront 액세스 로그에서 걸린 시간(time-taken)첫 번째 바이트까지의 시간(time-to-first-byte) 필드를 확인합니다. CloudFront 액세스 로그는 클라이언트가 DNS 조회 프로세스와 TCP 및 SSL/TLS 협상에 걸린 시간을 기록하지 않음

DNS 해결 방법에서 지연 시간 감소

  • 클라이언트 측 DNS에서 DNS 캐싱 시간을 늘립니다.
  • 로컬 DNS 서버에서 캐시의 **Time to Live(TTL)**를 늘립니다.
  • DNS 등록자/공급자의 DNS 레코드에 대한 TTL을 늘립니다.
  • 인터넷 서비스 공급자의 확인자 **DNS 서버(DNS server)**가 지연 시간을 초래하는 경우 퍼블릭 DNS 서버를 사용하는 것이 좋습니다.

TCP 및 SSL/TLS의 지연 시간 감소 - 협상 시간

  • 로컬 네트워크 대역폭과 인터넷 대역폭을 확인합니다.
  • 인터넷 서버 공급자 또는 라우터에 네트워크 장애가 있는지 확인합니다.
  • 인터넷 서비스 공급자 또는 네트워크 경로를 통해 로컬 네트워크 성능을 최적화합니다.
  • 웹 브라우저가 가장 가깝고 올바른 POP 위치를 찾을 수 있도록 하는 올바른 DNS 확인자를 사용하고 있는지 확인합니다.
  • HTTPS 사이트 성능을 개선하려면 인증 체인을 짧게 유지합니다.
  • 지연 시간은 방화벽, 프록시 또는 로컬 라우터로 인해 발생할 수 있습니다. 이들 중 어떤 것이 지연 시간을 유발하는지 확인하려면 시스템에서 다음 MTR 명령을 실행합니다. 자세한 내용은 MTR을 사용한 네트워크 문제 진단을 참조하세요.
mtr -rw example.com --no-dns

참고: example.com을 자신의 도메인으로 바꾸세요.

첫 바이트까지 걸린 시간(TTFB) 및 총 걸린 시간(TTL)의 지연 시간 감소

CloudFront에서 "X-Cache:Hit from cloudfront"를 반환하는 경우

가장 가까운 엣지 로케이션에서 요청이 처리되면 CloudFront가 "X-Cache:Hit from cloudfront"를 반환합니다. 지연 시간을 줄이려면

  • CloudFront 자동 압축을 켜서 파일을 압축하고 다운로드 속도를 높입니다.
  • 로컬 또는 브라우저 캐싱을 사용하여 CloudFront에 대한 요청을 줄입니다. 파일에 cache-control 헤더를 지정하여 웹 브라우저가 웹 사이트 콘텐츠를 브라우저 메모리나 로컬 디스크에 일정 시간 동안 유지하도록 지시합니다. cache-control 헤더에 대한 자세한 내용은 CloudFront가 객체를 캐싱하는 시간 지정을 참조하세요.

CloudFront에서 "X-Cache:Miss from cloudfront"를 반환하는 경우

오리진에 요청을 보내면 CloudFront에서 "X-Cache:Miss from cloudfront"를 반환하는 경우 지연 시간을 줄이려면

  • CloudFront 엣지 로케이션과 오리진 위치 간의 왕복 시간(RTT)을 줄입니다. CloudFront 엣지 로케이션의 요청이 가장 가까운 오리진 위치로 이동하는 경우 RTT는 더 짧아집니다. 그러나 요청이 오리진에서 지리적으로 멀리 떨어진 엣지 로케이션에서 온 경우 TTFB가 영향을 받습니다. RTT를 최적화하려면 사용자와 지리적으로 더 가까운 여러 리전에 오리진 서버를 복제합니다. 그런 다음 지연 시간 또는 지리적 위치에 따라 요청을 오리진 서버로 라우팅하도록 오리진 도메인 이름의 DNS를 설정합니다. Amazon Route 53을 DNS 공급자로 사용하는 경우 자세한 내용은 라우팅 정책 선택을 참조하세요.
  • CloudFront 자동 압축을 켜서 파일을 압축하고 다운로드 속도를 줄입니다. CloudFront 자동 압축에서 파일 형식을 지원하지 않는 경우 오리진에서 해당 파일을 미리 압축하고 Content-Encoding 헤더와 함께 제공합니다.
  • 오리진 지연 시간 지표를 활성화하여 오리진에서 CloudFront로의 지연 시간을 확인합니다. 참고: 표준 CloudWatch 요금이 적용됩니다.
  • CloudFront Origin Shield를 켭니다.
  • Server-Timing 헤더 기능이 켜져 있는 응답 헤더 정책을 추가합니다. 이 기능은 CloudFront와 오리진 간의 지연 시간에 영향을 주는 이벤트를 이해하는 데 도움이 될 수 있습니다.

관련 정보

CloudFront에서 느린 응답의 지연 시간을 줄이려면 어떻게 해야 하나요?

Amazon S3에서 호스팅되고 CloudFront를 통해 제공되는 정적 웹 사이트의 지연 시간 문제를 해결하려면 어떻게 해야 하나요?

CloudFront 웹 배포 지연 시간 문제를 진단하기 위해 AWS Support에 제출해야 하는 정보에는 어떤 것이 있나요?

API 게이트웨이에서 엣지 최적화 API 엔드포인트의 요청 지연 시간을 유발하는 원인을 확인하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음