# CDN 서비스 소개

## 서비스 개요

CDN(Content Delivery Nework) 서비스는 영상, 음악 등의 미디어 스트리밍이나 다양한 웹/어플리케이션 콘텐츠를 사용자에게 빠르고 안정적으로 제공하는 콘텐츠 최적화 전송 서비스 입니다.

즉, 원격지(Origin Server)에 있는 원본 콘텐츠를 IDC 센터내 에지서버에 캐싱하여 사용자가 요청한 콘텐츠를 사용자와 가까운 에지서버(=캐시서버)에서 직접 콘텐츠를 전송함으로써, 콘텐츠 요청에 대한 응답속도, 로딩타임 등을 개선하여 사용자의 서비스 경험을 극대화하는 서비스 입니다.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>사업자의 CAPEX, OPEX 절감</strong></td><td>콘텐츠 서비스 사업자는 CDN 서비스를 이용함으로써 콘텐츠 전송 최적화 기술 연구개발과 서비스 서버 증설을 위한 비용( CAPEX)을 절감하고, 서버들에 대한 운영/관리 비용(OPEX)를 절감할 수 있습니다.</td></tr><tr><td><strong>사용자의 서비스 경험 향상.</strong></td><td>콘텐츠 서비스 사용자들은 PC, 스마트폰, 태블릿, PC, 스마트 TV 등 다양한 디바이스를 통해 에지서버로 부터 빠르고, 안정적인 콘텐츠 서비스를 경험할 수 있습니다. </td></tr></tbody></table>

### Delivery 유형 서비스

Delivery 서비스에는 크게 대용량 콘텐츠 다운로드 서비스와 웹 가속 서비스가 포함됩니다.

#### 대용량 콘텐츠 다운로드 서비스

* 온라인 게임, 응용 소프트웨어 설치 및 패치파일, 멀티미디어 컨텐츠(동영상,음악), 백신 배포 등 대용량 콘텐츠를 빠르고 안정적으로 전송하는 서비스입니다
* 부가적으로 다양한 컨텐츠 업로드 관리, URL 인증 방식을 통한 보안 기능, 접근 제어, 세션별 트래픽 제어 등의 기능을 제공합니다.

<figure><img src="/files/7ZcCa1eB8vXEk375tTvN" alt="" width="563"><figcaption></figcaption></figure>

#### 웹 가속(캐시) 서비스

* 웹 가속은 이미지, 플래시, 파일 등 사용자의 요청이 빈번한 컨텐츠를 에지서버(=캐시서버)에 저장(=캐싱)해두었다가 사용자가 요청 시 에지서버가 신속하게 전송해줌으로써 웹 페이지의 로딩 속도를 가속시켜주고 원본 서버의 부하를 경감시켜주는 서비스 입니다.
* Multi-Core 기반의 고성능 캐싱, 이미지 최적화, 최적화된 Caching Object의 저장, 다중 원본 서버 및 자동 Fail-over 지원, 강력하고 신속한 퍼지 등의 기능을 제공합니다.

<figure><img src="/files/4T6El1GqDLj3BjaK33GU" alt="" width="563"><figcaption></figcaption></figure>

### Streaming 유형 서비스&#x20;

스트리밍(Streaming)은 다양한 포맷의 멀티미디어 콘텐츠를 PC, 스마트 폰, 태블릿 PC 등 스마트 디바이스에 끊김 없이 전송하는 서비스로, 고화질∙고품질의 VoD 및 라이브 서비스를 보장합니다. 스트리밍 서비스는 다양한 프로토콜 지원, Adaptive Streaming 지원, 강력한 콘텐츠 보안 기능 등을 제공하고 있습니다.

원본 미디어 파일로는 mp3와 mp4 포맷으로 만들어진 파일을 지원하며, 크게 VoD 스트리밍 서비스와 라이브 스트리밍 서비스로 구분할 수 있습니다.

{% tabs %}
{% tab title="지원 코덱" %}

* 오디오 코덱 : AAC, MP3
* 비디오 코덱 : H.264(AVC), H.265(HEVC)
  {% endtab %}

{% tab title="지원 스트리밍 프로토콜" %}
**HLS (Http Live Streaming)**

* Apple(iPhone, iPad 등)에서 사용하는 표준 HTTP 기반 스트리밍 프로토콜입니다.
* 스트리밍 데이터를 m3u8 의 확장자를 가진 재생목록 파일과 잘게 쪼개놓은 다수의 ts 파일들(동영상)을 HTTP 를 통해 전송하는 방식을 사용합니다.

**Dash (Dynamic Adaptive Streaming over HTTP)**

* Dynamic Adaptive Streaming over HTTP (DASH)는 ISO 표준(ISO/IEC 23009-1)으로 개발된 HTTP Adaptive Streaming의 한 종류입니다. MPEG과 ISO에 의해 비준된 표준 포맷입니다.
* Manifest가 XML로 구성되어 있어 풍성한 표현이 가능해 다양한 정보를 한 개의 MPD로 제공할 수 있습니다.
  {% endtab %}
  {% endtabs %}

#### VoD 스트리밍 서비스

VoD 스트리밍은 원하는 콘텐츠를 방송 시간에 상관없이 볼 수 있는 서비스입니다. 주로”e-러닝”이나 “방송 다시 보기” 등의 서비스에 적용됩니다. 고객사의 콘텐츠는 서비스 이전에 대용량 스토리지에 저장되거나, 일부는 스트리밍 서버에 캐싱 됩니다. 최종 사용자가 콘텐츠를 요청하면 사용자의 단말기에 적합한 포맷의 콘텐츠를 전송합니다.<br>

<figure><img src="/files/3YATHkCzBgVjeNUwyG67" alt="" width="563"><figcaption></figcaption></figure>

#### 라이브 스트리밍 서비스

라이브 스트리밍은 텔레비전 생방송처럼 촬영되고 있는 콘텐츠를 실시간으로 사용자의 동영상 플레이어로 보내 재생하도록 하는 방식을 말합니다. 라이브 스트리밍은 비디오와 오디오를 실시간으로 인코딩해 다수의 사용자에게 전달합니다.

<figure><img src="/files/6ylLnpNH3WYnYLlyzl2k" alt="" width="563"><figcaption></figcaption></figure>

고객사는 CDN 서비스를 개통하고자 할 때, “CDN 서비스(딜리버리, 스트리밍 등)”를 기본 단위로 계약합니다. 고객사는 콘텐츠의 특성 및 사업 유형에 따라 여러 개의 서비스를 동시에 계약할 수도 있습니다. 그리고 각 서비스는 실질적인 서비스가 가능한 볼륨으로 구성됩니다. 서비스와 볼륨의 개념은 다음과 같습니다.

#### **서비스**

Service Provider와 CDN간의 계약을 통해 제공받고자 하는 서비스를 나타내는 단위입니다. 서비스별로 구분하여 관리할 수 있습니다. 서비스와 관련되어 제공되는 통계 항목은 서비스 제공에 필요한 저장 공간 및 트래픽 용량 등입니다. 이 외에도 파일에 대한 대소문자 구분이나 Lock 사용 유무 등 서비스 관리에 필요한 항목들을 설정할 수 있습니다.

#### **볼륨**

서비스별로 계약을 체결하지만, 실제 서비스하는 단위는 볼륨입니다. 전체 계약 용량을 여러 볼륨으로 나눠서 서비스가 가능합니다. 서비스 하위에는 1개 이상의 볼륨이 반드시 존재합니다. 고객사는 계약한 서비스의 트래픽 및 디스크 용량을 1개 이상의 볼륨으로 나눠서 서비스할 수 있으며, 도메인에 의해 볼륨별 서비스가 구분되어 최종 사용자에게 서비스가 제공됩니다.

<figure><img src="/files/WLsN1XsfsVbbKolEmnTX" alt="" width="345"><figcaption></figcaption></figure>


# OTP 로그인 방식 안내

{% hint style="info" %}
기존의 Customer Portal Login 방식은 ID/PWD 와 Captcha 코드 입력을 통한 방식 이었으나

