문제를 해결하고 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-takentime-to-first-byte 필드를 확인합니다. CloudFront 액세스 로그는 클라이언트가 DNS 조회 프로세스와 TCP 및 SSL/TLS 협상에 소요한 시간을 기록하지 않습니다.

DNS 확인 지연 시간 줄이기

  • 클라이언트 측 DNS의 DNS 캐싱 시간을 늘립니다.
  • 로컬 DNS 서버에 있는 캐시의 **Time to Live(TTL)**를 늘립니다.
  • DNS 등록 기관/공급자의 DNS 레코드에서 TTL을 늘립니다.
  • 인터넷 서비스 공급자의 확인자 DNS 서버로 인해 지연 시간이 발생하는 경우 퍼블릭 DNS 서버 사용을 고려해 봅니다.

TCP 및 SSL/TLS의 지연 시간 줄이기 - 협상 시간

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

참고: example.com을 도메인 이름으로 바꾸십시오.

Time Taken for First Byte(TTFB) 및 Total Time Taken(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까지의 지연 시간을 확인합니다. 참고: 표준 클라우드워치 요금이 적용됩니다.
  • CloudFront Origin Shield를 활성화하십시오.
  • 서버 타이밍 헤더 기능이 활성화된 상태에서 응답 헤더 정책을 추가합니다. 이 기능은 CloudFront와 오리진 간의 지연 시간에 영향을 미치는 이벤트를 이해하는 데 도움이 될 수 있습니다.

관련 정보

CloudFront의 느린 응답으로 인한 지연 시간을 줄이려면 어떻게 해야 합니까?

CloudFront 웹 배포 지연 시간 문제를 진단하기 위해 AWS Support에 제공할 수 있는 정보는 무엇입니까?

AWS 공식
AWS 공식업데이트됨 7달 전