사용자 도구

사이트 도구


서비스:클라우드_플레어

클라우드플레어(CloudFlare)

클라우드플레어는 미국의 클라우드플레어 사에서 제공하는 복합 서비스로, 네임서버 기능을 제공하면서 클라우드플레어 네임서버를 거치는 서버측의 데이터를 캐쉬형태로 보존해 CDN 기능과 인터넷 보안기능을 제공하는 서비스다.

회사명이자 서비스명인 ‘클라우드플레어’는 기본적으로는 붙여쓰지만 낙타등 표기법(CamelCase)을 이용해서 붙여놓은 것이라 한국에서는 ‘클라우드 플레어’로 떼어써도 무방하다.

기본적으로 클라이언트 측의 사용자 다수가 같은 페이지를 요청할 때 가장 큰 효과를 볼 수 있으며, 서버의 부하 및 데이터 전송량을 감소시켜 트래픽 절약효과가 있으며 서버에 들어오기 전에 클라우드플레어 측에서 처리를 할 수 있기 때문에 DDoS 공격 방어기능 또한 지원한다.

게다가 세계 여러 국가에 클라우드플레어 CDN 센터를 가지고 있어서 국제트래픽 제한이 있거나 해외 전송 속도로 고민하는 사용자라면 속도 증가의 효과도 누릴 수 있다는 장점이 있다.

무료인 베이직부터 유료인 프로, 비지니스, 엔터프라이즈 서비스를 제공하고 있다. 그러나 무료인 베이직 서비스에서 기본적인 서비스 대부분을 지원하기 때문에(무료/유료간의 대역 제한도 없다) 많은 개인 사용자들이 베이직 서비스를 이용하고 있다. 방화벽이나 보안관련 고급기능을 제공하는 유료모델의 경우 기업에서 상당히 많은 사용을 하고 있다.

SSL서비스는 유료서비스였으나 2014년 9월 28일부터 무료로 유니버설 SSL 기능을 지원, SSL 인증서를 가지지 않은 서버라 할지라도 클라우드플레어를 통해서 SSL서비스를 이용할 수 있는 방법을 제공하고 있다. (단 2차 서브 도메인까지만 지원. 3차 서브도메인 이상은 지원 안함) 상업용 사이트의 경우 의무적으로 인증서 채용을 요구받는 한국에서는 무료로 SSL서비스를 이용할 수 있는 길이 열린 셈이라 매우 유용하다 할 수 있다.

원리

클라우드플레어는 사용자가 클라이언트 브라우저 등에서 보낸 요청(리퀘스트)이 기본적으로 DNS를 거치는데 착안한 서비스다. 네임서버로서의 서비스를 온전히 제공하면서 부가기능으로서 캐쉬서버와 각종 방화벽 기능 등의 서비스를 제공하고 있다. 관리자가 통과(패스스루)를 설정할 경우에는 DNS로서의 역할만 하고 들어온 요청을 그대로 서버로 전달하며 기타 기능을 설정해둘 경우에는 클라우드플레어의 서버가 해당 값을 받은 후 설정한 서비스를 제공하게 된다.

클라우드플레어 기본 원리

즉 클라우드플레어가 서버로서의 1차적 역할을 맡고, 프록시 서버로서 실제 서버와 통신을 한다음 결과를 받아 클라우드플레어가 사용자에게 전달하는 구조가 되는 것이다. 이를통해 실제 서버의 정보를 외부에 전달하지 않고 클라우드플레어가 전면에 나서는 형태로 보안문제또한 해결하고 있다. 주로 데이터를 중계하는 것이 주요 작업이다보니 이를 위해서 빠르고 가벼운 속도로 유명한 러시아산 NGINX(엔진엑스) 서버 기반으로 시스템을 이루고 있다고 한다.

CDN 기능

전세계에 있는 클라우드플레어 CDN 센터

