Azure CDN 완전정복 3 – 모니터링

아래 내용은 Azure CDN을 만들 때 Pricing을 S1 Verizon으로 선택했을 때 볼 수 있는 모니터링이 도구다. S2 Akamai를 선택했을 때는 사용할 수 없다.

아래 설명된 예제 리포트는 원트리즈 뮤직에서 제공해 주셨다.

S1 Verizon과 S2 Akamai의 차이점은 이 시리즈의 첫번째 글 만들기 편에 설명되어 있다.

모니터링 도구 접속

모니터링 도구에 접속 하려면 먼저 Azure 포털에 접속해서 모니터링할 CDN 프로파일을 찾아서 아래 그림처럼 Manage 버튼을 누르면 새로운 페이지가 떠서 모니터링 내용을 볼 수 있다.

cdn_manage_button

제공하는 리포트는 Bandwidth, Data Transferred, Status Codes, Cache Status, Cache Hit Rate, IPv4/IPv6 Data Transferred 총 7가지이다.

Bandwidth

대역폭 사용에 대한 정보를 볼 수 있다.

그림에서 보면 지난 24시간 동안의 시간별 대역폭 사용량을 그래프와 데이터를 볼 수 있다. 서비스의 특성에 의해 밤과 새벽에는 대역폭 사용량이 없고 아침이 되면 서서히 올라가는 모습을 볼 수 있다. 여기서 시간은 GMT 시간이다.

cdn_monitor_bandwidth

Data Transferred

전송된 데이터량을 볼 수 있다.

역시 새벽 시간에는 전송량이 없다가 아침부터 증가하는 모습을 볼 수 있다. 중간중간에 피크를 치는 시간대가 있는데 이런 구간은 상세한 분석을 통해서 왜 저런 현상이 일어나는지 파악해야 겠다.

cdn_monitor_transferred

Status Codes

전송결과에 대한 HTTP 응답 상태 코드를 볼 수 있는 리포트로 내용을 자세히 살펴볼 필요가 있다.

HTTP 200 상태코드는 성공을 나타내며 아래 그래프에서 대부분의 200 응답을 줬다. 200의 더 구체적인 의미는 CDN에서 컨텐츠를 실제 전송 했다는 뜻이다. 즉 네트워크를 통해서 컨텐츠가 전달되었고 전송된 만큼 과금이 이뤄진 경우다.

HTTP 304는 “수정되지 않음”을 의미한다. 브라우저의 경우를 예로들면 브라우저가 해당 컨텐츠를 로컬 캐시에 이미 가지고 있으면 컨텐츠를 달라고 요청하지 않고 컨텐츠가 변경되었는지를 물어본다. 이 때 컨텐츠가 변경되지 않았으면 서버(CDN)는 304 를 응답하고 실제 컨텐츠를 전송하지 않는다. 즉 전송을 하지 않았으니 그만큼 과금이 안되는 것이다.

HTTP 206는 “일부 컨텐츠”를 의미하는데 컨텐츠가 클라이언트의 요청에 의해 전체 중 일부만 전송한 것이다.

HTTP 204 “컨텐츠 없음”은 성공은 했으나 컨텐츠를 전송하지 않은 상태다.

아래 그림에 있는 4가지 상태는 모두 정상적인 상황이다. 하지만 4xx 오류나 5xx오류는 문제가 있는 상태이므로 찾아서 해결을 해야 한다. Azure CDN Standard 가격의 리포트에서는 오류의 상세 내용을 알려주지는 않는다. Premium 가격을 선택하면 오류 리포트를 제공한다.

오류의 인식과 처리도 중요하지만 304 도 중요하다. 클라이언트를 만들 때 HTTP의 캐싱에 대한 내용을 잘 만들어 주면 CDN 비용을 많이 줄일 수 있다. HTTP 캐싱에 대한 좋은 글이 있어 링크한다.

cdn_monitor_hit

Cache Status

캐시 Hit에 대한 비율을 알려주는 리포트다. TCP_HIT는 CDN에 캐싱되어 있는 컨텐츠를 클라이언트에 보내준 경우다. 즉, 클라이언트는 빠르게 컨텐츠를 받을 수 있다. TCP_MISS는 CDN에 캐싱이 없어서 컨텐츠 원본으로 부터 컨텐츠를 가져와서 제공한 경우다. 원본을 가져오는 시간이 필요하므로 클라이언트는 컨텐츠를 늦게 받아간다. 하지만 그 다음번 요청은 컨텐츠가 캐싱되어 있으므로 빠르게 가져갈 수 있다.

새로운 컨텐츠나 업데이트 된 컨텐츠가 많으면 TCP_MISS 비율이 올라간다.

cdn_monitor_cache-status

Cache Hit Rate

일별 캐시 Hit 비율을 보여준다. 신규 컨텐츠가 유입되면 그래프가 변경되는 것을 볼 수 있다.

cdn_monitor_cachehitratio

IPv4/IPv6 Data Transferred

이 리포트는 IPv6를 사용하지 않기 때문에 의미가 없어서 스크린 캡쳐를 넣지 않았다.

Azure CDN의 모니터링을 통해서 서비스에 문제가 없는지? CDN을 얼마나 사용하는지? 시간대별 컨텐츠 전송 패턴 등을 알 수 있다.특히 304 응답을 늘려서 비용을 줄이는 노력이 필요하다.