이번 프로젝트는 cloudFront와 s3버킷을 이용해서 배포했다.
사실 그전까지는 s3버킷과 router53을 통해서 배포를 했는데 https를 뚫어야 했기에 cloudFront를 사용했다.
이참에 CloudFront와 CDN의 개념을 알고가면 좋을 것 같아 남겨본다!
CDN
CDN(Content delivery network)는 콘텐츠 전송 네트워크로 지리, 물리적으로 떨어져 있는 사용자에게 콘텐츠를 더 빠르게 제공하는 시스템
- 사용자가 원격지에 있는 서버(Origin Server)로 부터 Content(Web Object, Video, Image, Document등)을 다운 받을 때 가까이 있는 서버에서 받는 것보다 오래 걸린다.
- 따라서 사용자와 가까운 곳에 위치한 Cache Sever에 해당 Content를 저장(캐싱)하고 Content 요청시에 Cache Sever가 응답을 준다.
caching
캐시는 컴퓨터의 성능을 향상 시키기 위해 사용되는 메모리를 말하는데 캐싱은 이 캐시 영역으로 데이터를 가져와서 접근하는 방식
CDN의 장점
- 웹사이트 로딩 속도 개선
오리지널 서버의 트래픽 부하 및 비용을 줄일 수 있다.
- 인터넷 회선 비용 절감
서버 비용이 감소
- 콘텐츠 제공의 안정성
인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로 콘텐츠를 빠른 속도로 제공할 수 있다.
- 웹 사이트 보안 개선
대규모 분산 서버 장비로 공격 트래픽을 완화시킬 수 있다.
CDN의 작동 원리
- 최초 요청은 서버로부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱 장비에 저장
- 두번째 이후 모든 요청은 CDN 업체에서 지정하는 해당 커텐츠 만료 시점까지 CDN 캐싱 장비에 저장된 콘텐츠를 전송
- 자주 사용하는 페이지에 한해서 CDN장비에서 캐싱이 되며, 해당 콘텐츠 호출이 없을 경우 주기적으로 삭제됨
- 서버가 파일을 찾는 데 실패하는 경우 CDN플랫폼의 다른 서버에서 콘텐츠를 찾아 엔드유저에게 응답을 전송
- 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 서버에 대한 요청을 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 새로운 콘텐츠를 저장
CloudFront
AWS에서 제공하는 CDN 서비스
- 캐싱을 통해 사용자에게 좀 더 빠른 전송 속도를 제공하는 것을 목적으로 한다.
- 전 세계 이곳저곳 Edge Server(Location)을 두고 사용자에게 가장 가까운 Edge Server를 찾아 빠른 데이터를 제공
CloudFront 구성
-
Origin Server
원본 데이터를 가지고 있는 서버
AWS에서는 S3, EC2 instance를 나타낸다
-
Edge Server
AWS에서 실질적으로 제공하는 전 세계에 퍼져있는 서버
Edge Server에는 요청 받은 데이터에 대해서 빠르게 응답해주기 위해 캐싱 기능을 제공
CloudFront 작동방식
- 사용자로부터 요청이 발생
- 요청이 발생한 Edge Server는 요청이 발생한 데이터에 대해 캐싱 여부를 확인
- 캐싱 데이터가 존재하면 사용자에 맞게 응답하고 존재하지 않으면 Origin Server로 요청
- 요청 받은 데이터에 대해 Origin Server로부터 전달 받은 Edge Server는 캐싱 데이터를 생성하고 사용자에게 응답
참고
https://aws.amazon.com/ko/blogs/korea/amazon-s3-amazon-cloudfront-a-match-made-in-the-cloud/
https://velog.io/@doohyunlm/AWS-CloudFront-%EA%B0%9C%EB%85%90