알리바바 클라우드 CDN에 대한 Basic Architecture 구성 가능 여부 및 AWS 와의 기능 비교 검토를 진행했다.
- Basic Architecture Test
가장 일반적으로 사용되는 이미지, 비디오 스티리밍, 실시간 비디오 스트리밍 CDN에 대한 기본적인 기능을 알리클라우드 환경에서 검증을 진행했다.
- Detailed Function Test
알리바바 클라우드 CDN에서 제공하는 기능들에 대해서 기술 검토를 진행했고, AWS CloudFront와의 비교 검증을 진행했다.
1. 이미지 캐싱
캐싱을 위한 가장 단순한 구성으로 CDN과 Storage 구성이다. 알리바바 환경에서는 아래와 같이 대체 구성이 가능하다.
AWS CloudFront -> Alibaba Cloud CDN
AWS S3 -> Alibaba cloud OSS
2. 비디오 스트리밍 캐싱
HLS 프로토콜 기반 비디오 스트리밍 구성으로 CDN + HLS 패킷타이저 + 스토리지 구성이다. (HLS는 이중화를 위해서, 로드밸런서가 추가적으로 구성이 필요)
알리바바 환경에서는 아래와 같이 대체 구성이 가능하다.
AWS CloudFront -> Alibaba Cloud CDN
AWS ELB -> Alibaba cloud SLB
AWS EC2 -> Alibaba cloud ECS
AWS S3 -> Alibaba cloud OSS
3. 라이브 스트리밍 캐싱
HLS 프로토콜 기반 실시간 비디오 스트리밍 구성으로 CDN + HLS 패킷타이저 + 엔코더 구성이다. 알리바바 클라우드 환경에서는 아래와 같이 대체 구성이 가능하다.
AWS CloudFront -> Alibaba cloud CDN
AWS EC2 -> Alibaba cloud ECS
간략하게 알리바바 클라우드 CDN과 AWS CloudFront의 기능상 공통점과 차이점에 대해 분류해봤다.
- 압축 전송
알리바바 클라우드 CDN 및 AWS CloudFront는 모두 압축 전송을 지원한다. 그러나 압축 전송을 지원하는 content-type은 AWS CloudFront가 상대적으로 많은 포맷을 지원한다. (AWS CloudFront 41개 / Alibaba Cloud CDN 10개)
- 쿼리스트링 캐싱(Querystring Caching)
알리바바 클라우드 CDN 및 AWS CloudFront 모두 쿼리스트링 캐싱을 지원한다. 그러나 AWS CloudFront의 경우 쿼리스트링 파라미터(parameter)에 대한 Caching whitelist를 지원하여 상대적으로 폭 넓은 제어가 가능하다.
- 분할 요청(Range Request)
알리바바 클라우드 CDN 및 AWS CloudFront 모두 Range Request를 지원한다. AWS Cloudfront의 경우 Default로 활성화 되어 있고, 알리 클라우드의 경우 활성화 여부를 선택할 수 있다.
- 보안 인증
알리바바 클라우드 CDN 및 AWS CloudFront 모두 보안 인증을 지원한다. 알리바바 클라우드의 경우 3가지 방식의 인증 URL을 제공하며 쿠키(Cookie) 기반의 인증은 제공하지 않는다. 따라서 HLS 서비스 시에는 매니패스트(manifest) 생성에서 URL 인증 모듈을 추가시켜줘야 한다. 반면 AWS CloudFront의 경우 URL과 쿠키 방식 모두를 지원한다.
- 캐시 무효화(Cache Refresh)
알리바바 클라우드 CDN 및 AWS CloudFront 모두 캐시 무효화 기능을 제공한다. 알리바바 클라우듸 경우 특정 파일은 약 5~10분 정도, 경로의 경우 약 30분 정도가 소요된다. AWS CloudFront의 경우 특정 파일 및 경로 캐싱 무효화 시 90% 이상 파일은 약 3초 이내로 무효화 되고 나머지는 약 15분 이내로 완료된다.
- 사전 캐싱(Pre-fetch)
알리바바 클라우드 CDN 및 AWS CloudFront 모두 사전 캐싱 기능을 제공한다. 그러나 AWS CloudFront의 경우 현재 beta 버전으로 완벽하게 사전 캐싱을 사용할 순 없다.
- 모니터링(Monitoring)
알리바바 클라우드 CDN 및 AWS CloudFront 모두 통계 및 실시간 모니터링 기능을 제공한다.
알리바바 클라우드 CDN의 경우 트래픽 모니터링, 유저 액세스 모니터링, 데이터 분석, 보안 모니터링 등을 지원하며, 최대 90일까지의 데이터를 보관하고 있다.
AWS CloudFront의 경우 CloudWatch를 통해 요청 수, 다운로드 수, 에러 비율을 제공한다. 최대 1년 간 데이터를 보관한다. 로그 분석 기반의 통계 데이터도 제공한다. 로그 분석 기반 통계의 경우 2달 간 데이터를 보관한다.
알리바바 클라우드와 비교해서 CDN이 AWS CloudFront의 강점도 알아보자.
- 오리진 구성(Origin Settings)
AWS CloudFront는 알리바바 클라우드 CDM에 비해 세부적인 Origin 설정이 가능하다. 포트(port), 경로(path), SSL 프로토콜 버전, HTTP 커스텀 헤더 추가 등 더 많은 기능이 존재한다.
- 캐싱 정책 구성(Cache Behavior Settings)
AWS CloudFront는 URL Path Pattern 별로 Caching 정책에 대한 폭 넓은 세부 설정이 가능하다.
- 원본은 경로 별로 다른 원본 선택이 가능하다.
- HTTP Methods에 대한 허용 여부를 선택할 수 있다.
- HTTP Header 기반으로 캐싱 정책을 선택할 수 있다.
- 오리진에서 받은 캐시 컨트롤 헤더에 따라 유동적인 TTL 선택이 가능하다.
- 쿠키 헤더 별로 캐싱 정책을 선택할 수 있다.
- 웹 방화벽(WAF)
AWS CloudFront의 경우 WAF 솔루션이 별도로 존재하여, CDN 영역에 보안을 강화할 수 있다. WAF의 보안 정책들은 다음과 같다. Cross-site Script(XSS), IP Blocking, Size Constraint, SQL Injection, 그리고 사용자가 직접 커스텀하게 HTTP header base blocking(user-agent, referrer 등) 을 할 수 있다.
- 에러 페이지 기능(Error Page)
AWS CloudFront는 에러 코드 별로 커스텀 페이지 및 캐싱 TTL 설정을 할 수 있다. 알리바바 클라우드 CDN의 경우 현재 404 에러 페이지에 대한 커스텀 페이지만을 지원하고, TTL 제어는 불가능하다.
- Geolocation 제한
AWS CloudFront는 Geo Restriction을 지원하여 국가별로 접근 제어가 가능하다. 반면 알리바바 클라우드 CDN의 경우 국가별 제어가 불가능하다.
결론을 말하면 일반적인 CDN 구성이라면 알리바바 클라우드의 CDN도 사용 가능하다. 단순 이미지나 비디오 파일 다운로드라면 AWS CloudFront와 함께 사용하여 중국 내 서비스가 가능하다. 다만 조금 더 기능이 필요하다면 AWS CloudFront를 권장한다.
'잡부생활' 카테고리의 다른 글
IT 미디어 그리고 클라우드 (0) | 2021.09.17 |
---|---|
CORS (simple, preflight request) (0) | 2020.03.27 |
AD FS 이용해서 AWS SAML 2.0 연동하기 (0) | 2019.12.24 |
XGBoost 파라미터 정리 (0) | 2019.11.06 |
Windows 10에서 Linux 사용하기 (0) | 2019.11.01 |