자주 액세스하지 않는 파일에 대해 AWS CloudFront * 증가 *로드 시간이 필요합니까?


9

CDN을 처음 사용하고 CloudFront를 실험하고 있습니다. 나는 모든 것을 설정했고 모두 잘 작동하는 것으로 보입니다. 페이지에서 정적 이미지를 생성하고 CloudFront 배포를 통해 액세스 할 수 있습니다. 사용자 정의 원점을 사용하고 있습니다 (예 : s3 버킷이 아님).

그래도 성능 관점에서 나 빠질까 걱정됩니다. CDN이 있거나없는 동일한 20 개 정도의 이미지를로드하는 테스트 페이지가 있습니다. Firebug의 넷 패널을 살펴보면이 페이지를 처음로드 할 때 원본 서버에서 직접로드 된 이미지가 훨씬 빨라집니다. 후속 페이지로드시 CDN의 이점이 분명해집니다. 3-5 회 새로 고친 후 CDN이 원본 서버보다 더 잘 수행됩니다.

그래서 우리 사이트의 인기있는 페이지에서 항상 인기를 얻고있는 것을 볼 수 있습니다. 시애틀 (아마존 코너)에 있고 서버가 CA에 있기 때문에 이점을 기대해야합니다.

문제는 몇 분 동안 페이지를 떠났다가 다시로드하면 CloudFront가 원래 서버보다 나 빠지고 다시 사각형으로 돌아갑니다. 이것이 예상됩니까? CDN "캐시"에서 너무 빨리 빠지는가?

설정에서 무언가 성능이 저하 될 수 있습니까? 아니면 CDN이 현재 평균 몇 초마다 액세스되는 컨텐츠에 대해서만 순전히 긍정적일 것입니까?

(SO의 처리 시간에 의해 영원히 망쳐 졌기 때문에 AWS 포럼에서 교차 게시)

최신 정보:

CloudFront 성능에 대해 궁금한 점이 있으면 아래에 두 가지 유용한 답변이 있습니다. 최근에 특정 문제에 대한 설명이 언급되지 않은 것을 발견했습니다. 나는 감독으로서 5 분에 TTL을 떠났다. 또한 사용자 지정 오리진을 사용하고 있기 때문에 신뢰할 수있는 네임 서버로의 추가 왕복이있어 실제 Amazon CloudFront 도메인으로이를 해결합니다. 이제 TTL 설정이 12 시간으로 돌아 왔으므로 긴로드가 거의 발생하지 않는 것 같습니다.


예. Amazon이 여러 계층의 DNS 분석으로 구현 한 방식으로 인해 CloudFront가 가장 느린 CDN 중 하나이기 때문에 CloudFront가 빠른 서버로 직접 이동하는 것보다 느릴 수 있습니다. differnet에서 일부 벤치 마크를 실행하십시오. 전 세계에 위치하여 자신에게 적합한 지 결정하십시오 . 테스트 에는 webpagetest.org 를 사용 하십시오 .
Jesper M

답변:


5

Cloudfront는 답장에 "X-Cache : Hit from cloudfront"와 같은 답글에 헤더를 설정합니다. 파일이 지정된 노드의 캐시에 없으면 "Miss"라고 표시 될 것입니다.

파일이 인기가 없을 수도 있으므로 24 시간이 지나지 않아도 인기있는 콘텐츠로 CloudFront의 캐시에서 파일을 추출 할 수 있습니다. 특정 CloudFront 노드 내부의 IO 과부하 또는 기타 상황으로 인해 액세스 속도가 느려질 수도 있습니다. Cloudfront는 Akamai 또는 LimeLight에 비해 매우 저렴합니다. 최악의 성능과 보장 된 서비스 수준은 더 비싼 플레이어를 사용하는 이유 중 두 가지입니다.

프로덕션에서 인기있는 파일 하나를 클라우드 프론트에 넣고 테스트를 한 다음 주기적 테스트를 사용하여 CloudFront가 적중을 나타내는 지 확인합니다 (총 트랜잭션 시간도 기록함).


나는 내가 본 perf 문제에 대한 또 다른 잠재적 인 설명으로 질문을 업데이트했습니다. 즉, TTL 설정을 5 분의 낮은 설정으로 유지했지만 12 시간으로 다시 전환 할 때 나는 이것이 보이지 않는다고 생각합니다 가끔 성능 문제가 자주 발생합니다.
그렉

7

것이 가능하다. 그러나 CDN의 한 가지 목적은 확장 성입니다. 한 번에 100 회 방문하거나 한 번에 100 만 번 방문하면 CDN이 동일한 성능을 발휘할 것으로 예상 할 수 있습니다.

귀하의 설정에 관해서는 귀하가 제공 한 정보로 알 수있는 것이 없지만 위의 요점은 CDN을 매우 가치있게 만드는 것이라고 생각합니다. 트래픽이 많지 않은 사이트를 만드는 경우 CDN을 사용하지 않는 것이 좋습니다. 그러나 미디어 제공을 다른 서버로 전달하기 때문에 트래픽이 많은 경우 CDN은 웹 서버에 더 적은 부하를 제공합니다. 마지막으로, 좋은 CDN (및 아마존)은 광범위한 네트워크를 사용하여 요청자와 가장 가까운 위치에서 콘텐츠를 제공합니다. 대부분의 경우 요청자의 ISP에서 콘텐츠를 제공 할 수 있으며 이는 매우 빠른로드 시간을 의미합니다.

