CDN을 사용하여 페이지를 로드하는 방식과 그렇지 않은 방식의 차이점은 무엇이며, 어떤 종류의 제공업체(providers)를 사용하고 계신가요?
CDN을 사용할 때 로딩 시간이 훨씬 더 길어집니다. 제가 무언가를 잘못하고 있는 건지, 아니면 모르는 것이 있는 건가요? 혹시 제가 모르는 설정을 해야 하는 건가요?
CDN을 사용하여 페이지를 로드하는 방식과 그렇지 않은 방식의 차이점은 무엇이며, 어떤 종류의 제공업체(providers)를 사용하고 계신가요?
CDN을 사용할 때 로딩 시간이 훨씬 더 길어집니다. 제가 무언가를 잘못하고 있는 건지, 아니면 모르는 것이 있는 건가요? 혹시 제가 모르는 설정을 해야 하는 건가요?
CDN은 리소스가 캐시될 때까지 느릴 수 있습니다. 테스트를 실행하기 전에 잠시 기다려 주세요.
음, 첫 번째 단서… 덕분에.
조금. 얼마나? 며칠, 몇 주를 말하는 건가요?
HTTPS로 페이로드를 강제해야 할까요, 아니면 HTTP로 해야 할까요? 로딩에 차이가 있어서요. 페이지가 전부 로딩되는지, 아니면 원래의 자바스크립트가 로딩되지 않은 것처럼 보이는지에 따라 달라지는 건가요??
시간 범위는 사용자가 사이트와 어떻게 상호작용하는지에 따라 달라집니다. 가장 많이 다운로드된 자산은 CDN 캐시에 로드되며, CDN 서버가 원본 서버보다 사용자에게 더 가까울 경우 더 빠릅니다.
데이터 센터가 사용자에게 더 가깝고 CDN 서버가 1,000km 떨어져 있다면, 항상 더 느려집니다. CDN의 아이디어는 지리적으로 다양한 사용자에게 더 나은 서비스를 제공하는 것이지, 중앙 집중식 방문의 속도를 높이는 것이 아닙니다.
하지만 app.yml 파일에 CDN 주소를 추가한 상황에서 우리가 이야기하는 상황인지 아닌지 궁금합니다.
그리고 CDN 주소에 서브도메인을 사용하는 이유는 무엇인가요? 예를 들어, DISCOURSE_CDN_URL: //637763234.cdn-provider.com으로 설정할 수 있는데, 왜 discourse-cdn.example.com으로 설정해야 하는 것일까요??
네, 알아요. 하지만 저는 세계 각지에서 다양한 테스트 도구를 사용해 확인하고 있습니다. 그리고 CDN은 항상 더 느립니다!
정확히 어떤 경로에 대한 TTFB를 말씀하시는 건가요?
정적 자산(예: JS 파일이나 JPG 사용자 업로드)의 TTFB는 CDN을 사용하면 항상 빠릅니다. 이는 여러 PoP(접속 지점)의 지연 시간만으로도 도움이 되기 때문입니다.
반면 동적 라우트의 TTFB는 비교할 의미가 없습니다. 우리의 DISCOURSE_CDN_URL은 본래 동적 라우트를 다루지 않기 때문입니다.
지금 보고 계신 것은 단순히 정상적인 변동 범위입니다. CDN은 Discourse 인스턴스의 루트 또는 기타 동적 라우트에서 첫 바이트까지의 시간(TTFB)에 영향을 미치지 않습니다. CDN은 정적 자산만 제공합니다.
그리고 이러한 리소스(정적 자산)를 S3에 저장하면 차이가 있나요?
아니요, 없습니다. CDN은 필요할 때 S3에서 해당 자산을 캐시합니다.
그것은 단순히 외형적인 주소일 뿐, 전혀 필요하지 않습니다.
CDN이 페이지 로딩 속도를 높여줄 거라고 기대했지만, 효과가 미미할 것 같습니다.
RAM과 CPU 리소스를 늘리는 것 외에, 세계 각지의 페이지 로딩 속도를 훨씬 더 효과적으로 높이는 다른 방법이 있을까요?
TTFB는 애플리케이션 서버가 200 응답을 보내는 데 걸리는 시간입니다. CDN은 자산만 제공하기 때문에 CDN을 사용하여 TTFB를 개선할 수 없습니다.
페이지는 빨라지지만, First Byte는 빨라지지 않습니다. 멀티미디어(이미지, PDF, 비디오)와 JS의 로딩 속도는 빨라집니다. 이를 통해 사이트의 반응성이 향상되지만, 모든 동적 콘텐츠는 여전히 중앙 서버에서 로드되어야 합니다.
예를 들어, 사용자의 아바타는 더 빠르게 표시되지만, 토픽 제목은 그렇지 않습니다.
Discourse는 JS 및 CSS 렌더링을 대기하기 때문에, CDN을 활용하면 여전히 페이지의 인터랙티브 속도를 더 빠르게 만들 수 있습니다.
이러한 유형의 분석을 수행하려면 단순히 lighthouse와 webpagetest를 실행한 후 결과를 선택하고 그것에 집착하는 것보다 더 많은 것이 필요합니다.
우선 순위가 이러한 도구에서 더 높은 점수를 받는 페이지를 만드는 것이라면, https://jekyllrb.com/와 같은 도구를 기반으로 한 블로그를 운영하는 것을 권장합니다.
그럼 저는 어떻게 분석해야 합니까?