**2023년 10월  26일** 부로 Cstomer Portal Login 방식은 <mark style="color:red;">ID/PWD 와 OTP (On-Time Password) 코드 입력 방식</mark>으로 변경  되었습니다.
{% endhint %}

OTP 코드는 사용자가 소유하고 있는 모바일 기기에서 **Google Authenticator** Application을 통해 제공되기 때문에 소유하고 있는 모바일 기기에 해당 앱을 설치 하셔야 합니다.

<div align="left"><figure><img src="/files/3nVRieRX6Qu7lowK8hkj" alt="" width="176"><figcaption></figcaption></figure></div>

1. 소유하고 계신 모바일 기기에서 Google Authenticator <img src="/files/x66juH5dNfqNDsJOXLYO" alt="" data-size="line">을 설치 합니다.
2. CDN Customer Portal에 로그인 합니다.

<figure><img src="/files/V9uAqiyL65fnSq1jVJkO" alt=""><figcaption></figcaption></figure>

3. OTP 코드 입력을 통한 로그인이 처음 일 경우 OTP등록을 위한 QR 코드가 화면에 표시 됩니다.

![](/files/yVdOg0knz6ecaivggkGB)

4. 소유하신 모바일 기기에 설치된 Goolge Authenticator 앱을 실행 하여 오른쪽 하단의 ![](/files/iXmVmvAgf9wIXhOlPUuu)버튼을 클릭하여 QR 코드 스캔을 선택 합니다.

![](/files/2xWlXAMuio1Ooo2QHB1t)

5. 모바일 기기의 카메라가 실행 되면 CDN Customer Portal 에 표시된 QR코드를 스캔 하면 모바일 기기에 정보가 등록 됩니다.

<div align="left"><figure><img src="/files/kDRRA4yzndI069pwcoYF" alt=""><figcaption></figcaption></figure></div>

6. 모바일 기기에 표시되는 6 자리 숫자를 CDN Customer Portal 의 OTP CODE 입력란에 입력 후 \[로그인] 버튼을 클릭 하면 정상적으로 로그인이 진행 됩니다.

***

{% hint style="info" %}
OTP 등록을 위한 QR Code가 필요한 경우, 기존 계정 내 추가 사용자의 기기 등록이 필요한   경우,  QR Code는 아래 연락처를 통해 제공 신청 부탁 드립니다.

\[문의 사항]

E-Mail : <noc@solbox.com>, <op@solbox.com>
{% endhint %}


# 통계

### Dashboard

> 주요 통계 정보를 한 화면에서 확인할 수 있는 Dashboard 화면을 제공합니다

### Traffic

> CDN 서비스의 트래픽과 전송량, 저장 용량 추이에 관한 통계 정보를 제공합니다.&#x20;

### Visitor

> CDN 서비스의 최대 동시 접속수, 최대 히트수에 관한 통계 정보를 제공합니다.&#x20;

### Location

> 서비스에 접속한 ISP에 관한 통계를 보여줍니다.&#x20;

### Contents

> 서비스별, 볼륨별 콘텐츠에 대한 접속 순위, 시간대별∙비율별 전송 결과 통계를 보여줍니다.&#x20;

### Authentication (스트리밍 서비스 이용 고객)

> 재생을 요청한 사용자의 인증 상태를 통해 정상, 비정상 접속  수와 비율 정보를 제공합니다.&#x20;


# Dashboard

### **Dashboard**

Customer Portal에서 제공하는 다양한 통계 중에서 사용자가 원하는 통계 항목을 한 화면에서 볼 수 있도록 대시보드를 제공합니다. 사용자는 원하는 통계 항목을 자유롭게 추가, 삭제 및 배치할 수 있어 나만의 통계 페이지를 만들 수 있습니다.

처음 Customer Portal에 로그인하였을 때 대시보드에는 통계 항목이 존재하지 않습니다. 사용자가 통계 정보 페이지에서 원하는 통계 항목을 직접 선택하여 추가해야 합니다. 통계 정보의 제목 옆에 있는 “+” 아이콘을 클릭하면 대시보드에 해당 통계가 추가됩니다.

그리고 대시보드 내에서 통계 항목의 제목을 드래그 앤 드롭하여 자유롭게 이동할 수 있습니다. 통계 항목을 대시보드에서 제거하고자 할 경우에는 통계 제목 옆의 “X” 버튼을 클릭하면 됩니다.

![Customer Portal Dashboard](/files/C8gisZ1XDNGG9DcBYYRx)

대시보드를 보다 효율적으로 활용할 수 있도록 아래의 2가지 기능을 제공하고 있습니다.

* **이메일 발송**

대시보드를 PDF 파일로 변환한 뒤, 이메일에 첨부시켜 발송하는 기능입니다. Solbox CDN에서 제공하는 기본 메일링 서비스 외에 사용자가 직접 설정한 통계 항목들에 대한 정보를 받아볼 수 있습니다.

우측 상단의 “이메일 발송” 버튼을 클릭하면 다음과 같은 팝업창이 나타납니다.

![Dashboard 이메일 발송](/files/cfKcJr4beBOuhZ4d78cI)

받는 사람, 제목을 입력하고 “보내기” 버튼을 클릭하면 됩니다.

* **PDF 저장**

“PDF” 버튼을 클릭하면 대시보드 화면을 PDF 파일로 저장할 수 있습니다.


# Traffic

### **Traffic 통계**

Traffic은 CDN 서비스의 트래픽과 전송량, 저장 용량 추이에 관한 통계 정보를 제공합니다. Traffic 메뉴를 클릭하면 아래와 같이 서비스별 요약된 통계 정보를 확인할 수 있습니다.

![Traffic 통계 요약 정보](/files/OBrbF6ldgMy3FLEZ3onV)

리스트 중에서 상세 트래픽 정보를 확인하고 싶은 서비스를 클릭하면 상세 통계 화면으로 이동합니다.

* **트래픽 추이**

트래픽 추이는 전송된 데이터 량의 추이를 보여줍니다. 기본 단위는 5분 동안 전송된 데이터 량의 평균 값입니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

일 단위 트래픽 추이는 전송된 데이터 량의 5분 단위 평균 값을 기준으로 제공됩니다. 주간 및 월간 트래픽 추이는 시간당 최고치 값 혹은 일간 최고치 값을 기준으로 하며, 원하는 기준을 조회 기간 검색란에서 선택할 수 있습니다. 특정 기간의 트래픽 추이는 일당 최고치 값을 기준으로 제공됩니다.

![트래픽 추이 화면](/files/tvqaTODw2EQSqxd9ysUU)

{% hint style="warning" %}
**주의 사항**

트래픽 추이를 주, 월, 특정 기간 기준으로 조회할 때 조회 당일의 데이터는 포함되지 않습니다.
{% endhint %}

* **전송량 추이**

전송량 추이는 전송된 데이터의 총량 추이를 보여줍니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

일 단위 전송량 추이는 1시간 동안 전송된 총 데이터량을 기준으로 제공됩니다. 주, 월, 특정 기간 단위 전송량 추이는 1일 동안 전송된 총 데이터량을 기준으로 제공됩니다.

![전송량 추이 화면](/files/RSWzUvk611pp5eTyfk2b)

* **저장 용량 추이**

저장 용량 추이는 저장되고 있는 데이터 량의 추이를 보여줍니다. 기본 단위는 5분 동안 저장된 데이터 량의 총합입니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

일 단위 저장 용량 추이는 저장된 데이터 량의 총합을 5분 단위로 보여줍니다. 주, 월, 특정 기간 단위 저장 용량 추이는 1일 최고치 값을 기준으로 보여줍니다.

![저장 용량 추이 화면](/files/GnGZ8trP2ItBjxEFeDFS)

* **기간 대비**

조회일을 기준으로 전일, 전주 및 전월 트래픽, 전송량, 저장 용량 통계 정보를 비교해 볼 수 있습니다. 비교 데이터는 최대값, 평균값 그리고 증감률입니다.

![Traffic 통계 기간 대비](/files/0kffEbehskMoHv0byoQ0)


# Visitor

### **Visitors 통계**

Visitors는 CDN 서비스의 최대 동시 접속수, 최대 히트수에 관한 통계 정보를 제공합니다. Visitors 메뉴를 클릭하면 아래와 같이 서비스별 요약된 통계 정보를 확인할 수 있습니다.

