흰 스타렉스에서 내가 내리지

CloudFront: Cache Key 설정 시나리오 본문

AWS

CloudFront: Cache Key 설정 시나리오

주씨. 2024. 10. 27. 15:47
728x90

query string 으로 숫자가 넘어오면, 여기서 2를 곱해 응답해 주는 간단한 서버를 만들었다. 

value 라는 query string 이 넘어오지 않으면 Invalid input 을 응답하도록 했다.

 

그리고 이를 CloudFront 에 연결하였다. 

바로 요청해보자.

CDN 에서 cache key 를 설정하지 않았을 경우

??

왜일까?

Invalid input 이 떴다는 것은 query string 이 서버에 전달되지 않았다는 것을 뜻한다.

로그

그렇다. 역시나 query string 이 서버까지 도달하지 않았다. 

그럼 CloudFront 에서 quert string 을 버리고 서버에 요청을 한 것인가?

정답이다. 

 

CloudFront 에서는 별도로 Cache Key 로 지정하지 않은 것들은 다 날려버리고 Origin 에 전달한다.

 

아하! 그럼 이 value 라는 query string 을 cache key 로 지정하면 되겠군요!

CloudFront > 배포 > 동작 > 편집
CloudFront > 배포 > 동작 > 편집 > 캐시 키 > 쿼리문자열 > 허용 > 추가

이렇게 설정하면 CloudFront 는 value 라는 query string 을 서버에 잘 전달해야겠죠?

 

오 된다
로그

네 이제 CloudFront 가 query string 을 뒷단의 서버까지 잘 전달하여 적절한 응답을 잘 받아 왔습니다. 

이제 계속 새로고침해서 요청을 해도, 이 API 에 대한 응답은 CloudFront 캐시에 저장이 되어 있기 때문에 서버는 아무 요청을 받지 않아 로그도 찍히지 않습니다. 

 

 

그렇다면, Cache key 로 지정하고 싶지는 않지만, Origin 에 전달하고 싶을 때는 어떻게 할까?

 user_id 를 Origin Request Policy 에 추가해주면 된다.