일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- tensorflow
- angular
- opencv
- ECS
- 애자일
- javascript
- visualizing
- keras
- matplotlib
- instance
- AWS
- data analyze
- Project
- webcrawling
- 크롤링
- 다나와
- adaptive life cycle
- 자바스크립트
- Crawling
- python
- DANAWA
- analyzing
- Agile
- 프로젝트
- TypeScript
- pandas
- Method
- algorithm
- data
- Scrum
Archives
- Today
- Total
LiJell's 성장기
S3 Cache-Control 본문
반응형
max-age와 s-maxage는 HTTP Cache-Control 헤더에서 사용되는 지시어입니다. 이 지시어들은 리소스가 얼마 동안 캐시에 유지될 수 있는지를 초 단위로 지정합니다.
max-age
- max-age 지시어는 브라우저와 같은 개인(프라이빗) 캐시에 적용됩니다.
- 작동 방식: 이 지시어가 설정되면, 지정된 시간(초) 동안은 웹 서버에 새로운 요청을 보내지 않고 캐시에 저장된 데이터를 사용합니다.
- 예시
- max-age=3600은 브라우저가 해당 리소스를 1시간 동안 캐시해야 함을 의미합니다.
s-maxage
- s-maxage 지시어는 공유(셰어드) 캐시에 적용됩니다. 예를 들어, CDN과 같은 중간 캐시가 여기에 해당합니다.
- 작동 방식: s-maxage는 공유 캐시가 해당 리소스를 얼마나 오랫동안 캐싱해야 하는지 지정합니다.
- 예시
- s-maxage=2592000은 공유 캐시(CDN 등)가 해당 리소스를 약 1개월 동안 캐시해야 함을 의미합니다.
- 둘 다 사용할 경우
- max-age와 s-maxage가 동시에 존재할 경우, s-maxage는 공유 캐시에, max-age는 개인 캐시에 적용됩니다. 예를 들어, Cache-Control: max-age=3600, s-maxage=2592000 설정은 브라우저가 리소스를 1시간 동안 캐시하고, CDN이 리소스를 1개월 동안 캐시하도록 지시합니다.
적용 방법
- 기존에 존재하는 object 대상
- s3에서 object를 선택 >> action >> edit metadata >> s-maxage,max-age 설정
- 여러 object를 한번에 수정할 경우 aws cli를 이용하세요.
aws s3 cp s3://your-bucket/ s3://your-bucket/ --recursive --metadata-directive REPLACE --cache-control "s-maxage=xxxx"
- s3에서 object를 선택 >> action >> edit metadata >> s-maxage,max-age 설정
- 업로드 function에 적용
- AWS SDK를 이용하시면 putObject 옵션에서 Cache-Control value를 설정해주시면 됩니다.
- s3 sync 사용시
- 아래 이미지와 같은 방법으로 적용이 가능하며, 여러번 나눠서 진행 할 경우 중요도순으로 하는걸 추천드립니다.
- 아래 존재하는 options 중
--delete
와--metadata-directive REPLACE
옵션을 용도에 따라서 잘 사용하면 좋습니다.- 소스와 버킷에 모두 존재하는 파일들:
--metadata-directive REPLACE
덕분에 메타데이터가 교체됩니다. - 소스에만 존재하는 파일들: 이러한 파일들은 목적지로 복사되며, 메타데이터는
--metadata-directive REPLACE
에 따라 설정됩니다. - 버킷에만 존재하는 파일들: 이러한 파일들은
--delete
덕분에 삭제됩니다. 즉, 소스와 목적지를 동기화하면서 목적지에 있는 복사된 또는 기존 파일의 메타데이터를 교체하려면--metadata-directive REPLACE
와--delete
를 모두 사용하면 그 목적을 달성할 수 있고, 이 두 옵션은 서로 충돌하지 않습니다.
- 소스와 버킷에 모두 존재하는 파일들:
aws s3 sync ./ s3://${s3_web_bucket} --no-progress --delete --exclude "*" --include "*.html" --metadata-directive REPLACE --cache-control max-age=0,s-maxage=31536000
반응형
'Cloud' 카테고리의 다른 글
ECS EC2 Spot instance scaling 속도 개선 방법 (2) | 2023.12.29 |
---|---|
EC2 Auto Scaling Multiple Launch Templates (0) | 2023.12.29 |
ECS Speeding up deployments (0) | 2023.08.17 |
AWS Lambda@Edge (0) | 2023.08.06 |
웹 애플리케이션 서비스 개요 (0) | 2023.08.06 |
Comments