![Visitors 통계 요약 정보](/files/R7G6ED66d2ucbJofxiOk)

리스트 중에서 상세 트래픽 정보를 확인하고 싶은 서비스를 클릭하면 상세 통계 화면으로 이동합니다.

**동시 접속수\[1]**

동시 접속수는 동시에 서비스에 접속한 세션의 총합 추이를 보여줍니다. 기본 단위는 5분 동안 동시 접속한 세션의 총합입니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

일 단위 동시 접속수는 동시에 접속한 세션의 총합을 5분 단위로 보여줍니다. 주, 월, 특정 기간 단위 동시 접속수는 1일 최고치 값을 기준으로 제공됩니다.

![동시 접속수 통계 화면](/files/pTDJzMBLWQoGXoi9XbFH)

**최대 히트수\[2]**

최대 히트수는 최종 사용자들이 콘텐츠 파일을 요청한 최고치 값의 추이를 보여줍니다. 기본 단위는 5분 동안 콘텐츠 파일을 요청한 히트수의 최고값입니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

일 단위 히트수는 총 히트수를 5분 단위로 보여줍니다. 주, 월, 그리고 특정 기간 단위 히트수는 1일 최대치 값을 기준으로 제공됩니다.

![최대 히트수 통계 화면](/files/XO4tcK1fakBV0V0tS641)

**기간 대비**

조회일을 기준으로 전일, 전주 및 전월 동시 접속수, 누적 히트수, 최대 히트수 통계 정보를 비교해 볼 수 있습니다. 비교 데이터는 최대값, 평균값 그리고 증감률입니다.

![Visitors 통계 기간 대비](/files/6hWYRbO65dlPbEIeCNfQ)


# Location

### **Location 통계**

Location 통계는 서비스에 접속한 ISP에 관한 통계를 보여줍니다. Location 메뉴를 클릭하면 아래와 같이 요약된 서비스별 요약된 접속 정보를 확인할 수 있습니다.

![Location 통계 요약 정보](/files/g4k1nngqEwGFfAbUCxAd)

리스트 중에서 상세 트래픽 정보를 확인하고 싶은 서비스를 클릭하면 상세 통계 화면으로 이동합니다.

제공되는 정보는 상위 ISP의 접속수와 비율입니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

Location 통계는 국내외를 모두 포함하여 접속이 많은 상위 20개의 ISP를 기본으로 제공합니다. 원하면 최대 상위 50개의 ISP 업체까지 확인할 수 있습니다.

일 단위 Location 통계는 1시간 동안의 총 접속수를 기준으로 제공됩니다. 주, 월, 특정 기간 단위 Location 통계는 1일 동안의 총 접속수를 기준으로 제공됩니다.

![Location 통계 화면](/files/TvFklpE6tTtIAAuzkRTs)


# Contents

## Contents 통계 <a href="#id-37wcjv5" id="id-37wcjv5"></a>

Contents 통계는 Delivery 서비스와 Streaming 서비스에 제공되는 특화된 통계입니다.

Contents 통계는 서비스별, 볼륨별 콘텐츠에 대한 접속 순위, 시간대별∙비율별 전송 결과 통계를 보여줍니다. Contents 메뉴를 클릭하면 아래와 같이 요약된 서비스별 통계 정보를 확인할 수 있습니다.

![Contents 통계 요약 정보](/files/zWlOVzQ3qVx1vc5SdWF6)

**콘텐츠 접속 순위**

콘텐츠 접속 순위 통계는 자주 요청되는 콘텐츠에 대한 정보를 제공합니다. \
통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

콘텐츠 접속 순위 통계는 서비스 중인 콘텐츠 중 접속이 많은 상위 20개의 콘텐츠 정보를 기본으로 보여주며, 최대 상위 50개의 콘텐츠 정보까지 확인할 수 있습니다.

일 단위 접속 순위 통계는 1시간 총합을 기준으로 제공됩니다. \
주, 월, 그리고 특정 기간 단위 접속 순위 통계는 1일 총 합을 기준으로 제공됩니다.

![콘텐츠 통계 화면](/files/tlSR3RUzaPhKpWzRdi1b)

**기간 대비**

조회 일자를 기준으로 선택된 볼륨의 조회 일과 전 일의 총 접속 수와 상위 20개 콘텐츠의 총 접속 수를 증감률과 함께 제공합니다. 같은 방식으로 조회 주와 전 주, 조회 월과 전 월을 비교해 볼 수 있습니다. \
UI에서 설정을 통해 최대 상위 50개 콘텐츠의 총 접속 수까지 비교가 가능합니다.&#x20;

* 총 접속 수 : 선택된 볼륨의 접속 수 합계
* 상위 N개 : 선택된 볼륨의 상위 N개 콘텐츠의 접속 수 합계(N개:1개\~50개)
* 증감 : 전 일(주, 월)을 기준으로  조회 일(주, 월)의 증감률

![Contents 접속 순위 통계 기간 대비](/files/Z22d8veephasiKzSTJRv)

**시간대별 전송 결과 정보**

시간대별 전송 결과 정보는 요청된 콘텐츠가 정상적으로 전송되었는지에 대한 정보를 제공합니다. \
통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

시간대별 전송 결과는 응답 코드를 대역별로 분류하여 시간대별 총 발생 건수를 보여줍니다. \
\
일 단위의 경우 1시간의 총 전송 결과를 기준으로 제공됩니다. 주, 월, 특정 기간 단위의 경우 1일 동안의 총 전송 결과를 기준으로 제공됩니다.

![시간대별 전송 결과 통계 화면](/files/lKTzgP8hBr1jl0L8iXcZ)

**비율별 전송 결과 정보**

비율별 전송 결과 정보는 요청된 콘텐츠가 정상적, 비정상적으로 전송되었는지 여부를 알 수 있게 응답코드 정보를 비율별로  제공합니다. 통계를 보여주는 기간 단위는 일, 주, 월, 그리고 특정 기간입니다.

비율별 전송 결과는 응답 코드에 따라 총 발생 건수와 비율을 보여줍니다.

일 단위의 경우 1일의 총비율을 기준으로 제공됩니다. 주, 월, 특정 기간 단위의 경우 해당 기간의 총 비율을 기준으로 제공됩니다.

<figure><img src="/files/scDPuM8QJRzKSETSR2vA" alt=""><figcaption><p><em><strong>Content 통계 비율별 전송 결과 정보</strong></em></p></figcaption></figure>


# Authentication

## Authentication 통계 <a href="#id-3lbifu6" id="id-3lbifu6"></a>

**스트리밍 서비스 이용 고객은 공통 통계와 콘텐츠 통계 외에 Authentication 통계를 확인할 수 있습니다.**

Authentication 통계는 재생을 요청한 사용자의 인증 상태를 통해 정상, 비정상 접속  수와 비율 정보를 제공합니다. Authentication 메뉴를 클릭하면 아래와 같이 요약된 서비스별 요약된 정보를 확인할 수 있습니다.

![Authentication 통계 요약 정보](/files/eZ8tc0DjLh8zK46xculm)

스트리밍 서비스는 비정상적인 경로를 통한 콘텐츠 재생을 막기 위해 인증을 요청하는 경우가 많습니다. 최종 사용자가 인증을 통해 콘텐츠에 정상 혹은 비정상으로 접속한 수와 비율을 보여주는 것이 인증 통계입니다. 비정상 접속 통계는 응답 코드와 비정상 접속 원인에 따라 분류해서 살펴볼 수 있습니다. 시간 단위는 일, 주, 월, 그리고 특정 기간입니다.

통계 정보는 조회일의 전일, 전주, 전월의 정상 또는 비정상 접속 발생 건수와 증감률을 제공합니다.

일 단위 인증 통계는 해당일의 총합을 기준으로 제공됩니다. 주, 월, 특정 기간 단위의 경우 해당 기간 동안의 총합을 기준으로 제공됩니다.

![인증 통계 화면](/files/Ee9IR2jBj8mdJZwpIgSG)


# CDN 관리

### Service

> 로그인한 유저의 권한이 있는 서비스 리스트를 확인 할 수 있습니다.

