AWS_FAQ

Cloudfront 콘텐츠 갱신 방법

2015.09.13 16:51

호스트웨이 조회 수:1154



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

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


번호 제목 글쓴이 날짜 조회 수
51 AWS EC2 EBS 용량 줄이기/늘리기 - Snapshot 활용 file 호스트웨이관리자 2015.09.06 4546
50 ELB pre-warming 이란? 호스트웨이 2015.09.09 2388
» Cloudfront 콘텐츠 갱신 방법 호스트웨이 2015.09.13 1154
48 S3 bucket 마운트하기 호스트웨이 2015.09.04 1072
47 AWS EC2 instance 시동시 cloud-init가 hostname을 IP 주소로 설정 호스트웨이 2015.09.13 1023
46 aws s3 bucket size 확인 방법 호스트웨이 2015.09.11 979
45 S3 browser tool 호스트웨이 2015.09.11 936
44 aws key pair 등록 방법 호스트웨이 2015.09.07 902
43 WEB 서비스 ELB 사용 시, Health check 설정 방법(권장) 호스트웨이 2015.09.22 867
42 AWS 서비스 갯수 제한 해제. 호스트웨이 2015.09.24 849
41 AWS를 직접 사용하는 것과 호스트웨이를 통했을 때의 차이점은 무엇인가요? 호스트웨이 2015.10.26 786
40 AWS key 파일 변환 (pem.key -> ppk.key) 호스트웨이 2015.09.22 782
39 AWS EC2 Type 별 네트웍 성능 안내 호스트웨이 2017.03.22 650
38 EC2는 오토스케일링로 확장 가능한데, DB는 불가능한가? 호스트웨이 2015.09.10 649
37 sub domain route53 으로 위임 호스트웨이 2015.09.25 598
36 AWS Linux Bastion instance SSH Tunneling 사용 방법 file 호스트웨이 2016.06.01 595
35 S3 DNS CNAME 설정 주의 사항 호스트웨이 2015.09.15 591
34 AWS EC2 Instance 생성 후 접속 호스트웨이 2015.09.08 588
33 AWS Lamda 이용하여 cron 처럼 사용 file 호스트웨이 2015.09.13 554
32 RI 신청 가이드 file 호스트웨이 2016.11.29 503