728x90
팀 버너스리경이 인터넷에 엑세스 하는 방법의 하나로 월드 와이드 웹(World Wide Web)을 주창한 이래 웹은 이제 인터넷의 핵심이 되었습니다. 일상에서 일어나는 정말 많은 네트워크 연결은 인터넷을 통해서 일어나고 있습니다. 트위터에서 새로운 소식을 듣고 페이스북에 친구들과 사진을 공유하는 것 뿐만 아니라 부모님과 영상통화를 하고 동영상으로 인기있는 TV 프로그램을 보는 것도 모두 인터넷을 통해 이루어지고 있습니다.

그런데, 이런 인터넷의 폭발적인 사용을 뒷받침 해주고 있는 HTTP 프로토콜(Hyper Text Transfer Protocol)은 그다지 효과적인 프로토콜이 아닙니다. HTTP 의 첫 버전이었던 HTTP/1.0 은 단순히 서버와 사용자간에 하나의 연결만을 맺어주는 수준이었고 단일 서버에서 복수의 가상 웹 사이트를 운영할 수 있는 기능도 없었습니다. 이러한 단점을 개선한 HTTP/1.1 은 동시에 여러개의 연결을 맺을 수 있고 가상 호스트에 대한 지원이 가능해졌지만 너무 단순하게 만들어진 나머지 효율적인 웹 트랜잭션의 처리를 위해서는 추가적인 많은 작업들을 해주어야 했습니다

