목차
cloudfront에서 자동으로 압축 설정을 할 수가 있다.
방법
cloudfront의 distribution을 선택하고 들어가서 압축하고 싶은 behavior 를 edit 하고 들어가면 위같은 화면 이 나오는데
compress objects automatically 항목을 yes로 선택하면 된다.
하지만 위에 만 하면 되는게 아니라 다음 것도 설정해야한다.
- 캐싱 설정(disable로 되어 있으면 안된다.)
- TTL 1초 이상으로 설정
제한사항
요청에는 HTTP 1.0을 사용합니다
CloudFront에 대한 요청이 HTTP 1.0을 사용하는 경우 CloudFront는 Accept-Encoding 헤더를 제거하고 응답에서 객체를 압축하지 않습니다.
Accept-Encoding 요청 헤더
만약 뷰어 요청에 Accept-Encoding 헤더가 누락되었거나 gzip 또는br를 값으로 포함하지 않은 경우 CloudFront는 응답에서 객체를 압축하지 않습니다. Accept-Encoding 헤더에 deflate와 같은 추가 값이 포함된 경우, CloudFront에서는 오리진 서버에 요청을 전달하기 전에 이를 제거합니다.
CloudFront가 객체를 압축하도록 구성된 경우, 자동으로 캐시 키와 오리진 요청에 Accept-Encoding 헤더를 추가합니다. 그러나 Accept-Encoding 헤더가 캐시 정책(또는 레거시 캐시 설정)에 명시적으로 나열된 경우 CloudFront는 응답에서 객체를 압축하지 않습니다.
동적 콘텐츠
CloudFront가 동적 콘텐츠를 항상 압축하는 것은 아닙니다. 동적 콘텐츠에 대한 응답이 압축되는 경우도 있고 그렇지 않은 경우도 있습니다.
CloudFront가 객체를 압축하도록 구성한 경우 콘텐츠는 이미 캐싱됩니다.
CloudFront는 오리진에서 객체를 가져올 때 객체를 압축합니다. CloudFront가 객체를 압축하도록 구성한 경우 CloudFront는 이미 엣지 로케이션에 캐싱된 객체는 압축하지 않습니다. 또한 엣지 로케이션에서 캐시된 객체가 만료되고 CloudFront가 오리진에 객체에 대한 다른 요청을 전달할 때, CloudFront는 오리진이 HTTP 상태 코드 304를 반환하는 경우 객체를 압축하지 않기 때문에 엣지 로케이션에는 이미 최신 버전의 객체가 포함되어 있습니다. CloudFront로 이미 엣지 로케이션에 캐싱된 객체를 압축하려는 경우 해당 객체를 무효화해야 합니다. 자세한 내용은 파일 무효화 섹션을 참조하세요.
오리진이 이미 객체를 압축하도록 구성된 경우
CloudFront가 객체를 압축하도록 구성하고 오리진에서도 객체를 압축한 경우 오리진에는 CloudFront에 객체가 이미 압축되었음을 나타내는 Content-Encoding 헤더를 포함해야 합니다. 오리진에서의 응답에 Content-Encoding 헤더가 포함되어 있는 경우, CloudFront는 헤더 값과 관계없이 객체를 압축하지 않습니다. CloudFront가 뷰어로 응답을 보내고 엣지 로케이션에서 객체를 캐싱합니다.
CloudFront가 압축하는 파일 형식
CloudFront에서 압축하는 파일 형식의 전체 목록은 CloudFront가 압축하는 파일 형식 단원을 참조하세요.
CloudFront가 압축하는 객체 크기
CloudFront는 1,000바이트~10,000,000바이트 크기의 객체를 압축합니다.
Content-Length 헤더
오리진에는 응답의 Content-Length 헤더를 포함하 여 객체의 크기가 CloudFront가 압축하는 범위에 있는지 CloudFront에서 확인할 수 있도록 해야 합니다. 만약 Content-Length 헤더가 누락되거나, 잘못된 값을 포함하거나, CloudFront Front가 압축하는 크기 범위를 벗어나는 값을 포함하는 경우 CloudFront는 객체를 압축하지 않습니다.
응답의 HTTP 상태 코드
CloudFront는 응답의 HTTP 상태 코드가 200, 403 또는404인 경우에만 객체를 압축합니다.
응답에 본문 없음
오리진의 HTTP 응답에 본문이 없으면 CloudFront가 압축할 수 있는 것은 없습니다.
ETag 헤더
CloudFront는 때때로 객체를 압축 할 때 HTTP 응답에 ETag 헤더를 수정합니다. 자세한 정보는 ETag 헤더 변환을 참조하십시오.
CloudFront의 압축 건너뛰기
CloudFront는 가능한 한 객체를 압축합니다. 하지만 드물게 CloudFront가 압축을 건너뛰기도 합니다. CloudFront는 호스트 용량을 비롯한 다양한 요인을 기반으로 이러한 결정을 내립니다. CloudFront는 객체에 대한 압축을 건너뛴 경우, 압축되지 않은 객체를 캐시하고 객체가 만료되거나 제거되거나 무효화될 때까지 뷰어에 계속 제공합니다.
Reference
https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html
'CLOUD > AWS' 카테고리의 다른 글
AWS cli 출력방식 변경하기 (0) | 2023.05.22 |
---|---|
AWS Route53 private으로 외부 네트워크 연결시 서비스 선택 (0) | 2023.03.24 |
AWS VPC peering 연결 (0) | 2023.02.24 |
AWS opensearch 최대 메모리 사용 률(SysMemoryUtilization) 90% 이상 넘는 현상 (0) | 2023.02.15 |
AWS S3 보안구성 ACL, public Access 업데이트 (2023.4) (0) | 2023.02.13 |
댓글