일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다대일
- 연결리스트
- dfs
- 이진탐색
- CHECK OPTION
- 지연로딩
- 즉시로딩
- PS
- execute
- shared lock
- fetch
- JPQL
- 낙관적락
- 다대다
- BOJ
- 스프링 폼
- 스토어드 프로시저
- 동적sql
- exclusive lock
- FetchType
- SQL프로그래밍
- 유니크제약조건
- 연관관계
- eager
- querydsl
- 데코레이터
- 힙
- 일대다
- 백트래킹
- 비관적락
- Today
- Total
흰 스타렉스에서 내가 내리지
CF(4): CloudFront Behavior (동작) 본문
# Cache Behavior
- CloudFront 의 요청이 어떻게 처리되는지 정의하는 다양한 설정의 모음
- 경로 패턴 단위로 Behavior 구성
- 예 : files/* , files/*.png , */png
- 경로 패턴 목록 중 처음으로 매칭된 패턴의 동작을 적용.
- 신규 생성 시 * 로 고정
- 주요 구성 내용
- Origin
- 뷰어 설정
- Cache Policy, Viewer Response Policy, Lambda@EDGE 연결
# Viewer 설정
- Viewer 프로토콜
- CloudFront 에 접근하는 프로토콜
- HTTP and HTTPS
- Redirect HTTP to HTTPS
- HTTPS only
- HTTP Method
- GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
- 뷰어 액세스를 제한 : Presigned URL / Presigned Cookie 로만 접근 가능하도록 할지 여부
- 허가된 사용자들에게만 콘텐츠를 제공하고 싶을 때 사용
# Policy 설정
- Cache Policy
- 어떤 cache-key (HTTP Header, 쿠키, querystring 등) 으로 컨텐츠를 캐시하는지
- 얼마나 오래 캐시하는지 (TTL)
- 컨텐츠 압축 저장 관련 설정
- Origin Request Policy
- Origin 에 컨텐츠를 요청할 때 어떤 내용을 전달할 것이지 (HTTP Header, querystring 등)
- Cache Key 로 사용할지 여부와 독립적으로 설정 가능.
- Origin 에 넘기긴 하지만 Cache Key 로 쓰고 싶지 않을 때
- Response Header Policy
- 응답 과정에서 어떤 HTTP Header 를 제거하거나 더할지 설정
# CloudFront 의 Cache Key
url path 와 color 라는 querystring 을 cache key 로 쓰겠다고 설정을 해 놓은 경우를 보자.
뷰어가 user_id 도 같이 query 에 담아서 보낸다.
origin 에서는 user_id 를 로깅 용도로만 사용할 뿐, 이미지에 대한 차이는 없다.
그러나 문제는, CloudFront 에서는 별도로 Cache Key 로 지정하지 않은 것들은 다 날려버리고 Origin 에 전달한다.
결과적으로, user_id querystring 은 Origin 에 전달되지 않는다.
그렇다면, Cache key 로 지정하고 싶지는 않지만, Origin 에 전달하고 싶을 때는 어떻게 할까?
→ user_id 를 Origin Request Policy 에 추가해주면 된다.
# Response Headers Policy
예를 들어, 뷰어가 S3 버킷에 이미지 객체를 요청을 한다.
객체에 Body 이외의 메타데이터가 있을 때, 뷰어에 응답할 때 이 메타데이터가 그대로 헤더에 들어간다.
이 메타데이터에는 민감한 정보까지 담겨있다.
이 때, Response Headers Policy 를 설정하여 어떤 정보들을 제외하고 포함할지 지정할 수 있다.
- 최대 10개까지 가능하고, 이 이상으로 설정하고 싶으면 Lambda@Edge 를 사용해야 한다.
- Authorization header 만 따로 불가능
# 기타 설정
- Field Level Encryption : Cloudfront 의 컨텐츠를 보호하는 방법
- Lambda@Edge
# CloudFront 콘솔에서 Behavior(동작) 살펴보기
경로 패턴의 기본값으로 와일드카드(*)로 되어 있다.
`동작 생성` 버튼을 눌러 살펴보도록 하자.
경로 패턴을 지정할 수 있는데, js파일, jpg 파일 등 여러 경로들이 프리셋으로 있고, 원한다면 커스텀으로 만들 수 있다.
경로 패턴에 따른 원본을 선택할 수 있다.
내가 만든 s3 버킷을 등록해본다.
뷰어 프로토콜, HTTP Method 등을 설정할 수 있다.
뷰어 액세스 제한은 presigned-url 과 presigned-cookie 를 어떻게 만들지에 대한 내용이다.
Cache Policy 와 Origin Request Policy 를 선택할 수 있다.
이 2가지에 대한 개념은 바로 위에서 설명했다. 까먹었으면 스크롤을 올려보자.
`Create cache policy` 하이퍼링크를 통해 캐시 정책 생성을 할 수 있다.
minimum, maximum, default TTL 을 설정할 수 있다.
Cache key 를 설정할 수 있다. header, query string, cookie 를 설정할 수 있다.
Cache key 에 대한 역할 역시 이전 포스팅과 이곳에서 설명하였었다.
Response Headers Policy 를 설정할 수 있고, 이에 대한 개념 역시 위에서 설명하였다.
Lambda@Edge 를 설정할 수 있는데, 이는 따로 포스팅을 할 것이다.
'AWS' 카테고리의 다른 글
CF(6): CloudFront 컨텐츠 보호(1) (1) | 2024.10.26 |
---|---|
CF(5): CloudFront 파일 관리 (0) | 2024.10.26 |
CF(3): CloudFront Caching (캐싱) (1) | 2024.10.25 |
CF(2): CloudFront Origin (원본) (0) | 2024.10.25 |
CF(1): CDN 과 Amazon CloudFront 소개 (0) | 2024.10.25 |