이번 게시글에서는 동영상 파일을 다운로드 할 때, 어떤 클라우드 서비스를 이용했을 때 속도가 빠른지 확인해볼 것이다.
서비스는 서울에서 운영한다고 가정하고, 사용자 다수가 외국에서 접속하는 글로벌 서비스라고 가정한다.
속도 비교
다음과 같은 명령어로 다운로드 속도를 확인해볼 것이다. 40초 가량의 10.9MB 크기의 동영상을 사용하였다.
# CDN (미국 멀티 리전)
$ curl http://34.111.174.121/meow.mp4 --output cdn.mp4
# Storage (미국 멀티 리전)
$ curl https://storage.googleapis.com/dahyeon-cdn-bucket/meow.mp4 --output americas-storage.mp4
# Storage (서울 리전)
$ curl https://storage.googleapis.com/dahyeon-storage-bucket/meow.mp4 --output seoul-storage.mp4
CDN과 미국 멀티 리전 Storage는 이전 게시글에서 만든 CDN Storage를 활용했고, 서울 리전 Storage를 새로 하나 만들었다.
서울(대한민국), 라스베가스(미국), 도하(중동) 지역에 EC2를 만들고 CDN, Americas Storage, Seoult Storage에 접근하여 파일을 다운로드하고 속도(Current Speed)를 기록해보았다.
서울 (아시아)
CDN
Cloud Storage (US-Multi-Region)
Cloud Storage (Seoul Region)
라스베가스 (미주)
CDN
Cloud Storage (US-Multi-Region)
Cloud Storage (Seoul Region)
도하 (중동)
CDN
Cloud Storage (US-Multi-Region)
Cloud Storage (Seoul Region)
분석
콘텐츠 다운로드 속도를 그래프로 비교해보았다. 단위는 kB/s이다.
CDN 콘텐츠의 다운로드 최소 및 최대 시간과 미주 Storage 다운로드 속도 중앙값과 서울 Storage 다운로드 속도 중앙값을 비교하였다.
리전별 다운로드(접근) 속도 비교
서비스별 다운로드 속도 비교
고찰
1) CDN을 이용해서 파일에 반복적으로 접근할 때마다 파일이 캐싱되어 다운로드 속도가 향상되었다.
2) 특정 지역에서 파일을 다운로드할 때, 해당 지역의 Storage에서 파일을 다운로드하는 것이 빨랐다. 그러나 캐싱이 진행될수록 CDN 성능이 최적화되어 Storage보다 빠른 접근 속도를 제공했다.
CDN 성능 개선 방법
https://cloud.google.com/cdn/docs/best-practices?hl=ko#optimize_the_cache_hit_ratio
공식 문서와 분석 결과를 참고하여 CDN 성능 개선 방법을 생각해보았다.
1. 서비스 요구사항 파악
서비스를 주로 어떤 지역의 사용자들에게 제공하는지 파악하고 최적화된 Region에 서비스 혹은 CDN을 구성해야 한다.
만약 사용자 다수가 외국에서 접속하는 글로벌 서비스라면, 어느 나라의 사용자가 주로 서비스를 사용하는지 파악하고 그 지역에 CDN Storage Region을 구성하는 것이 가장 빠르게 서비스를 제공할 수 있는 방법일 것이다.
2. 캐시 적중률 최적화
- 캐시 모드를 설정한다. 예시로는 정적 콘텐츠 캐시 등을 설정할 수 있다.
- 사용자별 콘텐츠를 캐시하지 않는다.
- 커스텀 캐시 키를 사용한다.
3. 성능 최적화
- 최신 프로토콜인 HTTP/3 프로토콜을 지원하게 한다.
- 음성 캐싱하여 응답 실패도 캐싱한다.
4. 캐시 최적화
- 캐시 TTL(Time To Live)를 최적화한다.
- 버전 관리된 URL 사용 업데이트한다.
- 무효화를 사용하여 간간히 콘텐츠를 삭제한다.
'🍀 Cloud Architect > CDN' 카테고리의 다른 글
CDN 동작과 특장점 (1) | 2024.10.06 |
---|---|
GCP Cloud CDN 구성하기 (0) | 2023.11.26 |