### Mailing

> 통계 정보를 이메일로 받아볼 수 있는 메일링 서비스를 설정하는 메뉴 입니다.

### Purge

> Purge 서비스는 캐싱되어 있는 데이터를 Time-To-Live(TTL)가 지나기 전에 삭제하는 기능으로 전체 캐시 서버에서 동일한 웹 서비스가 가능하게 하는 서비스 입니다.

## Diagnostics

> 서비스에 대한 진단을 수행 할 수 있는 메뉴 입니다. 권한이 존재하는 서비스를 선택 하거나 직접 URL 입력을 통해 해당 CDN서비스의 상태를 진단 할 수 있습니다.

### Account

> Service Provider 에 Customer Portal 의 접속을 허용하는 계정을 관리하는 메뉴입니다. 새로운 계정을 등록하거나 등록된 계정을 수정 및 삭제할 수 있습니다. 계정 그룹은 서비스 담당자, 요금 수납자, 웹 관리자로 구분되어 있습니다.


# Service

## Service

로그인한 유저의 권한이 있는 서비스 리스트를 확인 할 수 있습니다.\
상세 정보 확인을 위해 해당 서비스를 클릭하면 상세 페이지로 이동 합니다.\
서비스가 많을 경우 검색 기능을 이용하여 확인을 원하는 서비스를 검색 할 수 있습니다.

<figure><img src="/files/W0Nn7Xk7FyQSRoL7gRQz" alt=""><figcaption><p><em><strong>서비스 리스트</strong></em></p></figcaption></figure>

### Service Details

* 기본 서비스 정보\
  CDN 서비스의 등록/수정 정보 및 현재 상태에 대한 기본 정보를 확인 할 수 있습니다.

<figure><img src="/files/OSCpr7cj5L9O3w7SWqg9" alt=""><figcaption><p><em><strong>서비스-기본 서비스 정보</strong></em></p></figcaption></figure>

* 볼륨 정보\
  서비스에 포함된 볼륨의 정보를 보여 줍니다.\
  볼륨을 선택 할 경우 해당 볼륨의 도메인 정보 및 Origin 정보를 확인 할 수 있습니다.

<figure><img src="/files/6ErZuRlBHY3VN0FwtHKz" alt=""><figcaption><p><em><strong>서비스-볼륨 정보</strong></em></p></figcaption></figure>

* &#x20;계약 정보\
  CDN 서비스의 계약 정보를 확인 할 수 있습니다.

<figure><img src="/files/G7qb5Q4ZyN5WboJ5ndQT" alt=""><figcaption><p><em><strong>서비스-계약 정보</strong></em></p></figcaption></figure>


# Mailing

고객사의 편의를 위해 통계 정보를 이메일로 제공하고 있습니다. \
메일링 서비스를 이용하면 고객사 관리자는 통계 정보를 확인하기 위해 Customer Portal을 매번 방문하지 않아도 됩니다.

고객사는 “Management” → “Mailing” 메뉴로 이동합니다. 서비스명에 따라 트래픽 통계 정보를 받아볼 수 있도록 설정하는 방법은 아래와 같습니다.

1. “**메일링 서비스 등록”** 버튼을 누르면 메일링을 등록할 수 있는 페이지로 이동합니다.
2. 정보를 받고자 하는 서비스명, 볼륨명, 메일종류를 선택합니다.
3. 메일 제목, 발송 주기, 발송 시간, 수신자를 입력합니다.
4. “**등록**” 버튼을 클릭하면 메일링 서비스가 등록됩니다.

{% tabs %}
{% tab title="CDN 사용보고" %}
CDN 사용보고는 CDN 사용 내역을 **매일** | **매주** | **매월** 단위로 발송 시간에 맞춰 수신자 리스트에 있는 메일 주소로 발송하는 서비스 입니다.

* CDN보고 매일 발송 (<mark style="color:red;">**발송일 기준 전일 데이터**</mark>)
  * 해당 서비스의 시간대별 트래픽 정보 (최태 트래픽, 전송량), 주간 트래 정보, 임계치 정보 (트래픽, 저장용량) 통계 데이터를 발송 합니다.&#x20;
* CDN보고 매주 발송 (<mark style="color:red;">**발송일 기준 전일 \~ 7일전 데이터**</mark> )
  * &#x20; 해당 서비스의 주간 트래픽 정보 (최대 트래픽, 전송량)에 대한 통계 데이터를 발송 합니다.&#x20;
* CDN보고 매월 발송 (<mark style="color:red;">**발송일 기준 전달 데이터**</mark>)
  * 해당 서비스의 월간 트래픽 정보 (최대 트래픽, 전송량)에 대한 통계 데이터를 발송 합니다.
    {% endtab %}

{% tab title="CDN 월간보고" %}
CDN 월간보고는 CDN 사용 내역을 매월 특정 발송 일자, 발송 시간에  맞춰 수신자 리스트에 있는 메일 주소로 발송하는 서비스 입니다. (<mark style="color:red;">**발송일 기준 전달 데이터**</mark>)

월간보고는 해당 서비스의 볼륨별 트래픽 순위, 국내/외 접속수, 트래픽 추이, 전송량 추이, 저장용량 추이, 동시 접속수, 최대 히트수에 대한 통계 데이터를 발송 합니다.
{% endtab %}

{% tab title="대시보드 메일링 서비스" %}
대보드 메일링 서비스는 **매일** | **매주** | **매월** 단위로 발송 시간에  맞춰\
Dashboard 화면에 출력되는 PDF 파일을 수신자 리스트에 있는 메일 주소로 발송하는서비스 입니다.
{% endtab %}
{% endtabs %}

<figure><img src="/files/cnukJhLVz7EAehy7g8cp" alt=""><figcaption><p><em><strong>Mailing 설정 화면</strong></em></p></figcaption></figure>


# Purge

고객사의 원본 서버에서 콘텐츠가 삭제되어도, 캐시 서버는 갱신 주기가 만료된 후에야 원본 서버의 콘텐츠의 변경 유무를 확인합니다. 변경된 내용이 확인되면 그 때 해당 콘텐츠를 삭제합니다.

예를 들어, HTTP 응답 헤더의 Cache-control이 Max-age를 86400(24시간)이라고 설정한 경우를 살펴 보겠습니다. 캐싱 주기는 24시간인데, 1시간 뒤에 고객사의 원본 서버에서 캐싱된 콘텐츠를 삭제하는 상황이 발생했습니다. 이 경우 캐시 서버는 갱신 주기를 24시간으로 인식하고 있으므로, 23시간 뒤에야 해당 콘텐츠를 삭제하게 됩니다. 이런 상황이 발생하면 최종 사용자들은 23시간 동안 이미 삭제된 파일을 캐시 서버를 통해 계속 사용할 수 있게 됩니다. 이 파일이 정책적으로 중요한 파일일 경우, 심각한 문제를 야기할 수 있습니다.

이런 동기화 지연 현상을 해결할 수 있는 방법으로 퍼지가 있습니다. 캐시 서버에 있는 해당 콘텐츠를 직접 삭제함으로써 강제로 원본 서버로부터 캐싱이 이루어지게 하는 기능입니다.&#x20;

## Purge

&#x20;“Management” → “Purge” 메뉴로 이동합니다. Purge 서비스를 이용하는 방법은 아래와 같습니다.

1. 서비스 이름을 선택 후 "**조회**" 버튼을 클릭합니다.
2. Purge를 실행할 도메인을 선택합니다.
3. 도메인을 제외한 경로를 Purge 대상에 입력합니다. ex) /coffee/latte/valila.jpg
4. “**Purge 요청**” 버튼을 통해 Purge를 실행합니다.
5. 결과 화면을 통해 Purge 대상 및 성공 여부를 확인 하실 수 있습니다.

![Purge 설정 화면](/files/w5bQYIVhDisWUcPilxoV)

![Purge 결과 화면](/files/5Yd0uF420LmUc8m7V41R)

{% hint style="warning" %}
**주의 사항**

Purge를 너무 자주, 다량으로 실행하면 시스템에 과부하를 일으켜 원활한 서비스에 방해가 될 수 있습니다.
{% endhint %}