앞서 설명했듯 클라우드플레어는 기본적으로 들어온 클라이언트의 요청을 프록시 형태로 실제 서버에 전달해 결과를 되돌려 받은 후 클라우드플레어 서버에서 결과를 다시 클라이언트로 전달해준다. 단순히 해당 값을 클라이언트에 전달하는 것으로 끝이 아니라, 들어온 웹주소를 기반으로 결과를 캐쉬를 한 후 해당 값을 클라이언트에 전달한 데이터를 캐쉬로 남겨두는 것이다. 캐쉬가 살아있는 동안 동일한 요청이 들어올 경우 서버와는 데이터의 변경여부만 체크하고 바로 캐쉬서버에서 데이터를 전송함으로서 서버의 부하를 줄이고, 데이터 절약이 가능하게 하는 것이다.

클라우드플레어의 이 캐쉬 기능은 단순히 웹페이지(HTML), 자바스크립트(JS), 스타일시트(CSS) 뿐만 아니라 이미지까지 캐쉬를 지원하기 때문에 데이터의 절약은 더더욱 효과가 크다. 특히 최신글 일부에 뷰가 집중되는 커뮤니티 사이트의 경우에는 트래픽을 극적으로 절약할 수 있으므로 효과가 극대화 된다고 할 수 있다.

또한 전세계에 분산되어있는 클라우드플레어 CDN 센터1)간에 데이터를 빠르게 전달해 분산시키기 때문에 여러구간을 거치며 지연되는 문제를 회피할 수도 있고, 실질적으로는 서비스 속도 향상으로도 이어지는 효과를 기대할 수 있다.(원래 프록시 서버의 용도가 그러하듯)

캐쉬를 하는 방식은 크게 기본(Basic), 단순(Simplified), 공격적(Aggressive)의 세가지 등급으로 나뉘는데, 세가지 방식은 기본적으로 아래와같은 특성을 가진다.

기본(Basic)
http://nex32.net/pic.jpg
html, js, css, jpg등의 고정된 데이터에 한해서 캐쉬한다
단순화(Simplified)
http://nex32.net/pic.jpg?ignore=this-query-string
웹주소의 전달값(쿼리)을 삭제하고 단순화된 정적인 데이터만을 캐쉬한다. 게시판 등의 동적인 데이터의 주소를 캐쉬하지 않게 만든다.
쿼리값이 실제 페이지에 영향을 미치는 것이 별로 없을 때는 이쪽이 더 효율적일 수 있다.
공격적(Aggressive)
http://nex32.net/pic.jpg?with=query
웹주소의 전달값(쿼리)를 포함한 캐쉬값을 만든다. 게시판 등의 동적 데이터를 포함해서 캐쉬한다.
웹어플리케이션에 따라서 동적인 값과 캐쉬된 값 사이의 괴리가 발생하는 경우가 발생할 수 있다. 예를들어서 로그인을 했는데 캐쉬값 때문에 로그인 안한 상태로 보인다던가 하는 식.

데이터 최적화기능

CDN기능과 더불어서 서버에서 받아온 소스를 최적화함으로서 전송 속도를 높이고 오버헤드를 줄여주는 기능을 제공한다. 서버에서 전송된 HTML, JS, CSS 등의 텍스트파일을 최적화 시켜 용량을 줄이고, 데이터를 압축시켜 용량을 감소시킨다. 또한 여러개의 자바스크립트 파일을 하나로 융합시키거나 하는 방식으로 여러개의 커넥션을 소모하는 파일 전송을 최소화시켜 서버가 부담해야할 커넥션 수를 감소시키는 결과를 가져온다.

단순히 최적화와 압축이라는 단계가 중요한 것이 아니라, 최적화라는 전처리 과정을 넣음으로서 단순 캐쉬를 전송하는데 그치지않고 보안기능과 어플리케이션 융합기능을 추가할 수 있게 되는 것이다.

로켓 발사대(Rocket Loader)

로켓발사대, 혹은 로켓 로더로 불리우는 이 기능은 데이터 최적화를 위해 제공되는 기능 중 하나로,

보안기능

분석기능

어플리케이션 연동

기타기능

한국에서의 문제

많은 장점이 있음에도 불구하고 한국에서 클라우드플레어는 마이너한 상태다. 이는 설정의 복잡성이나 다른 문제 때문이 아니라 한국 인터넷 서비스 업체들이 CDN센터가 있음에도 불구하고

추가바람

같이보기

안쪽고리

바깥고리

 

덧글

서비스/클라우드_플레어.txt · 마지막으로 수정됨: 2014/11/21 18:32 저자 에리얼