CDN 이란 무엇일까?
콘텐츠 전송 네트워크(Content delivery network 또는 Content distribution network)는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. CDN은 높은 사용성과 효율로 사용자에게 컨텐츠를 전달하기 위해 사용된다. 오늘날의 여러 서비스들은 다양한 컨텐츠 (텍스트, 그래픽, 미디어 파일 등)를 서비스하고 있는데 이렇게 다양하고 대용량의 컨텐츠를 지연 없이 서비스하기 위해서는 CDN 사용은 필연적이다.
사용자(클라이언트)와 웹사이트(서버)의 양방향 통신은 인터넷을 사용한 통신 트래픽을 주고 받으며 이어진다. 또한 이러한 통신은 적게는 수십 Km 많게는 수백 ~ 수천 Km의 물리적 거리를 이동하기 때문에 통신 지연이 발생할 수밖에 없다. 여기서 CDN 서버를 사용하여 기존의 웹사이트(서버)보다 사용자에 더 가까이 있는 서버에 데이터를 저장하고 통신 함으로써 지연을 줄일 수 있는 것이다.
한마디로 CDN을 사용하면 사용자가 사용하는 서비스의 전체적인 사용성과 효율성을 높일 수 있다.
CDN을 사용하면 어떤 이점이 있을까?
위에서 CDN을 사용해서 서비스의 전체적인 사용성과 효율성을 높일 수 있다 했는데 그럼 어떠한 이점이 있는지 정확히 알아보자
1. 페이지 로드 시간이 단축된다.
CDN을 사용하면 웹사이트(서버)와 사용자(클라이언트)간의 통신에서 원본서버가 아닌 가장 가까운 캐시 서버에서 컨텐트가 전송된다. 덕분에 페이지 로드 시간이 빨리자며 사용자는 더욱 빠른 응답을 통해 좋은 경험을 할 수 있다. 만약 본인이 간단하게 웹사이트의 속도를 향상하는 방법을 찾고 있다면 설정이 비교적 간단한 CDN사용을 검토해봐야 한다.
2. 대역폭 비용 절감
만약 CDN을 사용하지 않는다면 모든 사용자(클라이언트)의 요청을 직접적으로 웹사이트(서버)를 사용하여 처리될 것이다. 모든 요청을 네트워크 대역폭을 사용하기 때문에 서비스 관리자는 상당한 대역폭 비용을 지불해야 한다. 하지만 캐싱등을 통해 CDN이 기존의 서버가 제공해야 하는 데이터를 대신 제공해 줌으로써 서버의 사용량을 줄여준다면 자연스럽게 지불해야 하는 대역폭 비용도 낮아진다.
3. 콘텐츠의 고가용성 유지
한번에 너무 많은 사용자가 웹사이트에 방문하면 네트워크 하드웨어 오류가 발생할 수 있다. CDN을 사용하면 더 많은 트래픽을 처리하여 서버의 로드를 줄일 수 있기 때문에 안정적인 운영이 가능해진다. 또한 여러 개의 CDN 서버를 사용하여 하나 이상의 CDN 서버가 다운되면 다른 서버가 오리진 서버를 대체한다.
4. 웹 사이트 보안 강화
DDOS 공격 같은 경우 한번에 대량의 가짜 트래픽을 웹 사이트에 요청하여 서비스가 중지되도록 한다. 이때 여러 개의 CDN 서버를 사용하여 중간에 트래픽을 분산하여 서버 간의 로드를 분산시키면 서버에 미치는 영향을 줄여 서비스가 중지되는 것을 막을 수 있다.
CDN은 어떻게 작동하는가
CDN은 여러 지리적 위치에 접속 지점(POP) 또는 CDN엣지 서버 그룹을 설정하는 방식으로 작동한다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 가속 및 에지 로직 계산의 원리를 기반으로 작동한다.
1. 캐싱
캐싱은 더 빨른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스이다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리에 적용된다. 간단히 말하면 CDN에서는 캐싱을 통해 네트워크의 여러 서버에 정적 웹사이트 콘텐츠를 저장하는 작업을 한다. 작업은 아래와 같은 순서를 통해 진행된다.
* POP란? : Point of Presence로 둘 이상의 서로 다른 네트워크 또는 통신 장치가 서로 연결되는 지점이다. 즉, POP는 주로 다른 장치에 연결하여 인터넷과의 연결을 설정하는 데 도움이 되는 액세스 포인트, 위치 또는 시설을 나타낸다.
- 물리적으로 멀리 떨어진 웹사이트 사용자는 사이트에서 정적 콘텐츠를 요청한다.
- 요청이 웹 사이트/어플리케이션 서버 또는 오리진 서버에 도달한다. 이후 서버는 요청에 대한 응답을 보내고 사용자와 물리적으로 가장 가까운 CDN POP에 응답 복사본(이를 나중에 사용한다)을 보낸다.
- CDN POP서버는 복사본을 캐싱된 파일로 저장한다.
- 다음에 해당 사용자 또는 다른 사용자가 동일한 요청을 하면, 캐싱된 파일이 있는 서버가 응답을 보낸다.
2. 동적 가속
동적 가속을 통해 웹 사이트(서버)와 클라이언트(사용자) 사이에서 발생하는 동적 웹 콘텐츠에 대한 서버 응답 시간을 단축할 수 있다. 클라이언트가 요청을 할 때마다 동적 콘텐츠는 변경될 수 있기 때문에 앞서 말한 캐싱이 제대로 작동하지 않을 확률이 크다. 때문에 CDN 서버는 모든 동적 요청에 대해 기존의 서버 (오리진 서버)에 다시 연결해야 하며, 이를 가속화하는 것이 동적 가속의 목표이다.
클라이언트가 인터넷을 통해 웹 서버로 직접 동적 컨텐츠에 대한 요청을 보내는 경우 네트워크 대기 시간으로 인해 요청이 손실되거나 지연될 수 있다. 하지만 CDN 서버가 오리진 서버에 요청을 보내는 경우 해당 작업에서 걸리는 시간을 대폭 감소시키고 더욱 최적화할 수 있다.
- 지능형 라우팅 알고리즘 사용
- 오리진 서버에 대한 물리적 근접성 사용
- 클라이언트 요청을 대신 처리하여 요청 트래픽에 대한 부하를 줄일 수 있음
3. 엣지 로직 계산
클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN에지 서버에 프로그래밍을 한다.
다음과 같이 프로그래밍한다.
- 사용자 요청을 검사하고 캐싱 동작을 수정한다.
- 잘못된 사용자 요청을 확인하고 처리한다.
- 응답하기 전에 콘텐츠를 수정하거나 최적화한다.
출처:
CDN이란 무엇인가요? - CDN 설명 - AWS
aws.amazon.com
AWS의 CDN서비스 CloudFront
Amazon CloudFront는 뛰어난 성능, 보안 및 개발자 편의를 위해 구축된 콘텐츠 전송 네트워크(CDN) 서비스입니다. Amazon CloudFront를 사용하여 다음 작업을 수행할 수 있습니다.
- 자동화된 네트워크 매핑 및 인텔리전트 라우팅을 사용하여 275개 이상 전 세계에 분포된 상호 접속 위치(POP)를 통해 데이터를 전송합니다.
- 트래픽 암호화와 액세스 제어를 통해 보안을 개선하고 AWS Shield Standard를 사용하여 추가 요금 없이 서비스 거부(DDoS) 공격으로부터 보호합니다.
- 비용, 성능 및 보안의 균형을 맞추도록 서버리스 컴퓨팅 기능을 사용하여 AWS 네트워크 에지에서 실행하는 코드를 사용자 지정합니다.
- 높은 전송 속도로 소프트웨어, 게임 패치 및 IoT 업데이트를 전송하도록 자동으로 크기를 조정합니다.
댓글