일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- alibabacloud
- 시험
- alibaba cloud
- IAC
- hashicorp
- cicd
- recreate
- Kubernetes
- k8s
- cloudmonitor
- argocd
- Cluster
- 네이버클라우드
- CKAD
- NCP
- Deployment
- slack
- GIT
- 쿠버네티스
- 알리바바클라우드
- slack app
- RollingUpdate
- alibaba
- Naver Cloud
- terraform
- kubeadm
- cloud monitor
- helm
- 자동화
- 테라폼
- Today
- Total
Room9
[Cloud Network] Alibaba Cloud CDN 본문
Overview
Alibaba Cloud CDN은 전 세계에 분산되어 있는 PoP(Point of Presence)의 글로벌 네트워크 입니다. 오리진 대상의 컨텐츠를 캐싱하여 짧은 지연 시간과 빠른 전송 속도로 전 세계 사용자에게 컨텐츠를 전송하는 CDN 서비스 입니다.
Details
- Alibaba Cloud CDN
- Alibaba Cloud CDN Architecture
- CDN Configuration
- CDN 미적용 환경
- ECS 직접 접속 로드 시간 측정 표
- CDN 적용 환경
- Domain Name Setting
- Add Origin Server
- 재접속
- CDN 통한 접속 로드 시간 측정 표
- CDN 미적용 환경
Alibaba Cloud CDN
Alibaba Cloud CDN은 전 세계 80개국 이상에 900개 이상의 노드를 POP으로 두고 있으며, 중국 내부에는 2300개 이상의 노드가 존재하고 있으며, 이러한 노드를 이용하여 컨텐츠를 캐싱하여 서비스 하고 있습니다.
Alibaba Cloud CDN Architecture
Alibaba Cloud CDN은 라우팅 시스템, 라우팅 품질 시스템, 캐싱 시스템, 지원 시스템으로 구성되어 있습니다.
라우팅 시스템 : 라우팅 시스템은 정책 센터를 제공하고 DNS(Domain Name System) 확인, HTTPDNS 및 302 리디렉션을 지원합니다. 클라이언트가 요청을 보내면 요청은 DNS 확인으로 확인된 후 라우팅 시스템에서 처리됩니다.
라우팅 품질 시스템 : 라우팅 품질 시스템은 실시간으로 POP 및 경로의 부하와 상태를 모니터링합니다. 이 정보는 이 정보를 사용하여 요청에 대한 최적의 경로를 선택하는 라우팅 시스템과 공유됩니다. 또한 라우팅 시스템은 최적의 경로를 선택할 때 ISP 및 요청 지역과 같은 원본 IP 주소에 포함된 추가 정보를 고려합니다.
캐싱 시스템 : 캐싱 시스템은 요청이 발생한 액세스 포인트를 기반으로 요청을 POP로 리디렉션합니다. 요청한 리소스가 이미 POP에 캐시되어 있으면 리소스가 클라이언트로 반환됩니다. 그렇지 않으면 요청이 원본 서버로 리디렉션됩니다. 검색된 리소스는 요청자에게 제공되고 POP에 캐시됩니다. 리소스에 대한 후속 요청은 POP를 통해 제공됩니다.
지원 시스템
리소스 모니터링: Tianyan은 캐싱 시스템에서 실행 중인 서비스의 상태를 모니터링할 수 있습니다. 예를 들어 Tianyan은 Alibaba Cloud CDN에 의해 가속되는 도메인 이름에 대한 QPS(초당 쿼리 수), 대역폭 및 HTTP 상태 코드를 모니터링할 수 있습니다.
데이터 분석: Alibaba Cloud CDN에 의해 가속되는 도메인 이름에 대해 가장 자주 요청되는 상위 N개의 URL, 페이지 보기(PV) 및 고유 방문자(UV)와 같은 데이터를 분석할 수 있습니다.
구성 관리: 캐싱 시스템의 효율성을 향상시키기 위해 캐시 만료 규칙을 생성하고 관리할 수 있습니다. 예를 들어 지정된 파일 유형에 대한 캐시 만료 규칙을 생성하거나 매개변수 필터링을 활성화할 수 있습니다.
CDN Configuration
CDN 미적용 환경
웹서비스를 활성화한 ECS를 구성하고 EIP를 설정합니다. 해당 EIP를 도메인(no-cache.room9.me)에 연결하고 브라우저에서 접속을 시도합니다. 이 때 브라우저의 개발자 도구를 열어서 웹페이지가 로드되는 시간을 측정합니다.
여러번 반복하여 평균 시간을 계산해 보겠습니다.
다만 새로 고침을 진행할 때, 로컬 캐시에 의해 이미지가 바로 출력되기 떄문에 정확한 로드 시간을 측정하기 위해선 브라우저의 캐시비우기 및 강력 새로고침 을 통해서 새로고침을 진행해야합니다.
ECS 직접 접속 로드 시간 측정 표
접근 방식 | 1 | 2 | 3 | 4 | 5 |
ECS 직접 접속 | 2.89 초 | 2.63 초 | 2.44 초 | 3.12 초 | 2.85 초 |
CDN 적용 환경
CDN이 미적용된 환경에서의 접속 속도를 측정하였으며, Alibaba Cloud CDN을 구성하도록 하겠습니다.
Domain Name Setting
[CDN] - [Content Delivery] - [Domain Name] - [Add Domain Name]
Parameter | Description |
Region | Chinese Mainland Only : CDN을 통한 요청을 중국 본토에 배포된 POP으로 리디렉션 됩니다. 중국 본토 외부의 요청은 China Telecom에서 관리하는 POP으로 리디렉션 됩니다. Global : 모든 요청이 가장 가까운 POP으로 리디렉션 됩니다. Global (Excluding the Chinese Mainland) : 중국 본토를 제외한 POP으로 리디렉션 됩니다. Global 또는 Chinese Mainlad Only 선택 시 ICP 비안이 있어야 구성 가능합니다. |
Domain Name to Accelerate | 가속화할 도메인을 지정합니다. 와일드카드 도메인을 지원합니다. |
Business Type | Image and Small File : 게임 이미지, 쇼핑몰 컨텐츠 등 웹사이트에서 작은 크기의 정적 컨텐츠 가속 Large File Download : 20MB 보다 큰 정적 파일을 가속화 합니다. VOD :오디오 또는 비디오 컨텐츠 전달을 가속화 합니다. DCDN : 정적 컨텐츠와 동적 컨텐츠 모두의 전달을 가속화 합니다. 이 경우 DCDN 콘솔에서 도메인 이름 추가 및 구성이 필요합니다. |
Add Origin Server
Parameter | Description |
Origin info | OSS Domain : 원본 서버가 OSS 버킷인 경우, 버킷의 Public Domain을 선택합니다. (Private Domain을 지원하지 않습니다) IP 주소 : 원본 서버에 대해 하나 이상의 IP 주소를 구성할 수 있습니다. 내부 IP 주소는 지원되지 않습니다. Site Domain : 원본 서버의 도메인 이름을 입력합니다 ( 원본 도메인 이름은 가속 도메인 이름과 달라야 합니다. DNS 확인 루프가 발생하고 요청을 원본 서버로 리디렉션할 수 없습니다.) ALB의 내부 도메인을 사용하여 연결할 수 없습니다. ALB에 도메인을 바인딩하고 해당 URL을 사용할 수 있습니다. Function Compute Domain : 현재 계정에 속한 Function Compute 도메인 이름을 입력합니다. 이 값을 선택하는 경우 지역 및 도메인 이름 매개변수를 구성해야합니다. |
Priority | 기본 및 보조 원본 서버를 지정하도록 우선순위를 구성할 수 있습니다. 범위 값은 0 ~ 127 입니다. 값이 작을수록 우선 순위가 높습니다. |
Weight | 원본 서버의 우선순위가 동일한 경우에는 CDN은 원본서버의 가중치에 따라 요청을 원본서버로 리디렉션 합니다. 원본 서버 간의 로드밸런싱이 가능합니다. 기본값은 10 이며, 범위 값은 1 ~ 100 까지 입니다. 가중치가 높은 원본 서버가 더 많은 요청을 처리합니다. |
Port | 요청을 처리하는 원본 서버의 포트입니다. 기본은 80 이며, 원본서버의 설정에 따라 1 ~ 65535 포트를 가질 수 있습니다. 포트를 443으로 지정하면 요청이 HTTPS를 통해 원본서버로 리디렉션 됩니다. |
도메인 이름 확인이 끝나면 상태가 Enabled 로 변경됩니다. 이제 이 도메인 네임과 CNAME을 DNS 레코드에 등록하고 테스트 하도록 하겠습니다.
- 사용자는 CDN으로 도메인(http://cdn.room9.me)로 접근 시도를 합니다.
- CDN은 최초연결이기 때문에 해당 도메인에 대한 컨텐츠를 캐싱하고 있지 않기 때문에, 오리진 서버로 컨텐츠를 요청하며, 컨텐츠 응답을 받습니다.
- 요청한 사용자에게 웹 접근 요청에 대한 응답을 반환합니다.
다운로드 컨텐츠인 이미지 파일과 Main html 파일 모두 X-Cache 필드에 MISS TCP 값을 확인할 수 있습니다. 이는 CDN의 POP의 응답이 아닌 오리진을 통해 응답을 주었다는 의미입니다. 이 접근은 최초 접근이 때문에 CDN에서 오리진을 통한 원본 파일을 받는 작업이 수반되었기 때문입니다. 접속 속도 역시 차이가 없음을 알수 있습니다. 이후 접속 부터는 최초접속이 아니기 때문에 CDN에서 캐싱하는 속도를 측정할 수 있습니다.
재접속
재접속을 하게되면 X-Cache 필드가 HIT TCP 로 값이 변경된 것을 확인할 수 있습니다. 이 의미는 컨텐츠 응답을 요청 유저와 가장 가까운 CDN POP에서 보냈다는 의미입니다.
- 사용자는 CDN으로 도메인(http://cdn.room9.me)로 접근 시도를 합니다.
- CDN은 최초 접속 시에 컨텐츠를 각 POP에 배포가 된 상태이기 때문에, 사용자의 위치를 기반으로 가장 가까운 POP 노드에서 응답을 반환합니다.
이제 CDN을 통한 접속 로드 시간을 측정하겠습니다. 5번 반복하여 표에 채워넣겠습니다.
CDN 통한 접속 로드 시간 측정 표
접근 방식 | 1 | 2 | 3 | 4 | 5 |
ECS 직접 접속 | 2.89 초 | 2.63 초 | 2.44 초 | 3.12 초 | 2.85 초 |
CDN 통한 접속 | 0.093 초 | 0.079 초 | 0.074 초 | 0.114 초 | 0.092 초 |
ECS 직접 접속 과 CDN 통한 접속 을 비교할 수 있습니다.
Conclusion
Alibaba Cloud CDN을 사용하여 웹 컨텐츠를 미리 캐싱하여 속도를 증가하는 테스트를 진행하였습니다. CDN의 기능 중에는 해당 글에서 설명하지 않은 여러가지 추가 기능들이 있습니다. 기본적으로 CDN을 구성하는 방법만 가이드 하고 있어, 기회가 되면 추가 기능에 대한 내용도 작성해보도록 하겠습니다. CDN을 사용한다고 무조건적으로 빨라지는건 아니며, 잘 써야 그만큼 효과를 누릴 수 있는 서비스입니다. CDN은 Alibaba Cloud 외에도 여러 벤더들이 제공하고 있는 서비스이기 때문에 제공하는 기능들이 더 중요합니다. 기회가 된다면 타 벤더의 CDN도 구성해보고 제공하는 기능들에 대한 비교도 진행해 볼 수 있을듯 합니다.
Reference
Add a domain name - CDN - Alibaba Cloud Documentation Center
If you want to use Alibaba Cloud CDN to accelerate content delivery for a specified website, you need to add the domain name that you want to accelerate to Alibaba Cloud CDN. After you add a domain name to Alibaba Cloud CDN, the system pushes the configura
www.alibabacloud.com