AWS Elemental MediaStore와 HTTP 캐시의 상호 작용 - AWS엘레멘탈 MediaStore

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Elemental MediaStore와 HTTP 캐시의 상호 작용

AWS Elemental MediaStore에서는 Amazon CloudFront와 같은 콘텐츠 전송 네트워크(CDN)를 통해 객체를 정확하고 효율적으로 캐싱할 수 있도록 객체를 저장합니다. 최종 사용자 또는 CDN이 MediaStore에서 개체를 검색할 때 서비스는 개체의 캐싱 동작에 영향을 주는 HTTP 헤더를 반환합니다. HTTP 1.1 캐싱 동작에 대한 표준은 RFC2616 섹션 13에서 찾을 수 있습니다. 이러한 헤더는 다음과 같습니다.

  • ETag(사용자 지정할 수 없음) - 엔터티 태그 헤더는 MediaStore에서 보내는 응답의 고유 식별자입니다. 표준을 준수하는 CDN 및 웹 브라우저는 이 태그를 객체를 캐시하는 키로 사용합니다. MediaStore는 각 ETag 객체를 업로드할 때 각 객체에 대해 자동으로 생성합니다. 객체의 세부 정보를 보고 ETag 값을 결정할 수 있습니다.

  • Last-Modified(사용자 지정할 수 없음) - 이 헤더의 값은 객체가 수정된 날짜 및 시간을 나타냅니다. MediaStore는 객체가 업로드될 때 이 값을 자동으로 생성합니다.

  • Cache-Control( 사용자 지정 가능) - 이 헤더의 값은 CDN이 객체가 수정되었는지 확인하기 전에 개체를 캐싱해야 하는 기간을 제어합니다. CLI 또는 API를 사용하여 MediaStore 컨테이너에 객체를 업로드할 때 이 헤더를 임의의 값으로 설정할 수 있습니다. 전체 유효한 값은 HTTP/1.1 설명서에 기술되어 있습니다. 객체를 업로드할 때 이 값을 설정하지 않으면 MediaStore에서는 객체를 검색할 때 이 헤더를 반환하지 않습니다.

    Cache-Control 헤더의 일반적인 사용 사례는 개체를 캐싱하는 기간을 지정하는 것입니다. 예를 들어, 인코더에서 자주 덮어쓰는 비디오 매니페스트 파일이 있다고 가정합니다. max-age를 10으로 설정하여 객체가 10초 동안만 캐싱되어야 함을 나타낼 수 있습니다. 또는 덮어쓰지 않는 저장된 비디오 세그먼트가 있다고 가정합니다. 이 객체에 대한 max-age를 31536000으로 설정하여 약 1년 동안 캐싱할 수 있습니다.

조건부 요청

MediaStore에 대한 조건부 요청

MediaStore는 조건부 요청(RFC7232의 설명에 따라 If-None-MatchIf-Modified-Since 등의 요청 헤더 사용)과 무조건적인 요청에 동일하게 응답합니다. 즉, MediaStore에 유효한 GetObject 요청이 접수되면 클라이언트가 이미 개체를 가지고 있더라도 서비스는 항상 객체를 반환합니다.

CDN에 대한 조건부 요청

MediaStore를 대신하여 콘텐츠를 제공하는 CDN은 RFC7232 섹션 4.1에 설명된 대로 304 Not Modified을 반환하여 조건부 요청을 처리할 수 있습니다. 이는 요청자가 조건부 요청과 일치하는 객체를 이미 가지고 있기 때문에 전체 객체 컨텐츠를 전송할 필요가 없음을 나타냅니다.

CDN(및 HTTP/1.1을 준수하는 기타 캐시)은 오리진 서버에서 전달하는 ETagCache-Control 헤더를 기반으로 이러한 결정을 내립니다. 반복적으로 검색된 객체에 대한 업데이트를 위해 CDN이 MediaStore 오리진 서버를 쿼리하는 빈도를 제어하려면 객체를 MediaStore에 업로드할 때 해당 객체에 대한 Cache-Control 헤더를 설정합니다.