출처 : The Telegraph (http://goo.gl/gVQw3)



시간이 흘러 바야흐로 21세기로 접어들면서 인터넷은 이제 단순히 컴퓨터를 위한 기술이 아니라 수많은 스마트 기기들과 사물들까지 연결하는 하이퍼커넥티드(Hyper Connected) 세상을 만들어 가고 있습니다. 사물인터넷(IoT, Internet of Things)이라는 용어는 그런 네트웍의 복잡성과 연결된 기기의 수를 이야기 해주고 있고 빅 데이터(Big Data)는 이런 네트웍을 통해서 발생되고 있는 데이터의 규모를 발해주는 대표적인 단어들입니다

우리가 웹을 통해 요청을 하나 만들때 마다(HTTP Request) 전력이 소모되고 있다는 사실을 인지해 본 적이 있나요? 불필요한 트랜잭션 처리를 위해서 서버와 클라이언트의 브라우저 혹은 스마트 기기에서 동작하는 앱이 전기 혹은 베터리를 소모하고 있다는 생각을 해본적 있나요? 더 많은 기기들(스마트폰, 패드, 컴퓨터, 센서 등)이 더 많은 방법으로(브라우저, 스크립트, 앱 등) 인터넷에 연결되고 있는 작금의 트래픽 폭발을 효율적으로 조정하고 더 빠른 사용자 속도를 제공하는 것에 대한 고민에서 HTTP/2.0 은 출발했습니다.

구글이 추진하고 있는 SPDY 와 이를 근간으로 마이크로소프트가 SPDY 혹은 Web Socket 기반으로 준비중인 Microsoft S+M 은 HTTP/2.0 의 기본 골격이 되어 결국 최종적으로 만들어질 표준에 전체 혹은 일부가 녹아들어갈 것입니다. 이들의 노력으로 만들어지고 있는 HTTP/2.0 은 앞으로 우리의 인터넷, 웹웹을 어떻게 바꿔 나갈까요? IETF 에서 공개한 프로토콜 Draft (http://tools.ietf.org/html/draft-ietf-httpbis-http2-04) 를 바탕으로 어떤것들이 바뀌고 어떤 변화가 생길 것인지를 하나씩 알아보도록 하겠습니다.

- NoPD -
728x90
728x90
IDG 에서 SK텔레콤 T cloud biz 가 제공하는 블록 스토리지 서비스 "이지 디스크"를 심층 취재 했네요.
클라우드 서비스에서 왜 블록 스토리지를 사용해야 하는지.
그리고 SK텔레콤 T cloud biz 는 어떻게 그것을 구현했는지 살펴볼 수 있는 좋은 자료입니다.

델(Dell)의 이퀄로직이라는 어플라이언스를 사용했는데
이 제품에 대해서 궁금하신 분들도 한 번 읽어보시면 좋을 것 같습니다.
기업 내부 인프라에서 블록 스토리지를 구현하는 것에 대해서도
인사이트를 얻으실 수 있을 겁니다.

IDG 리포트 - 이지디스크 사례로 본 클라우드 스토리지의 미래

[다운로드 받기]


- NoPD -
728x90
728x90
새로운 서비스를 시작하거나 성공을 담보할 수 없는 과제를 위해 물리적인 장비를 투자하는 것은 이제 더 이상 당연한 것이 아닌 시대가 되었습니다. 아마존을 비롯한 클라우드 인프라 서비스 사업자들을 통해 가상머신을 할당받고, 가상의 서버들을 이용하여 고객에게 서비스를 제공하면서 점차 확장해 나가는 것이 현재의 대세이자 일반적인 방법론이 되었습니다.

가상머신 혹은 클라우드 서버가 많이 필요한 이유중 하나는 사용자들의 접속을 처리하기 위해서 입니다. 단위 서버당 가지고 있는 네트워크 대역폭은 분명 제약이 있고 서버가 세션을 관리하는 것은 분명 한계가 있기 때문입니다. 이 때문에 부하 분산을 위해 로드밸런서(Load Balancer, L4 Switch 등)를 사용하고 산술적인 서버 수량을 늘림으로써 사용자 접속 처리를 담보하곤 합니다.

 
그런데 여기서 우리가 간과하는 것이 하나 있습니다. 서버 하나하나의 개체인 인스턴스(Instance)를 늘리는 것은 어렵지 않지만 이를 동일한 설정으로 맞추고 유지하는 것은 다른 이슈입니다. 특히 데이터를 1개 이상의 논리적인 하드 드라이브에 나누어 저장하고 있었다면 더욱 큰 이슈가 됩니다. 가상머신은 일반적으로 하나의 파일(예: VMware의 경우 vmdk, Microsoft의 경우 VHD 또는 VHDX)로 만들어집니다. 디스크를 여러개를 사용하려면 이 파일들이 복수개가 되는 것이고 서버 인스턴스 확장에 따라 디스크도 동일하게 복제 되어야 하는 이슈가 발생합니다.

많은 클라우드 서비스 사업자들은 서버 인스턴스 자체의 안정성 유지를 위해 가상머신이 구동되는 스토리지는 상대적으로 안정적인 것을 많이 사용합니다. 이는 비용과 직결된다는 의미로 해석해도 무방합니다. 고객 입장에서는 추가 스토리지에 대한 복제 이슈와 비싼 비용의 타협점을 찾기 무척 힘든 상황으로 내몰리게 됩니다. 이런 것을 해결하고자 만들어진 유연한 스토리지가 바로 블록 스토리지(Block Storage)입니다. 아마존이 제공하는 EBS (Elastic Block Storage)가 가장 널리 알려진 블록 스토리지 제품입니다.

[ 블록 스토리지의 특징 ]

클라우드 서비스를 이용하는데 있어서 블록 스토리지가 주는 장점은 여러가지입니다. 첫번째는
유연함입니다. 앞서 설명한 것처럼 가상머신의 루트 드라이브는 루트 드라이브일 뿐입니다. 물리적인 장비 기준으로 볼 때, 서버가 망가지면 디스크를 빼서 다른 서버에 옮기면 됩니다. 데이터도 당연히 살아있습니다. 그런데 가상머신의 루트 드라이브는 가상머신과 운명을 함께 합니다. 데이터만 별도로 백업하기 위해서는 파일, 폴더 단위의 백업 솔루션을 사용해야 합니다. 데이터 백업을 하는데 운영체제 파일까지 백업할 필요는 없겠지요? 블록 스토리지는 연결, 해제를 자유롭게 할 수 있기 때문에 무척 유연합니다. 가상머신에 문제가 생기면 연결 해제(Detach)후 다시 연결(Attach)하면 됩니다.

두번째는 경제성입니다. SK텔레콤의 이지 디스크는 상당히 저렴한 가격으로 이용이 가능합니다. 이는 스토리지가 티어링(Tiering)이라는 기술을 통해서 핫(Hot) 컨텐츠와 콜드(Cold) 컨텐츠를 구분하여 디스크 형태를 결정하기 때문입니다. 콜드 컨텐츠는 SATA 와 같은 속도는 다소 느리지만 비용이 낮은 스토리지에 저장하고 핫 컨텐츠는 SAS 와 같은 다소 비싼 단가이지만 고속 스토리지에 저장하기 때문입니다. 사용자 입장에서는 자주 엑세스되는 컨텐츠를 알아서 빠른 스토리지에 저장해주고 그렇지 않은 컨텐츠는 저렴한 스토리지에 저장해주기 때문에 저렴하게 비용으로 최대의 효과를 누릴 수 있게 되는 것입니다. 

 
유연한 서비스 제공을 위해서 블록 스토리지를 어떻게 활용할 것인지는 명확합니다.  기존에 물리적인 장비에서 우리가 해왔던 경험을 그대로 가상 환경에서도 사용할 수 있습니다. 오히려 백업과 복제 등 클라우드 혹은 가상 환경이 제공할 수 있는 추가적인 메리트를 얻을 수 있습니다. 용산에서 하드디스크를 하나 사서 내 컴퓨터에 설치하는 것처럼 이제 가상머신에도 필요한 만큼 하드디스크를 추가 해서 사용해 보시기 바랍니다.

SKT 클라우드 서비스, T cloud biz 의 블록 스토리지 "이지 디스크" [자세히 살펴보기

 
- NoPD - 
728x90
728x90
Node.js 를 공부하고 코드를 테스트 하는 방법은 여러가지가 있습니다. Cloud9 과 같은 웹 기반의 IDE 를 이용하는 방법이 가장 간편하고 사용자 환경도 타지 않기 때문에 좋지만 웹 기반이다 보니 은근히 불편한 점들이 있는 것도 사실입니다. 이 때 우리가 선택할 수 있는 좋은 대안은 Node.js 를 PaaS 형태로 제공하는 호스팅 서비스를 이용하는 것입니다. 그중에서도 오늘은 Node.js 를 비롯하여 Ruby, Java, Python 등을 PaaS 형태로 제공하는 Heroku 를 이용하기 위한 준비를 해보겠습니다. (간만에 글 올리면서 마치 준비된냥 Heroku 를 건드립니다 ;;;)

먼저 Heroku 를 사용하기 위해서는 간단한 가입 절차를 거쳐야 합니다. 이런 류의 외국 서비스들이 그러하듯 간단한 이메일 인증만을 하면 무료로 사용할 수 있는 공간을 할당받게 됩니다. Heroku 는 기본적으로 무료 서비스이고 추가적으로 용량을 늘리거나 다른 서비스를 이용할 때 추가적으로 비용을 내면 됩니다. 참고로 Cafe24 가 제공하고 있는 Node.js 호스팅 서비스의 최소 단위는 월 500원 입니다 ;;;



 Heroku 에 가입하기 위해서 가입 페이지로 이동합니다. (바로가기 : https://api.heroku.com/signup) 간단한 이메일 입력만으로 가입은 끝납니다. 참 쉽죠잉? 이메일을 입력하고 Sign Up 버튼을 누르면 입력한 이메일로 컨펌 URL 이 발송됩니다. 이메일도 빨리 도착하기 때문에 수신함에서 메일을 찾아 본문의 컨펌 URL 을 클릭하면 됩니다.


이메일에 대한 유효성 점검이 끝났다고 모두 끝은 아니겠지요? 비밀번호 정도는 셋팅 해줘야 나중에 로그인을 할 수 있을 겁니다. 설마 정말로 이메일만 입력했다고 모든게 끝이라고 생각했다면 여러분은 바보 입니다 -_-;; (퍽퍽...) 실제로 개발을 하고 소스 버전 관리를 하고 커밋 하는 등의 행위를 위해서 커맨드 라인 도구를 제공하는데 이 때도 필요한게 바로 이 비밀번호이니 잘 기억해 두시기 바랍니다.

 
비밀번호까지 입력하고나면 간단한 Get Started 방법에 대한 가이드가 화면에 출력됩니다. 로컬에서 개발하고 Heroku 로 소스코드를 업데이트 하고 구동시키기 위해서 몇 가지 도구가 필요한데요, Git 과 SSH 도구를 잘 엮어둔 Heroku Toolbelt 라는 패키지를 제공하고 있습니다. 사용자 환경이 윈도우냐 맥이냐, 아니면 리눅스냐에 따라 패키지가 여러가지로 제공되니 각자 필요한 패키지를 다운로드 받아 설치하면 되겠습니다. Heroku Client 와 Git, SSH 등이 설치된다는 것 기억하시구요.

 
잠시동안 지루한 설치 작업이 진행되고나면 끝납니다. 그리고 아무것도 보이지 않습니다. 뭘 해야 할까요? 윈도우 기준으로 설명을 드리면 설치가 끝나고 나면 윈도우 커맨드라인 도구 (시작 > cmd) 를 실행해서 Heroku 라는 커맨드를 통해 명령행 도구를 실행하셔야 합니다. 그냥 Heroku 라고 한번 쳐보시고... " 아 그렇구나 " 하신다음 위의 스샷처럼 heroku login 명령을 내려주시기 바랍니다. heroku login 명령을 입력하면 조금전에 가입시 썼던 이메일과 비밀번호를 입력합니다.


Git 에 엑세스 하기 위해서는 SSH Key 를 만들어야 합니다. 로컬에서 접근하기 위해서도 필요하고 Heroku 가 Git 에 접근하기 위한 권한 부여를 위해서도 필요합니다. heroku login 을 처음 하게 되면 이런 과정을 한큐에 다 정리를 해줍니다. SSH Key 를 생성해서 로컬에 저장해 주고 (윈도우의 경우 기본 사용자 프로파일 경로에 /.ssh/ 폴더 밑에 생성) Heroku 에 업로드까지 깔끔하게 마무리 해줍니다. Key 가 잘 등록되었는지 확인하기 위해서는 heroku keys 라고 입력해 보면 됩니다. 키를 지우려면 heroku remove 하면 되고 키 추가를 위해서는 heroku keys:add 하시면 됩니다.

자 여기까지가 Heroku 사용을 위한 환경 셋팅입니다. Heroku Toolbelt 가 제공되기 전까지는 별도로 Git 도구를 설치하고 키 생성을 하는 등 번거로운 작업이 많았지만 이제는 참 많이 편해졌다고 다들 그러시더군요 -_-... 그럼 샘플 코드 올려서 구동해보는 건 다음시간에... 해보시지요.

- NoPD -

 
728x90

+ Recent posts