## Purge Logs

Purge를 수행한 이력에 대해 조회를 할 수 있습니다.

로그인한 계정에 권한이 존재하는 서비스/볼륨에 대한 Purge 이력이 출력 되기 때문에 Default 최근 24시간 내의 Purge 이력이 조회 됩니다. 이전 시간대의 Purge 이력을 확인 하기 위해서는 "**전체**"로 선택하고 "**검색**" 버튼을 선택 하면 됩니다.

<figure><img src="/files/XeZbcneDQZpkwtvcHgRY" alt=""><figcaption><p><em><strong>Purge 리스트</strong></em></p></figcaption></figure>

Purge 대상의 길이 제한으로 인해 확인이 어려울 경우 Purge 대상 컬럼을 클릭 하시면면 Popup 형태로 Purge 대상에 대해 확인 할 수 있습니다.

<figure><img src="/files/AUn7Yz3gOse36mS5gvcA" alt=""><figcaption><p><em><strong>Purge Logs</strong></em></p></figcaption></figure>


# Diagnostics

CDN 서비스에 대해 간단한 진단을 수행 할 수 있는 메뉴 입니다.\
서비스를 선택 하거나 직접 입력을 통해 서비스에 대한 진단을 수행 할 수 있습니다.

## 직접 입력

직접 입력을 선택 할 경우 진단 방식은 총 3가지로 아래의 진단 기능을 사용하실 수 있습니다.

### DNS 진단

국내외 8개 DNS 서버를 통해 해당 도메인에 대한 유효성 검증을 진행 합니다.

1. 진단 도메인 입력 ex) download.solbox.com
2. 도메인 질의 유형 선택 ex) A record
3. "**진단하기**" 버튼 선택

<figure><img src="/files/qwbdQW5Zet9fjM5vqE91" alt=""><figcaption><p><em><strong>DNS 진단</strong></em></p></figcaption></figure>

### HTTP 요청

진단 URI 입력을 통한 Response Header 요청 결과를 요청 합니다.

1. 진단 URI 입력 ex) download.solbox.com/images/rsync.png
2. Token 인증이 필요한 경우 "JWT 생성" 을 통한 Token 추가
3. HTTP Header 옵션이 필요한 경우 key / value 추가
4. "**진단하기**" 버튼 선택을 통한 Response Header 요청 결과 요청

진단 결과 Status Code가 200 일 경우 해당 파일에 대한 "**다운로드**", "**재생하기**" 버튼이 활성화 됩니다.\
"**재생하기**" 버튼은 HLS Protocol을 지원하는 파일의 경우 Popup Player를 통해 해당 파일을 재생 할 수 있습니다.<br>

<figure><img src="/files/ykfo6ww8mz1UCDS5gNI6" alt=""><figcaption><p><em><strong>HTTP 요청</strong></em></p></figcaption></figure>

### SSL 진단

진단 도메인 입력을 통한 SSL 인증서 검증을 진행 합니다.\
SSL 인증서에 대한 정보와 체인 인증서에 대한 정보를 출력 합니다.

