AWS 가 제공하는 관리형 CDN 서비스
정적 컨텐츠란 무엇인가?
동적으로 변경되지 않는 것
이미지, HTML, File, Video
#### 유즈 케이스
- Image / Video / File (PDF 등)
- Web
- WAS (Web Application Server)
- JSP / PHP
- 서버에서 웹 페이지를 전부 렌더링해서 클라에 전달해주는거
#### Static Web
- Client-side Rendering
- API Server의 유행
- 각 클라이언트에서 동일한 API와 통신
- Static Web
- HTML / CSS / JS / Image / Fonts
- 웹브라우저
- 모바일
- 모바일 웹 브라우저
- 네이티브앱 웹뷰
- 가장 최적화해서 전달할 수 있는 방법 CDN
### AWS 케이스
- S3 에다가 웹 스태틱 파일들을 저장
- CloudFront를 통해서 서빙
### SSR (Server-side Rendering)
- 시나리오에 따라 캐싱을 적용할 수 있는 부분이 있겠죠
- 예시 시나리오
- GitHub My Profile 을 SSR로 구현해보자
- example.com/profile
- 캐싱을 할 때 캐싱 키를 설정할 수 있음
- 캐싱 키로 user-id 를 잡는거 (cookie, url path, query parameter, 어딘가)
데이터가 최신 데이터가 아닐 수 있음
왜 하지?
딱히 데이터의 정확도가 중요하지 않으나 성능이 중요할 때
캐싱의 TTL (Time-to-live)
1H 1시간 뒤에 Cache Miss가 나고 Origin 데이터를 가져온다.
#### 유즈케이스
- Blog Post API
- `GET /api/posts` Post JSON 응답
- 요구사항
- 대상이 글로벌
- 속도가 빨랐으면 좋겠음
- 포스팅이 올라가자 마자 보이지 않아도 됨
- 설계
- Origin
- Blog API
- Cache TTL: 6H (하루에 4번 갱신)
- 주식 / Crypto Currency
- Ticker
- 실시간 시세
- CDN을 붙이는데 Cache TTL: 1S / 0.1S
캐싱 목적으로만 존재하는 기능 제한적인 서버들
당연히 이것도 데이터센터에 존재하기는 하는데, AWS거가 아니더라도 전세계 데이터 센터 내에 엣지로케이션 목적으로 서버 임대해서 캐싱 제공
vs Data Center
AWS 기준 데이터 센터(AZ)는 현재 전세계적으로 105개가 존재
### Edge Location은 2023년 7월 기준 450개 이상의 엣지 로케이션 존재
- Edge Location: 단기 캐싱을 통해 사용자 요청에 대한 빠른 응답 제공.
- Regional Edge Cache: 장기 캐싱을 통해 Origin 서버로의 요청 빈도를 줄이고, Edge Location의 캐싱 효율성을 높임.
L1, L2캐시와 같은 방식?
결국 요청을 보내면 origin 까지 와야하는게 아닌가요? -=> 공부가 필요! 캐시에 대해서 지식이 너무 없다!
접근 경로에 따라서 다른 Origin으로 연결시킴
Behavior 마다 정책을 다르게 가져갈 수 있어요
### 캐싱을 어떻게 할 것인가
- Origin Request를 어떻게 보낼 것인가
- Origin에서 온 Response를 어떻게 처리할 것인가
- Default Behavior
- 다른 Behavior 규칙에 매칭되지 않으면 마지막에 매칭되서 실행되는거