희망이 도움이됩니다.


고마워 제시-매우 도움이되었습니다. 스케일링에 관한 요점을 잘 알고 있습니다. 그리고 큰 차이를 만들 수있는 충분한 트래픽이 있습니다. 그래도 캐싱 정책을 알고 싶습니다. CDN을 설정하는 방법과 그 특성에 대한 정보는 거의 없습니다. 예를 들어, 자주 액세스하지 않는 오래된 컨텐츠를 CDN에서 제외해야하는지 궁금합니다.
Greg

Greg-재정적 인 이유로 인해 콘텐츠를 제외한다는 주장은 보이지 않습니다. 그러나 Amazon에서 객체의 캐시 헤더를 제어 할 수 있습니다. 이것을
Jesse Bunch

그러면 일반 웹 사이트의 미디어에서와 마찬가지로 원거리 미래의 헤더를 지정할 수 있습니다.
Jesse Bunch

다시 감사합니다. 캐시 제어 링크는 s3이 아닌 사용자 지정 오리진 서버를 사용하기 때문에 내 상황과 관련이 없습니다. 그러나 주체가 적용되며 미래에 헤더 세트가 만료됩니다. 아마존의 문서 BTW는 콘텐츠가 24 시간 동안 캐시에 남아 있다고 말하지만 내 실험에 따르면 다른 결과가 나타납니다.
Greg

1

내가 오해 했니? 캐시 컨트롤이 에지 위치가 S3에서 다시로드되기 전에 에지 위치에있는 시간을 관리하지 않습니까? S3를 사용하든 자신의 원산지를 사용하든 상황과 관련이 있습니까? 아니?

아마존 자주 묻는 질문은 말한다 : "어떤 캐시 제어 헤더가 설정되어 있지 않은 경우 Q. 얼마나 아마존 CloudFront를가 기본적으로 가장자리 위치에서 내 파일을 보관하는 것, 그것보다 더 많은 요청을 수신 할 때마다 파일의 업데이트 된 버전에 대한 각 에지 위치 확인 이전 24 시간 후 해당 파일의 변경 사항을 오리진에서 확인했으며이를 "만료 기간"이라고합니다. 오리진에서 파일에 캐시 제어 헤더를 설정하여이 만료 기간을 1 시간 또는 원하는 시간만큼 설정할 수 있습니다 .Amazon CloudFront는 이러한 캐시 제어 헤더를 사용하여 파일이 자주 변경되지 않으면 만료 시간을 길게 설정하고 파일 업데이트를 관리 할 버전 관리 시스템을 구현하는 것이 가장 좋습니다. "

[마지막 문장은 "50 년으로 설정 한 후 파일을 변경하고 싶을 때 매우 운이 좋다"는 뜻이라고 생각합니다.]

정적 컨텐츠를 호스팅하는 CDN을 사용하는 것이 중요하지 않습니까? 그렇다면 하루보다 상당히 긴 TTL을 사용하는 것이 도움이됩니까? 사실상 모든 이미지 (모든 이미지 및 CSS)의 경우 Cache-Control = "max-age = 604800, public, must-revalidate"(예 : 1 주)를 사용합니다. 내 경험상 S3에 새 버전을 업로드하면 파일을 변경하는 데 최대 일주일이 걸립니다.

도움이 되었기를 바랍니다. [BTW : 좀 더 일반적인 관점에서, CDN이 여러분이 생각하는만큼 성능에 도움이되는지 궁금합니다. 전체 사이트 (CDN 포함)를 초고속 전용 서버로 옮길 예정입니다.]


캐시 제어가 컨텐츠가 가장자리에 유지되는 시간에 영향을주는 것이 맞습니다. TTL은 별개의 문제입니다. TTL은 도메인 이름에 할당 된 IP 주소의 캐싱을 제어합니다. 따라서 정적 파일이 에지에 캐시되는지 여부에 관계없이 서버가 파일의 URL을 처음 볼 때이 도메인의 IP 주소를 찾아야합니다. 1 일 TTL을 사용하면 주변 서버의 DNS 캐시에이 정보가있을 수 있습니다. TTL이 5 분이면 훨씬 덜 가능성이 있으며 내 오리진 서버로의 완전한 왕복이 필요합니다 (파일이 아니라 URL을 해결하기 위해).
Greg

고마워 나는 DNS TTL과 캐시 제어를 혼동하고 있었다 :)
Chris W

1

CDN을 사용해야하는 이유는

  • 정적 컨텐츠-드물게 또는 제어되는 업데이트
  • 전 세계에서 본
  • 자주 액세스

당사 웹 사이트는 귀하의 경우에 따라 드물게 액세스되지만 전 세계 웹 사이트를 요청하는 모니터링 서비스 설정이 있습니다. 따라서 CDN 캐시를 따뜻하게 유지합니다. 또한 간단한 사례이며 CDN 기능을 보여주는 사례를 공유하고 싶습니다.

더 많은 우리는 godaddy 서버에 대한 7 $ (서지 (surge)를 처리 할 수없는)과 달리 월 2.2 $의 요금을 기대하고 있습니다.

평균 페이지로드 시간

평균 페이지로드 시간 분배

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.