CloudFront를 사용해서 이미지 조회 성능 향상하기

구동현·2024년 5월 14일
post-thumbnail

저희는 지금까지 경매의 이미지를 S3에서 업로드, 다운로드를 하며 유저 요청에 응답했습니다.
이번에는 S3에 조회를 하지 않고, CloudFront 경로를 통해 조회를 하며 이미지 조회 성능을 테스트해보겠습니다.

CloudFront?

  • CloudFront는 AWS의 CDN(Content Delivery Network) 서비스입니다.
  • 216개의 전세계에 분포되어 있는 엣지포인트가 있습니다.
  • 호주 리전에 존재하는 S3 bucket에 미국의 사용자가 접근을 한다면, cloudFront의 엣지포인트를 통해 접근하게 됩니다.
  • WAF를 포함하고 있어서, DDos 공격에서 보호를 받을 수 있다.
  • Origin으로 S3뿐만 아니라, EC2, S3 website, HTTP 백엔드, ALB도 가능합니다.

미리보기

  1. cloudFront로 유저가 요청을 하면 S3에 조회를 하면서 로컬캐시에 저장을 합니다.
  2. 로컬 캐시에 저장된 데이터를 다시 요청하게 되면 그때는 S3대신 로컬 캐시에 조회를 하게 됩니다.

2번부터는 로컬캐시를 통해 조회를 하기 때문에 성능이 더 좋을 것으로 예상합니다.


구현하기

AWS CloudFront 설정방법

위 블로그를 참고해서 AWS에서 CloudFront의 오리진을 S3 Bucket으로 설정할 수 있었습니다.

CloudFront의 배포 도메인 이름을 filePath로 해서 이미지를 조회할때 저 url을 사용하도록 했습니다.


비교하기

적용전


적용전에는 이미지를 조회할때 54밀리초의 시간이 걸리는 것을 확인할 수 있었습니다.


적용 후에는, 이미지를 조회할 때 10밀리초의 시간이 걸리는 것을 확인할 수 있습니다.

54ms -> 10ms로 성능 개선을 할 수 있었고,

응답헤더나 http status code를 보아도 캐시가 적용되어 속도가 빠른것을 볼 수 있었습니다.

profile
개발합시다

0개의 댓글