728x90
CDN이란?
- CDN(Content delivery network)는 콘텐츠 전송 네트워크로써 지리, 물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공하는 시스템을 말합니다.
- 사용자가 원격지에 있는 서버 Origin Server로 부터 Content(Web object, Video, Music, Image, Document...)을 다운 받을 때 가까이 있는 서버에서 받는 것보다 시간이 오래걸립니다.
- 그러기에 사용자와 가까운 곳에 위치한 Cache Server에 해당 Content를 저장하고 Content요청시에 Cache Server가 응답을 줍니다.
CDN의 장점
- 웹사이트 로딩 속도 개선 : 오리지날 서버의 트래픽 부하 및 비용을 줄일 수 있습니다.
- 인터넷 회선 비용 절감 : 서버 비용이 감소합니다.
- 컨텐츠 제공의 안정성 : 인터넷 서비스 제공자에 직접 연결되어 데이터를 전공 하므로 컨텐츠를 빠른 속도로 제공할 수 있습니다.
- 웹사이트 보안 개선 : 대규모 분산 서버 장비로 공격 트래픽을 완화시킬 수 있습니다.
CDN의 작동원리
- 최초 요청은 서버로부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱 장비에 저장합니다.
- 두번째 이후 부더 모든 요청은 CDN 업체에서 지정하는 해당 컨텐츠 만료 시점까지 CDN 캐싱 장비에 저장된 컨텐츠를 전송합니다.
- 자주 사용하는 페이지에 한해서 CDN 장비에서 캐싱이 되며, 해당 컨텐츠 호출이 없을 경우 주기적으로 삭제됩니다.
- 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 서버에 대한 요청을 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 새로운 콘텐츠를 저장합니다.
CloudFront이란?
CloudFront는 AWS에서 제공하는 CDN서비스 입니다. 캐싱을 이용하여 사용자에게 좀 더 빠른 전송 속도를 제공하는 것을 목적으로 합니다. 전 세계 이곳 저곳에 Edge Server을 두고 사용자에게 가장 가까운 Edge Server를 찾아 빠른 데이터를 제공합니다.
CloudFront 구성
- Origin Server
- 원본 데이터를 가지고 있는 서버입니다.
- AWS에서는 S3, EC2를 나타냅니다.
- Edge Server
- AWS에서 실질적으로 제공하는 전 세계에 퍼져있는 서버입니다.
- Edge Server에는 요청 받은 데이터에 대해서 빠르게 응답해주기 위해 캐싱 기능을 제공합니다.
CloudFront 과정 흐름
- 클라이언트로부터 Edge Server로의 요청이 발생합니다.
- Edge Server는 요청이 발생한 데이터에 대하여 캐싱 여부를 확인합니다.
- 사용자의 근거리에 위치한 Edge Server 중 캐싱 데이터가 존재한다면 사용자의 요청에 맞는 데이터를 응답합니다.
- 사용자의 요청에 적합한 데이터가 캐싱되어 있지 않은 경우 Origin Server로 요청이 포워딩됩니다.
- 요청받은 데이터에 대해 Origin Server에서 흭득한 후 Edge Server에 캐싱 데이터를 생성하고, 클라이언트로 응답이 발생합니다.
CloudFront에서 제공하는 CDN Contents
- Download Distribution : HTTP Protocol을 이용하여 다운로드할 수 있는 일반적인 이미지 혹은 정적 파일을 제공받을 수 있습니다.
- Streaming Distribution : 스트리밍을 위해 사용할 수 있는 HTTP Proressive Download 방식이나 RTSP(Real Time Streaming Protocol)을 지원하는 동영상 컨텐츠를 서비스 받을 수 있습니다.
Edge Server의 Cache의 특징?
- 기본적으로 한번 발생한 요청에 대해서는 Edge Server에 캐싱된 상태로 저장됩니다.
- Edge Server의 기본 TTL은 24시간이고 사용자의 설정에 따라 변경 가능합니다(TTL 수정 시 Edge Server에 반영되는 시간이 한 시간 가량 소요됩니다)
- 이러한 캐시의 설정 후 반영 시간 때문에 전체 데이터에 대한 TTL을 수정하는게 아닌 각 개별 데이터에 대해서 invalidation API(특정 파일을 캐시에서 삭제하는 기능)을 통해 삭제할 수 있습니다.
- Invalidation API는 동시에 최대 3개의 요청을 발생시킬 수 있으며, 각 요청은 최대 1000개까지 가능합니다.
- Invalidation API는 Edge Node에 반영되기까지 5~10분 정도의 시간이 소요됩니다.
CloudFront 사용법
CloudFront의 메인 화면입니다. 배포 생성을 눌러주세요.
위 사진이 맞게 바꿔줍니다. 이 외의 설정은 기본값 그대로 진행합니다.
잘 만들어진것을 확인할 수 있습니다. 저 도메인을 그대로 인터넷에 붙여 넣어줍니다.
저는 S3와 연동을 했기 때문에 S3의 웹 서비스가 작동하는 것을 확인할 수 있습니다. 그럼 이제 CloudFront가 제대로 작동하고 있는지 테스트 해보겠습니다. Postman를 이용하여 속도를 측정합니다. S3의 도메인과 CloudFront의 도메인을 이용하여 진행합니다.
이게 S3의 속도입니다. 436ms ~ 200ms 까지 나오는 것을 확인하였습니다.
이게 CloudFront입니다. 확연한 속도차이를 볼 수 있습니다. 15ms ~ 9ms까지 확인하였습니다. CloudFront가 정상적으로 잘 작동하고 있다는 것을 알 수 있습니다.
출처
- https://velog.io/@doohyunlm/AWS-CloudFront-%EA%B0%9C%EB%85%90
- https://real-dongsoo7.tistory.com/86
728x90
'기능반공부 > 클라우드 컴퓨팅' 카테고리의 다른 글
[CC] AWS Organiztions & AWS IAM (0) | 2023.02.22 |
---|---|
[CC] AWS EFS(Elastic File System) (0) | 2023.01.12 |
[CC] AWS EC2(Elastic Compute Cloud) (0) | 2023.01.11 |
[CC] VPC / Subnet / Internet Gateway / Route Table (4) | 2023.01.11 |
[CC] AWS S3(Simple Storage Service) (0) | 2023.01.10 |