뷰포트를 차지하는 가장 큰 콘텐츠(이미지 또는 텍스트 블록)의 렌더 시간을 측정합니다. 이를 이용해 주요 컨텐츠가 유저에게 보이는 시간을 알 수 있습니다.
| LCP time(in seconds) | Color-coding |
|---|---|
| 0-2.5 | Green(fast) |
| 2.5-4 | Orange(moderate) |
| Over 4 | Red(slow) |
CloudFront는 AWS에서 제공하는 글로벌 CDN 서비스로, 정적 자산(이미지, JS, CSS 등)을 사용자와 가까운 위치(Edge Location)**에서 제공함으로써 LCP를 단축시킬 수 있습니다.
| 페이지 | pc/m | 기본 | preconnect, preload, fetchPriority, CloudFront | Lambda@Edge |
|---|---|---|---|---|
| 메인 | pc | 1s | ||
| mobile | 4.3s | 3.7s | ||
| 프로모션 | pc | 3.8s | 1s | |
| mobile | 21.4s | 4.9s |
사용자가 S3에 직접 접근하지 않고 CloudFront를 통해 이미지에 접근할때의 장점
.env 파일 등에서 S3 URL을 CloudFront URL로 교체프로젝트 env의 S3 URL을 CloudFront 배포 도메인 이름으로 변경하면, 요청 URL이 CloudFront로 변경되고 X-Cache는 Hit from cloudfront가 출력되어 연결 된 것을 볼 수 있습니다.
CloudFront > 배포 선택 > 인기 객체(Popular Objects) 메뉴에서 확인
| 지표 | 설명 |
|---|---|
| 객체 (Object) | 객체에 대한 Endpoint URL을 나타낸다. |
| 요청 (Reqeusts) | 객체에 대한 총 요청 수를 나타낸다. |
| 검색결과 (Hits) | Edge Location에서 캐싱된 객체가 제공된 사용자 요청 수이다. |
| 검색결과 % (Hits %) | 검색 결과 (Hits)를 백분율로 표시한 값이다. |
| 누락 (Misses) | Edge Location에 객체를 찾지 못한 사용자 요청 수이다. |
| 누락된 바이트 (Bytes from misses) | Edge Location에 객체를 찾지 못하여 사용자에게 제공된 Byte이다. |
| 바이트 합계 (Total bytes) | 객체에 대해 최종 사용자에게 제공한 총 바이트 수이다. |
| 불완전한 다운로드 (Incomplete downloads) | 객체에 대해 사용자가 다운로드를 시작했으나 완료되지 못한 최종 사용자 요청 수이다. (일반적으로 다른 링크를 클릭하거나 브라우저를 닫는 등의 동작으로 사용자가 요청을 취소한 경우임) |
| 2xx | HTTP Status Code가 2xx(성공)인 요청 |
| 3xx | HTTP Status Code가 3xx(추가 작업 필요)인 요청 |
| 4xx | HTTP Status Code가 4xx(클라이언트 오류)인 요청 |
| 5xx | HTTP Status Code가 5xx(서버 오류)인 요청 |
예: 이미지나 JS 파일 등 정적 리소스는 cache-control 설정으로 TTL을 명확히 지정하는 게 중요
CloudFront 지표를 기반으로 특정 수치 이상일 때 Slack 알림 등을 설정할 수 있습니다.
👉 참고: 슬랙 알림 설정하기 - jojoldu 블로그