S3에서 병렬 다운로드를 최대화하는 방법

S3에서 병렬 다운로드를 최대화하는 방법

단일 페이지에 Amazon S3에서 로드할 이미지가 너무 많아서 모든 이미지를 로드하는 데 시간이 꽤 걸릴 때도 있습니다. 여러 하위 도메인에서 로드하기 위해 이미지를 분할하면 병렬 다운로드에 도움이 된다고 들었는데 실제 구현은 어떻게 됩니까? 정적, 이미지 등과 같은 하위 도메인으로 분할하는 것은 쉽습니다. 100개의 이미지를 로드하려면 10개의 하위 도메인(image1, image2...)을 만들어야 합니까? 아니면 영리한 방법이 있나요?

(그런데 Memcache를 사용하여 S3 이미지를 캐시하는 것을 고려하고 있습니다. 이것이 가능한지 확실하지 않습니다. 추가 의견을 보내주시면 감사하겠습니다. 정말 감사합니다!

답변1

나는 귀하의 상태에 확실히 도움이 될 수 있는 포인트별로 답변을 정렬하려고 노력할 것입니다.

  • 정적 콘텐츠에 관해 이야기할 때 Nginx를 역방향 프록시로 사용하여 정적 콘텐츠를 서버에 제공하는 것이 좋습니다. 다운로드 속도가 느린 이유는 Apache의 동시 연결 제한에 도달했기 때문일 수 있습니다.
  • 서로 다른 도메인이나 다중 하위 도메인을 사용하면 브라우저 자체의 범위에 도움이 될 수 있지만, 반면에 하위 도메인이 더 많은 DNS 확인 요청을 추가하게 되므로 페이지의 전체 글로벌 속도와 순위에 영향을 미칠 수 있습니다. 물건.
  • 다음과 같은 사이트를 살펴보십시오. Cloudflare.com에는 혜택을 누릴 수 있는 아주 좋은 무료 서비스가 있습니다.
  • 브라우저 캐싱 헤더를 활용하면 콘텐츠가 동적으로 변경되지 않는 경우 큰 도움이 될 수 있습니다.
  • 정적 스크립트(예: CSS, JS)를 항상 최상의 수준으로 축소하도록 노력하세요.
  • 다음과 같은 서비스를 사용해 보세요.http://tools.pingdom.com/fpt/그리고http://gtmetrix.com/더 나은 결과를 위한 귀중한 힌트 외에도 페이지 로딩 성능에 대한 매우 가치 있는 세부 정보를 제공할 수 있기 때문입니다.
  • 페이지에서 생성되는 요청을 최소화하세요(예: 더 적은 수의 사진에 다양한 스타일이나 레이아웃 사진을 결합하고 CSS로 제어).

흠.. 제가 염두에 두었던 것이 바로 이것이었습니다.

답변2

얻을 수 있는 가장 큰 속도 향상은 Amazon의 CDN인 CloudFront로 이동하는 것입니다. CloudFront는 S3 앞에 위치하여 사용자의 작업 속도를 극적으로 향상시킬 수 있습니다.

그런 다음 원하는 경우 모두 동일한 S3 버킷을 가리키는 여러 CloudFront 하위 도메인을 만든 다음 이미지에 무작위로 할당하여 병렬로 로드할 수 있습니다(기본적으로 image1, image2 아이디어).

답변3

여러 CNAME에 이미지를 분할하는 것이 좋은 아이디어이며 Google의 모범 사례에 가장 잘 설명되어 있습니다.https://developers.google.com/speed/docs/best-practices/rtt#ParallelizeDownloads

관련 정보