AWS_FAQ

Cloudfront 콘텐츠 갱신 방법

2015.09.13 16:51

호스트웨이 조회 수:4143



cloudfront 배포되는 파일의 캐시는 기본 24시간 유지
origin http header cache-control을 이용 캐시가 유지되는 시간을 설정 가능

캐시가 만료되기 전 파일의 내용을 갱신하고자 할 때
invalication(무효화) 기능으로 edge location에 저장된 파일의 캐시를 삭제 할 수 있음
캐기사 삭제되면 사용자가 해당 파일을 요청하면 edge 서버는 orgin에서 새파일을 가져오므로
파일 내용을 갱신 할 수 있게 됨.

콘텐츠 갱신 시나오리
1. 오리진 서버(S3,elb)에 파일을 배포한다(여기서 배포방법은 생략)
2. 웹브라우저를 통해 내용이 변경되었는지 확인
3. cloudfront 무효화 방법은 3가지 방법이 있습니다.
 3.1 cloudfront consle 이용
 3.2 써드파티 tool을 이용
 http://s3browser.com/cloudfront-invalidation.php
 http://www.cdnplanet.com/tools/cloudfront-purge-tool/
 3.3 cli tool을 이용

4.여기 3.3 cli를 이용한 예제

cloudfront 명령을 사용 할수 있도록 활성화
aws configure set preview.cloudfront true

create-invalidation 명령을 json을 준비하고 실행

무효화 사용 옵션
aws cloudfront create-invalidation --generate-cli-skeleton { "DistributionId": "", "InvalidationBatch": { "Paths": { "Quantity": 0, "Items": [ ""]} "CallerReference" : ""}}

DistributionId : CloudFront의 Distribution Id
Quantity : Invalidation 파일 수
Items : Invalidation 파일 경로 (하단 무효화 경로 참조)
CallerReference : 문자열

json 파일 정보 추가
cat ./cfinsource.json { "DistributionId": "DOXA11XXXXXXXX", "InvalidationBatch": { "Paths": { "Quantity"1 "Items": "/test/test1.html"]} "CallerReference ":"20150913112801 "}}

aws cloudfront create-invalidation --cli-input-json file : //cfinsource.json { "Invalidation": { "Status": "InProgress", "InvalidationBatch": { "Paths": { "Items": " /test/text1.html ","Quantity ": 1}"CallerReference ":"20150913012r01 "},"Id ":"IEXXXXXXXXXX ","CreateTime ":"2015-09-13T12 : 37 : 15.860Z "} "Location": "https://cloudfront.amazonaws.com/2015-09-13/distribution/DOXA11XXXXXXXX/invalidation/EE1FUMTBHGHEM"}



http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html


참고

무효화 경로
이 경로는 배포에 상대적입니다. 선행 /(슬래시) 사용은 선택 사항입니다. 예를 들어, http://d111111abcdef8.cloudfront.net/images/image2.jpg의 객체를 무효화하려면 다음과 같이 지정할 수 있습니다.

/images/image2.jpg

또는

images/image2.jpg

또한 * 와일드카드를 사용하여 여러 객체를 동시에 무효화할 수도 있습니다. *는 0개 이상의 문자로 대체되며 무효화 경로의 마지막 문자여야 합니다. 예:


•특정 디렉터리의 모든 객체를 무효화하려면

/directory-path/*


•특정 디렉터리와 그 하위 디렉터리 전체, 디렉터리와 하위 디렉터리에 들어 있는 모든 객체를 무효화하려면

/directory-path*


•logo.jpg, logo.png, log.gif와 같이 같은 이름에 다른 파일 이름 확장명을 지닌 모든 파일을 무효화하려면

/directory-path/file-name*


•특정 디렉터리의 전체 파일 중 파일 이름이 같은 문자로 시작하는 파일(예: HLS 포맷 비디오용 파일 전체)을 무효화하려면

/directory-path/initial-characters-in-file-name*


•쿼리 문자열 파라미터에 따라 캐싱하도록 CloudFront를 구성할 때 각 버전의 객체를 무효화하려는 경우

/directory-path/file-name.file-name-extension*


•특정 배포의 모든 객체를 무효화하려면

/*

경로의 최대 길이는 4,000자입니다.

Important

객체 경로를 신중하게 지정합니다. 무효화 요청을 시작한 후에는 취소할 수 없습니다.


번호 제목 글쓴이 날짜 조회 수
31 AWS Linux Bastion instance SSH Tunneling 사용 방법 file 호스트웨이 2016.06.01 2804
30 AWS ELB TCP 적용 방법 호스트웨이 2016.06.01 1716
29 EC2 Type 별 EIP를 몇개까지 할당 할 수 있나? 호스트웨이 2016.04.28 2418
28 T2 instance 특징은 무엇인가요? 호스트웨이 2016.04.28 2068
27 Sub 도메인 확장 호스트웨이 2016.04.27 1293
26 S3 성능 고려 사항 호스트웨이 2016.04.27 1353
25 AWS를 직접 사용하는 것과 호스트웨이를 통했을 때의 차이점은 무엇인가요? 호스트웨이 2015.10.26 2444
24 sub domain route53 으로 위임 호스트웨이 2015.09.25 2488
23 AWS 서비스 갯수 제한 해제. 호스트웨이 2015.09.24 3851
22 WEB 서비스 ELB 사용 시, Health check 설정 방법(권장) 호스트웨이 2015.09.22 3182
21 AWS key 파일 변환 (pem.key -> ppk.key) 호스트웨이 2015.09.22 2229
20 S3 DNS CNAME 설정 주의 사항 호스트웨이 2015.09.15 2824
19 AWS Lamda 이용하여 cron 처럼 사용 file 호스트웨이 2015.09.13 1985
18 Linux AWS CLI 환경 구성 호스트웨이 2015.09.13 1890
17 AWS EC2 instance 시동시 cloud-init가 hostname을 IP 주소로 설정 호스트웨이 2015.09.13 2957
16 AWS divice farm 지원 단말기 목록 검색 호스트웨이 2015.09.13 1444
15 AWS S3 파일 타임스템프 확인 호스트웨이 2015.09.13 1737
14 aws cli preview 기능 사용 호스트웨이 2015.09.13 1784
» Cloudfront 콘텐츠 갱신 방법 호스트웨이 2015.09.13 4143
12 s3cmd multipart uploads 호스트웨이 2015.09.11 1455