1. 진단 도메인 입력 ex) [www.google.co.kr](http://www.google.co.kr)
2. "**진단**" 버튼 클릭

진단 도메인이 잘못 입력된 경우 (해당 도메인이 존재하지 않거나 HTTPS를 사용하지 않은 경우)\
"올바른 진단 도메인을 입력하세요." 에러가 발생 할 수 있습니다.

<figure><img src="/files/jKvsxMUwNgJrCZOvwIVz" alt=""><figcaption><p><em><strong>SSL 진단</strong></em></p></figcaption></figure>

## 서비스 선택

해당 계정의 권한이 있는 서비스를 선택 할 경우 기본적인 서비스 정보와 진단을 위해 필요한 기본 정보가 출력 됩니다.

{% hint style="info" %}
서비스 타입이 **Delivery** 일 경우 프로토콜은 **HTTP** 와 **HTTPS** 만 선택 가능

서비스 타입이 **MediaStreaming** 일 경우 프로토콜은 **HTTP/HLS** 와 **HTTPS/HLS** 만 선택 가능
{% endhint %}

1. 서비스 이름 선택
2. 컨텐츠 경로 입력
3. "**진단 URI 생성**" 버튼 클릭 -> 진단 URI 창에 자동 입력
4. Token 인증이 필요한 경우 "**JWT 생성**" 을 통한 Token 추가 -> 진단 URI 창에 자동 입력
5. HTTP Header 옵션이 필요한 경우 key / value 추가
6. "**진단하기**" 버튼 클릭으로 서비스 진단

진단 결과 DNS 확인 과 HTTP HEADER 요청 결과가 모두 Success 일 때 Delivery 서비스의 경우 "**다운로드**" / MediaStreaming 서비스의 경우 "**재생하기**" 버튼이 자동으로 생성 됩니다.

<figure><img src="/files/Q0IvWoBEKj4fWp8XIBy5" alt=""><figcaption><p><em><strong>서비스 - 진단</strong></em></p></figcaption></figure>


# Account

Service Provider 에 Customer Portal 의 접속을 허용하는 계정을 관리 할수 있는 메뉴입니다. \
새로운 계정을 등록하거나 등록된 계정을 수정 및 삭제할 수 있습니다.

{% hint style="warning" %}
해당 기능은 Account 메뉴의 접근 권한이 존재 해야 하며 계정의 생성/수정/삭제 권한을 부여 받아야 사용 할 수 있습니다.
{% endhint %}

<figure><img src="/files/QaYwf3N1btwo5cI0wx7b" alt=""><figcaption><p><em><strong>Account</strong></em></p></figcaption></figure>


# 콘텐츠 접근 인증

### 접근 인증

> 콘텐츠 접근 관련 만료 시간, 인증 경로, 무결성에 대해 설명합니다.

### 보안 토큰

> JWT(Json Web Token)를 사용하여 보안 토큰을 생성하고, 전달하는 방법에 대해 설명합니다.


# 접근 인증

CDN의 다운로드와 스트리밍 서비스는 인증 과정을 통해 콘텐트에 대한 보안을 제공합니다. 본 장에서는 만료 시간(Expiration Time)과 인증 경로(Path) 그리고 무결성(Integrity)에 대해 설명합니다.

## 만료 시간(Expiration) <a href="#toc460853024" id="toc460853024"></a>

사용자의 요청이 만료 시간 이내일 경우에는 인증에 성공하지만, 만료 시간을 초과한 경우 인증에 실패합니다. 아래 표는 만료 시간에 따른 인증 결과에 대한 예시를 보여줍니다.

| 만료 시간(exp)          | 요청 시간               | 인증 결과                              |
| ------------------- | ------------------- | ---------------------------------- |
| 2016/01/01 12:00:00 | 2016/01/01 11:59:59 | 성공                                 |
|                     | 2016/01/01 12:00:00 | 성공                                 |
|                     | 2016/01/01 12:00:01 | <mark style="color:red;">실패</mark> |

## 인증 경로(Path) <a href="#toc460853025" id="toc460853025"></a>

사용자가 요청한 콘텐트 경로에 대해 접근 권한을 가지고 있는지 확인하는 과정입니다. 실제 콘텐트 파일 경로와 인증 경로가 일치하거나 하위 경로에 포함되어 있는 경우에는 인증에 성공하지만, 그렇지 않을 경우에는 인증에 실패합니다. 아래 표는 인증 경로에 따른 인증 결과에 대한 예시를 보여줍니다.

<table><thead><tr><th width="196">인증 경로(path)</th><th width="401">사용자 요청</th><th>인증 결과</th></tr></thead><tbody><tr><td>/foo/sample.stream</td><td>http://live.solbox.com<mark style="color:blue;">/foo/sample.stream</mark></td><td>성공</td></tr><tr><td> </td><td>http://live.solbox.com<mark style="color:blue;">/foo/sample2.stream</mark></td><td><mark style="color:red;">실패</mark></td></tr><tr><td>/foo/sample.mp4</td><td>http://vod.solbox.com<mark style="color:blue;">/foo/sample.mp4</mark></td><td>성공</td></tr><tr><td> </td><td>http://vod.solbox.com<mark style="color:blue;">/foo/sample2.mp4</mark></td><td><mark style="color:red;">실패</mark></td></tr><tr><td> </td><td>http://vod.solbox.com<mark style="color:blue;">/foo/foo/sample.mp4</mark></td><td><mark style="color:red;">실패</mark></td></tr><tr><td> </td><td>http://vod.solbox.com<mark style="color:blue;">/foo2/sample.mp4</mark></td><td><mark style="color:red;">실패</mark></td></tr><tr><td>/foo/bar</td><td>http://vod.solbox.com<mark style="color:blue;">/foo/bar/sample.mp4</mark></td><td>성공</td></tr><tr><td> </td><td>http://vod.solbox.com<mark style="color:blue;">/foo/bar/sample2.mp4</mark></td><td>성공</td></tr><tr><td> </td><td>http://vod.solbox.com<mark style="color:blue;">/foo/bar/foo2/sample.mp4</mark></td><td>성공</td></tr><tr><td> </td><td>http://vod.solbox.com<mark style="color:blue;">/foo/foo2/sample.mp4</mark></td><td><mark style="color:red;">실패</mark></td></tr></tbody></table>

## 무결성(Integrity) <a href="#toc460853026" id="toc460853026"></a>

사용자의 요청이 위조 또는 변조되었는지 확인이 필요합니다. 서명(Signature)이 일치하는지 검사하여 무결성을 보장할 수 있습니다. 자세한 서명 방법은, 다음 장의  [서명(Signature)](broken://pages/OB6kXTJtSIsW6WD5Tklq#_toc460853033)에 기술되어 있습니다.


# 보안 토큰

CDN 서비스 에서는 인증 방법으로 보안 토큰을 사용합니다. 본 장에서는 클레임(Claim) 기반의 JWT(Json Web Token)를 사용하여 보안 토큰을 생성하고, 전달하는 방법에 대해 설명합니다.

{% tabs %}
{% tab title="<클레임>" %}
보안 토큰에 정의되어 있는 개별 정보를 클레임(Claim)이라고 부르며, 클레임 이름(Claim Name)과 클레임 값(Claim Value)이 key-value 쌍으로 구성되어 있습니다.
{% endtab %}
{% endtabs %}

## JWT(Json Web Token) <a href="#toc460853028" id="toc460853028"></a>

JWT는 JSON 형식으로 기술한 클레임 기반의 데이터 전송 표준 규약입니다. 자세한 설명은 아래 사이트를 참고하시길 바랍니다.

* 참고사이트

{% tabs %}
{% tab title="<http://jwt.io>" %}
[http://jwt.io](http://jwt.io/) 에서는 웹 페이지에서 토큰을 생성∙검증할 수 있고, 개발 언어 별 라이브러리 정보를 제공합니다.
{% endtab %}

{% tab title="\<RFC 7519>" %}
<https://tools.ietf.org/html/rfc7519>
{% endtab %}
{% endtabs %}

## 전달 방법 <a href="#toc460853029" id="toc460853029"></a>

보안 토큰은 HTTP 쿼리 파라미터로 전달되고, 만료 시간(exp), 인증 경로(path) 등의 정보를 포함하고 있습니다. 아래는 인증 URL에 대한 예시입니다.

{% hint style="info" %}
<스트리밍 서비스>

스트리밍 서비스에서의 전달 방법은 부록 “[프로토콜에 따른 전달 방법](/secure_token/undefined#_toc460853042)” 절을 참고하시길 바랍니다.
{% endhint %}

**기본적인 인증 URL의 예.**

* 콘텐트 경로: /foo/sample.mp4
* 보안 토큰: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9zYW1wbGUubXA0In0.NSO1VgouVfQBpJLlGZsk4r466wz6ba3weOm2Ba4VVUI
* 만료시간(exp): 16624807830
* 인증 경로(path): /foo/sample.mp4

> eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9zYW1wbGUubXA0In0.NSO1VgouVfQBpJLlGZsk4r466wz6ba3weOm2Ba4VVUI

## 구조와 생성 <a href="#toc460853030" id="toc460853030"></a>

보안 토큰의 구조는 헤더(Header), 페이로드(Payload), 서명(Signature) 세 부분으로 구성되어 있습니다.

<figure><img src="/files/kX5DyaTM7ecJUvifAbig" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
<토큰 생성 예제>

JWT 라이브러리(Java, PHP)를 사용하여 토큰을 생성하는 방법은 아래 “[토큰 생성 예제](/secure_token/undefined)”를 참고하세요.
{% endhint %}

### JOSE(JSON Object Signing and Encryption) 헤더 <a href="#toc460853031" id="toc460853031"></a>

헤더는 토큰을 어떻게 해석해야 하는지 명시한 부분으로 알고리즘과 데이터 타입을 정의합니다.

```json
{
    "alg": "HS256",
    "typ": "JWT"
}
```

<table><thead><tr><th width="123">Key</th><th width="263">설명</th><th>Value</th></tr></thead><tbody><tr><td>alg</td><td>서명(Signature) 생성시에 사용한 알고리즘을 정의.</td><td><ul><li><p>HS256</p><ul><li>현재는 SHA-256 알고리즘만 지원합니다.</li></ul></li></ul></td></tr><tr><td>typ</td><td>클레임의 표현 형식을 정의.</td><td><ul><li><p>JWT</p><ul><li>현재 는 JWT 형식만 지원합니다.</li></ul></li></ul></td></tr></tbody></table>

### 페이로드(Payload) <a href="#toc460853032" id="toc460853032"></a>

페이로드가 포함하고 있는 모든 클레임을 클레임 셋(Claim Set)이라고 부릅니다.

```json
{
    "exp": 16624807830,
    "path":"/foo/sample.mp4",
    "playstart": 0,
    "duration": 180
}
```

<table><thead><tr><th width="131">Key</th><th width="248">설명</th><th>Value</th></tr></thead><tbody><tr><td>exp</td><td>만료 시간(Expiration Time)</td><td><ul><li>만료시간</li></ul></td></tr><tr><td>path</td><td>클레임의 표현 형식을 정의.</td><td><ul><li><p>인증 경로(Path)</p><ul><li>(/)를 포함한 디렉터리 또는, 콘텐트 파일의 실제 경로를 의미합니다. 인증 경로가 디렉터리 일 경우에는 하위 경로에 대한 접근 권한도 포함합니다.</li></ul></li></ul></td></tr><tr><td>playstart</td><td>재생 시작 시간(초)으로 VOD 서비스에서만 지원합니다.</td><td><ul><li>재생 시작 시간(초)</li></ul></td></tr><tr><td>duration</td><td>재생 시간(초)으로 라이브, VOD 서비스에서 지원합니다.</td><td><ul><li>재생 시간(초)</li></ul></td></tr></tbody></table>

{% hint style="info" %}
<스트리밍 서비스>

스트리밍 서비스는 인증 경로에 가상 파일을 포함하지 않도록 주의해야 합니다. 가상 파일에 대한 설명은 부록 부록의 “[가상 파일(Virtual file)](/secure_token/undefined#_toc460853041)”을 참고하세요.
{% endhint %}

### 서명(Signature) <a href="#toc460853033" id="toc460853033"></a>

토큰은 헤더와 페이로드를 위∙변조 할 수 없도록 반드시 보안-키(Secure Key)를 사용하여 SHA-256 알고리즘으로 서명해야 합니다.

#### <보안-키>

비밀 키(Secret Key)라고도 불리며, CDN과 콘텐트 제공자(Content Provider)간의 보안 채널을 생성하기 위해서 미리 공유하는 키입니다.

<figure><img src="/files/LGobVgJP86STt88tN1nM" alt=""><figcaption><p>Signing. (출처: http://100bytes.com/tutorials/security/jwt/json-web-signature)</p></figcaption></figure>

### 서명에 대한 예시 <a href="#toc460853034" id="toc460853034"></a>

아래는 서명 방법을 예시를 통해 설명합니다.

* 헤더와 페이로드를 각각 BASE64로 인코딩(Encoding)합니다.

<table><thead><tr><th width="140">데이터</th><th width="233">문자열</th><th>BASE64 인코딩</th></tr></thead><tbody><tr><td><strong>헤더</strong></td><td><p><em>{</em></p><p><em>"alg": "HS256",</em></p><p><em>"typ": "JWT"</em></p><p><em>}</em></p></td><td><p><mark style="color:red;">eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp</mark></p><p><mark style="color:red;">XVCJ9</mark></p></td></tr><tr><td><strong>페이로드</strong></td><td><p><em>{</em></p><p><em>"exp":</em> 16624807830<em>,</em></p><p><em>"path": "/foo/sample.mp4"</em></p><p><em>}</em></p></td><td><mark style="color:orange;">eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9zYW1wbGUubXA0In0</mark></td></tr></tbody></table>

{% hint style="warning" %}
BASE64 인코딩 문자열은 URL-Safe를 보장하고, 패딩(padding)은 제거해야 합니다.
{% endhint %}

* 마침표(.)를 구분 자로 사용하여 헤더와 페이로드를 연결합니다.

> <mark style="color:red;">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.</mark>
>
> <mark style="color:orange;">eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9zYW1wbGUubXA0In0</mark>

* 마지막으로 위의 문자열을 보안-키(Secure key)와 함께 SHA-256 알고리즘으로 해시 값을 추출합니다.

> *HMACSHA256(*
>
> *“*&#x65;yJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9zYW1wbGUubXA0In&#x30;*”,*
>
> *<mark style="color:red;">Secure Key</mark>*
>
> *)*


# 토큰 생성 예제

## 토큰 생성 예제 <a href="#toc460853036" id="toc460853036"></a>

### Java <a href="#toc460853037" id="toc460853037"></a>

Java-jwt 라이브러리를 사용하여 토큰을 생성하는 예제입니다. 자세한 설명은 공식 사이트를 참고하시길 바랍니다.

{% hint style="info" %}
\<java-jwt공식 사이트>

<https://github.com/auth0/java-jwt><br>
{% endhint %}

<figure><img src="/files/u1ZnlCYt9fTFweBAmT25" alt=""><figcaption><p>Sign JWT (HS256)</p></figcaption></figure>

<figure><img src="/files/NyvRC3gUoaLlqAl7DaNW" alt=""><figcaption><p>Verify JWT (HS256)</p></figcaption></figure>

### PHP <a href="#toc460853038" id="toc460853038"></a>

PHP-JWT 라이브러리를 사용하여 토큰을 생성하는 예제입니다. 자세한 설명은 공식 사이트를 참고하시길 바랍니다.

{% hint style="info" %}
< PHP-JWT 공식 사이트>

<https://github.com/firebase/php-jwt>
{% endhint %}

<figure><img src="/files/fii5CWUoFwX5xGAsVuI3" alt=""><figcaption><p>PHP-JWT</p></figcaption></figure>

## 스트리밍 서비스 <a href="#toc460853039" id="toc460853039"></a>

CDN 서비스에서 HTTP Pseudo Streaming, HTTP Live Streaming, MPEG-DASH 프로토콜을 지원합니다.

### URI 구조 <a href="#toc460853040" id="toc460853040"></a>

* 콘텐트 URI(Content URI)

사용자가 콘텐트를 재생할 수 있는 주소로서, 서비스 도메인(Service Domain)과 콘텐트 경로(Content Path) 그리고 Query(쿼리)로 구성됩니다. 아래는 라이브, VOD 서비스에서 HLS 프로토콜에 대한 예제입니다.

<table><thead><tr><th width="200">서비스 도메인</th><th width="209">콘텐트 경로</th><th>가상 파일</th><th>쿼리</th></tr></thead><tbody><tr><td>http://live.solbox.com</td><td>/foo/_definst_/sample.steam</td><td>playlist.m3u8</td><td>?token=eyJh…b9l4</td></tr><tr><td>http://vod.solbox.com</td><td>/foo/_definst_/sample.mp4</td><td>playlist.m3u8</td><td>?token=eyJh…b9l4</td></tr></tbody></table>

> * 서비스 도메인
>
> CDN 서비스에 접근하기 위한 서비스 도메인입니다.
>
> * 콘텐트 경로(Content Path)
>
> 콘텐트 저장소의 경로로서, 기본 URI 이후의 상대 경로를 포함한 파일명을 의미합니다.
>
> * 가상 파일(Virtual File)
>
> 다음 [가상파일](#_toc460853041)을 참고하세요.

### 가상 파일(Virtual File) <a href="#toc460853041" id="toc460853041"></a>

플레이어에서 정상적으로 재생하기 위해서는 프로토콜 별로 URL에 가상 파일을 접미어(Suffix)로 붙여줘야 합니다. (다음 [프로토콜에 따른 전달 방법](#_toc460853042)의 예시를 참고하세요.)

반면에 보안 토큰의 인증 경로(path)에는 가상 파일을 반드시 제외해야 합니다.\
아래 표는 프로토콜에 따른 가상 파일을 보여줍니다.

| 스트리밍 프로토콜             | 가상 파일         |
| --------------------- | ------------- |
| HTTP Pseudo Streaming | content.mp4   |
| HTTP Live Streaming   | playlist.m3u8 |
| MPEG-DASH             | manifest.mpd  |

### 프로토콜에 따른 전달 방법. <a href="#toc460853042" id="toc460853042"></a>

* HTTP Pseudo Streaming
  * 콘텐트 경로: /foo/\_definst\_/sample.mp4
  * 가상 파일: content.mp4

> *<http://vod.solbox.com><mark style="color:blue;">/foo/\_definst\_/sample.mp4/</mark><mark style="color:red;">content.mp4</mark>?<mark style="color:green;">token=</mark>* <mark style="color:green;"></mark><mark style="color:green;">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9fZGVmaW5zdF8vc2FtcGxlLm1wNCJ9.WljNKKqjc22nXSFJQzzoD4D9pfhAZSp7HboSNs\_huv8</mark>

* HTTP Live Streaming
  * 라이브
    * 콘텐트 경로: /foo/\_definst\_/sample.stream
    * 가상 파일: playlist.m3u8

> *<http://live.solbox.com><mark style="color:blue;">/foo/\_definst\_/sample.stream/</mark><mark style="color:red;">playlist.m3u8?</mark><mark style="color:green;">token=</mark>* <mark style="color:green;"></mark><mark style="color:green;">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9fZGVmaW5zdF8vc2FtcGxlLm1wNCJ9.WljNKKqjc22nXSFJQzzoD4D9pfhAZSp7HboSNs\_huv8</mark>

* VOD
  * 콘텐트 경로: /foo/\_definst\_/sample.mp4
  * 가상 파일: playlist.m3u8

> *<http://vod.solbox.com><mark style="color:blue;">/foo/\_definst\_/sample.mp4/</mark><mark style="color:red;">playlist.m3u8?</mark><mark style="color:green;">token=</mark>* <mark style="color:green;"></mark><mark style="color:green;">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9fZGVmaW5zdF8vc2FtcGxlLm1wNCJ9.WljNKKqjc22nXSFJQzzoD4D9pfhAZSp7HboSNs\_huv8</mark>

* MPEG-DASH
  * 라이브
    * 콘텐트 경로: /foo/\_definst\_/sample.stream
    * 가상 파일: manifest.mpd

> *<http://live.solbox.com><mark style="color:blue;">/foo/\_definst\_/sample.stream/</mark><mark style="color:red;">manifest.mpd?</mark><mark style="color:green;">token=</mark>* <mark style="color:green;"></mark><mark style="color:green;">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9fZGVmaW5zdF8vc2FtcGxlLm1wNCJ9.WljNKKqjc22nXSFJQzzoD4D9pfhAZSp7HboSNs\_huv8</mark>

* VOD
  * 콘텐트 경로: /foo/\_definst\_/sample.mp4
  * 가상 파일: manifest.mpd

> *<http://vod.solbox.com><mark style="color:blue;">/foo/\_definst\_/sample.mp4/</mark><mark style="color:red;">manifest.mpd?</mark><mark style="color:green;">token=</mark>* <mark style="color:green;"></mark><mark style="color:green;">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjI0ODA3ODMwLCJwYXRoIjoiL2Zvby9fZGVmaW5zdF8vc2FtcGxlLm1wNCJ9.WljNKKqjc22nXSFJQzzoD4D9pfhAZSp7HboSNs\_huv8</mark>

본 문서와 관련해서 보다 자세하고 구체적인 설명을 원하는 경우 아래 문서를 참고해주시길 바랍니다.

<table><thead><tr><th width="437">문서 제목</th><th>설명</th></tr></thead><tbody><tr><td><a href="http://en.wikipedia.org/wiki/Basic_access_authentication">http://en.wikipedia.org/wiki/Basic_access_authentication</a></td><td>Basic access authentication</td></tr><tr><td><a href="http://jwt.io">http://jwt.io</a></td><td>JWT 디버거 제공.</td></tr><tr><td><a href="https://tools.ietf.org/html/rfc7519">https://tools.ietf.org/html/rfc7519</a></td><td>JWT 표준 문서</td></tr><tr><td><a href="http://bcho.tistory.com">http://bcho.tistory.com</a></td><td>JWT에 대한 설명.</td></tr><tr><td><a href="http://blog.outsider.ne.kr/1160">http://blog.outsider.ne.kr/1160</a></td><td>JWT에 대한 설명.</td></tr></tbody></table>


# 문제 해결&#x20;

### Tech Support

> 빠른  문제 해결을 위한  Tech Support 페이지로 연결됩니다.&#x20;


# 용어 설명

<table data-header-hidden><thead><tr><th width="286.57142857142856"></th><th></th></tr></thead><tbody><tr><td><strong>Adaptive Streaming</strong></td><td>사용자의 대역폭을 자동 감지해 사용자의 환경에 가장 적합한 비트레이트(Bitrate)로 스트리밍하는 방식을 말합니다.</td></tr><tr><td><strong>CDN (Contents Delivery Network)</strong></td><td>콘텐츠를 효율적으로 전달하기 위해 여러 IDC 및 ISP의 노드에 데이터를 저장해 두어 최종 사용자의 콘텐츠 요청이 있을 때 가장 근접한 곳에 있는 서버가 응답하도록 하는 기술입니다.</td></tr><tr><td><p><strong>CDN 서버</strong></p><p><strong>CDN 서비스 담당자</strong></p></td><td><p>CDN의 각 노드를 구성하고 있는 서버를 나타냅니다.</p><p>CDN 서비스 개통과 운영에 관련된 기술 지원을 담당하는 CDN 서비스 제공자를 말합니다.</p></td></tr><tr><td><strong>GSLB (Global Server Load Balancer)</strong></td><td>CDN 서비스를 위한 주요한 기술입니다. DNS 정보를 기반으로 사용자와 가까운 최적의 서버를 찾아 사용자가 요청한 콘텐츠를 빠르고 안정적으로 전송시켜 줍니다. 부하가 발생하면 여러 대로 운영 중인 서버 중에 적절히 분산시켜 대용량 서비스도 문제 없이 처리할 수 있습니다.</td></tr><tr><td><strong>Hot 콘텐츠</strong></td><td>사용자들이 자주 다운로드하거나 재생 요청이 매우 빈번한 인기 있는 콘텐츠를 말합니다.</td></tr><tr><td><strong>HLS (HTTP Live Streaming)</strong></td><td>Apple에서 고안한 HTTP 기반의 Adaptive Streaming 프로토콜입니다.</td></tr><tr><td><strong>ISP (Internet Service Provider)</strong></td><td>개인이나 기업체에게 인터넷 접속 서비스, 웹사이트 구축 및 웹호스팅 서비스 등을 제공하는 회사를 말합니다. (예, KT, SK브로드밴드, LG유플러스 등)</td></tr><tr><td><strong>Purge</strong></td><td>캐시 서버들이 저장하고 있는 파일들을 삭제하고 동기화하는 것을 말합니다.</td></tr><tr><td><strong>Customer Portal</strong></td><td>CDN 사용자를 위해 제공되는 포탈입니다. CDN 서비스 통계 및 사용자 정보, 콘텐츠 정보 등 서비스에 관련된 제반 정보를 제공하고 있습니다.</td></tr><tr><td><strong>VoD (Video on Demand) 서비스</strong></td><td>주문형 비디오 시스템으로 최종 사용자가 원하는 시간에 원하는 내용의 프로그램을 전송, 재생해주는 서비스를 말합니다.</td></tr><tr><td><strong>갱신 주기</strong></td><td>캐시 서버에서 캐시된 파일을 원본 서버에 있는 파일과 비교하여 다르면 새로운 파일로 얼마나 자주 갱신할 지에 대한 주기를 말합니다.</td></tr><tr><td><strong>볼륨 (Volume)</strong></td><td>서비스 제공자(Service Provider)의 요구 사항에 따라 서비스를 효율적으로 관리하고 운영하기 위해 CDN 서비스를 세분화시킨 기본 단위를 말합니다. 볼륨 별로 서비스 도메인 네임과 통계를 따로 제공하고, 고객 관리자 계정의 권한도 따로 설정할 수 있습니다. 예를 들어 게임 개발사인 고객은 게임이 여러 개인 경우 게임 별로 볼륨을 구성하거나, 본 게임과 테스트용 게임을 각각의 볼륨으로 구분하여 설정하는 등 다양하게 볼륨을 구성할 수 있습니다.</td></tr><tr><td><strong>서버 동기화</strong></td><td>2대 이상의 서버들이 가지고 있는 파일들의 정보들을 비교하여 동일한 파일 정보를 유지하도록 하는 것을 말합니다.</td></tr><tr><td><strong>서비스 (Service)</strong></td><td>서비스 제공자와 계약을 통해 제공받고자 하는 Service를 나타내는 단위이며, 계약간에 다뤄지는 서비스 경계에 대한 내역이 설정됩니다.</td></tr><tr><td><strong>스토리지 (Storage)</strong></td><td>기억 장치 또는 저장 장치로서 컴퓨터 시스템에서 데이터와 명령어를 저장하기 위해 사용하는 장치를 말합니다. 일반적으로 컴퓨터 시스템에서는 기억 장치를 가리키기 위해 스토리지와 메모리라는 두 가지 용어를 사용합니다. 자기 디스크 또는 자기 테이프 등과 같은 보조 기억 장치를 스토리지라고 부릅니다. 또한 DRAM 또는 SRAM 등으로 구성되는 주기억 장치와 캐시 기억 장치를 가리킬 때는 메모리라는 용어를 사용합니다.</td></tr><tr><td><strong>원본 서버 (Origin Server)</strong></td><td>서비스할 콘텐츠가 있는 원 서버입니다. CDN의 각 노드에 콘텐츠를 전달하거나 각 노드가 참조하는 서버를 말합니다.</td></tr><tr><td><strong>원격</strong></td><td>사용하고 있는 물리적 PC나 서버 외에 인터넷 등의 통신을 통하여 외부의 PC나 서버에 접속하는 것을 말합니다.</td></tr><tr><td><strong>파일 접근 제어</strong></td><td>사용자 또는 그룹에 따라 파일 또는 디렉토리에 대한 “읽기”, “쓰기” 그리고 “실행하기”에 대한 권한을 다르게 설정하여 파일에 대한 접근을 제어하는 것을 말합니다.</td></tr><tr><td><strong>캐시 서버 (Cache Server)</strong></td><td>인터넷 사용자가 자주 찾는 정보를 따로 모아두는 서버입니다. 인터넷 검색을 할 때마다 웹 서버를 가동시킬 경우 가동 시간을 절약해 주는 네트워크 장비를 말합니다. 정보를 빠르게 찾을 수 있을 뿐 아니라 인터넷에서 자주 일어나는 과부하 현상을 획기적으로 줄여줍니다.</td></tr><tr><td><strong>트래픽 제어</strong></td><td>통신 시스템의 신호 또는 정보의 흐름을 제어하는 것을 말합니다.</td></tr><tr><td><strong>프로비저닝 (Provisioning)</strong></td><td>IT 자원을 할당 또는 최적의 자원을 찾아 적절하게 배치해서 운영할 수 있도록 준비해 놓은 것을 말합니다.</td></tr></tbody></table>


