Pacemaker를 통한 Clustering (서버 이중화)

Clustering이란 두대 이상의 서버가 하나의 서버가 처리하는 것처럼 보이도록 서버들 간의 확립된 연결(Establishing Connectivity) 입니다. 이 클러스터링은 장애 대응 시스템(fail-over), 부하분산(load balance) 시스템 혹은 병렬처리 프로세싱에 사용될 수 있는 기술입니다. 한 예로, 장애 대응 시스템의 클러스터링은 응용프로그램과 서비스의 고가용성(High-Availability)을 유지하기 위해 동시 작동하는 서버들의 집합입니다.  예를 들어 어떤 이유에서 하나의 노드에 장애가 생기면 다른 노드는 그 처리를 받고 사용자에게 무중단의 서비스를 제공합니다. < Clustering Diagram >   클러스터 관리는 별도의 서버에서 수행되며 두 노드를 관리합니다. 이 관리서버는 주기적으로 두 노드에 상태 점검(Hearbeat)하여 하나의 노드에 장애가 발생시 다른 노드로 부하를 이전하는(Fail-Over) 역할을 수행합니다.   클러스터를 사용하려면 업계에서 사용하는 클러스터링의 종류, 장단점을 알아야 합니다.   클러스터링의 장점 클러스터링은 확장가능한 솔루션입니다. 이는 나중에도 자원을 추가할...
read more

Infrastructure as code (AWS CloudFormation)

클라우드 서비스 유형으로 몇가지가 있습니다. IaaS(Infrastructure as a service)는 인프라를 인터넷 서비스로 제공하며 플랫폼을 제공하는 PaaS(Platform as a service)와 소프트웨어를 제공하는 SaaS(Software as a service) 3가지 유형이 대표적입니다. 요즘은 LXC(Linux Container) 기반의 Docker Container 호스팅 서비스를 하는 DaaS(Docker as a Service)등  여러 서버스도 나타나고 있습니다. < 이미지출처 : https://blogs.technet.microsoft.com/kevinremde/2011/04/03/saas-paas-and-iaas-oh-my-cloudy-april-part-3 > AWS에서  IaaS와 PaaS 서비스를 이용할수 있으며 또한 Infrastructure를 Code화 하여 관리가 가능합니다. 이 코드화된 인프라를 이용하여 올 2월 AWS Region이 국내 정식 오픈되어 Tokyo Region에 구축한 AWS 환경을 CloudFormation(AWS 서비스의 인프라 구성을 코드로 관리)을 사용하여 전산센터 이전하는 방법을 소개합니다....
read more

시작은 부담없이 클라우드(AWS)로…

Start-up 인프라를 클라우드로 구성하면 장점이 많습니다. 사업성이 보장되지 않는 상태에서 장비 구매비용(혹은 연단위 임대비용)과 장비 delivery에 대한 시간투자, 장비 관리 시간투자 등의 비용을 많이 절약할 수 있습니다.  이런 이점은 Start-up 기업들이 우선적으로 고려하는 인프라 환경을, 클라우드라는 가상의 환경으로 고려하는 이유이기도 합니다. 그러나 클라우드는 사용한 비용만큼 지불하는 구조임에도 불구하고, 결코 저렴하다고는 말할 수 없습니다. 또한 클라우드 환경의 관리가 편하다라고 말할 수는 없습니다. 비용 효율화를 위해 관리자(클라우드 인프라 관리자)는 쓸데없는 비용 누수에 신경써야하며 누구나가 의심하는 클라우드 환경의 보안 부분을 신경써야 합니다. 하지만 잘 구성되어있는 환경이라면, 저렴한 비용과 관리의 편리가 가능합니다. 처음 잘 구성되어야 한다는 선행조건을 만족하기 위해, AWS 클라우드 환경의 인프라 설계와 설계된 구성에서의 기본적이지만 필수적인 사항을 이야기 하려 합니다.  작년 하반기 정부의 클라우드 발전법 발의와 이번달(2016년1월) AWS 한국 지역 오픈으로, 지금까지보다 클라우드 환경이 더 많이 사용될 것으로 예상됩니다. 다음 그림은...
read more

버추얼 머신을 통한 개발 환경 설정

스마트폰이 처음 등장했을 때, 내가 원하는 기능을 제공하는 앱을 검색해서 설치해 사용하고, 더이상 필요가 없으면 바로 없앨 수 있는 기능을 보고, 개발환경도 설치나 설정에 있어서 앱 스토어와 같은 곳에서 필요한 도구나 프로그램을 가져와 사용하도록 갖추어진다면, 정말 편리하고 간편할 것 같다는 생각을 했었습니다. 이러한 상상을 했던 것이 불과 몇년전인데, 상상했던 환경을 구성한다는 것이 이제는 현실이 되는 것 같습니다. 현실이 되게 하는 그것이 바로, ‘가상화 기술’입니다. 요즘과 같이 시스템 구성 요소가 다양한 OS, 다양한 서버, 다양한 솔루션들로 이루어지는 환경에서는 개발환경을 하나의 머신이나 OS에 구성하기가 쉽지 않습니다. 반대로, 여러 머신이나 OS에 있는 내용을 하나의 개발 머신또는 OS로 구성하는 것도 쉽지 않습니다. 여기에는 실제 운영환경과 다른 개발환경을 만들어야하는 노력이 필요하며, 다양한 설정 방법을 통해 테스트 및 운영 서버에 배포하도록 해야하기 때문에 그로 인한 부담이나 노력은 상당합니다. 또한 운영팀에서도 하나의 소스를 여러 프로젝트팀들이 접근하여 각자의 개발환경에 맞게 세팅하도록 만든다던지 하는 노력이 필요하고, 여러...
read more

서버룸이 아니라 서버가든(garden)입니다.

서버룸이 아니라 서버가든(garden)입니다.
서버룸(Server Room)에서 나오는 소음이 신경쓰인다. 그렇다고 서버룸의문을 닫을 수도 없다. 내부 열기가 대단하다. 주말에 혼자 사무실에 있을 때는 서버룸을 닫았다 열었다를 반복하기도 한다. 거대한 랙과 요란한 팬소리는 언뜻 서버의 위엄을 보여주는 듯 하지만, 요즘 시대에는 어울리지 않는 느낌일 뿐이다. 소음, 에너지 낭비, 열기, 그리고 공간 낭비까지 보태서 쾌적해야할 사무공간을 망치는 골치덩이일 뿐이다.  그래서 이 넘들을 어떻게든 손을 보겠다고 벼르고 있었다. 2013년 사무실을 바로 옆 건물로 이사를 했다. 기회가 왔다. 시꺼먼 사각 고철덩어리 모양을 하고 있는 랙과 서버를 중고로 팔아 치웠다. 그리고 기존 서버의 용량보다 한 단계 더 높은 수준으로 장비를 준비했다. 6테라 NAS 2대, 맥미니 서버 2대, 에어포트 익스트림 2대. 이 세 종류 만으로도 기존 서버를 훌쩍 뛰어 넘었다. 거기다 모든 사무실 컴퓨터는 무선으로 연결하기로 했다. 따로 서버룸을 마련할 필요가 없다. 여섯 대의 기기가 차지하는 공간은 작은 테이블이면 충분했다. 앓던 이를 뺀 것처럼 속이 다 시원했다. 사무실에서 더 이상 서버의 소음은 들리지 않았다. 대신 건물 옆의 1호선 기차소리가...
read more

알고보면 쉬운 웹서비스

알고보면 쉬운 웹서비스
웹 서비스를 적용한 애플리케이션을 구축하는 것은 쉽지 않습니다. 그러나 웹서비스의 개념과 구성을 큰 그림으로 이해한다면, 웹서비스를 구축하는 과정이 다르게 느껴질 수 있습니다. 오늘은 그동안 웹서비스를 공부하면서 개운치 않았던 부분들을 긁어드리려 합니다. 알고보면 쉬운 웹서비스에 대해 함께 살펴봅니다.   왜 웹 서비스를 선택할까요? 먼저 왜 웹서비스를 사용하는지에 대한 궁금증부터 해소해볼까요. 우리가 웹서비스를 사용하는 목적 중 핵심은 바로 플랫폼 중립(neutrality)입니다. 하나의 서비스를 제공하면, 다양한 플랫폼의 클라이언트가 서비스를 받아서 사용할 수 있도록 위함입니다. 외부 애플리케이션의 기능을 연결하기 위해서는 여러 기술적 제약이 따르기 마련입니다.  하지만 현재, 많은 애플리케이션은 PC 뿐 아니라 모바일기기와 태블릿 PC 등 다양한 기기가 사용 가능합니다. 하나의 기능을 각 플랫폼에 맞게 붙이는 것은 아주 비효율적이기 때문에, 플랫폼에 상관없이 기능을 제공하고 사용할 수 있는 기술이 필요했습니다. 이러한 목적을 가지고 애플리케이션을 서비스로 제공하자며 등장한 아키텍쳐가 SOA(Service Oriented Archetecture)이며, 이를...
read more

한양여자대학교: 신입사원 고용지원 사업을 소개합니다.

한양여자대학교: 신입사원 고용지원 사업을  소개합니다.
 일학습병행제 사업의 공동훈련센터로 지정된 한양여자대학교에서 알려드립니다. 연락처: 한양여자대학교 이상대교수 02-2290-2381 / sdlee2k@gmail.com 고용노동부에서 청년고용을 촉진하고, 신입인력에 대한 현장 교육훈련을 지원하기 위해 시행하고 있는 “중소기업 신입사원 고용지원 사업” (이하 “일학습병행제”)에 대한 소개를 드리고자 합니다.   일학습병행제는 독일·스위스식 도제제도(수공업기술자 양성제도)를 한국에 맞게 설계한 도제식 교육훈련제도로써,  기업이 현장에서 필요한 실무형 인재를 직접 양성하고 활용하기 위해, 근로자를 채용한 후 일을 담당하게 하면서 현장교육과 이론교육을 동시에 제공하는 새로운 교육훈련제도입니다. 어떤 기업이던지 채용을 하게 되면, 신입사원 또는 경력사원을 대상으로 교육을 진행할 것입니다. 따라서 기업 입장에서는 일학습병행제 사업을 통해 기존에 진행하고 있었던 교육을 체계적으로 수립하는데 전문가의 도움을 받을 수 있고, 기업의 니즈에 맞는 맞춤형 교육훈련제도를 수립하여 향후에도 계속 가져갈 수 있으며, 일학습병행제를 진행하는 기간동안 정부의 재정적 지원까지 받을 수 있다는 점에서, 이 사업의 매력을 충분히 느낄 수 있을...
read more

CI (Continuous Integration) 이란?

CI (Continuous Integration) 이란?
소프트웨어 개발에서 유지보수로 연결되는 지점은 소스관리/빌드/배포의 활동이 됩니다. 물론, 소스코드 수정이 발생되기는 하지만, 소스관리/빌드/배포의 활동이 주로 발생하기 마련이며, 이는 유지보수 시점에 확실한 절차와 방법을 필요로 합니다. 개발 시점에 이러한 활동을 지원하는 기법 중에 CI (Continuous Integration)가 있으며, 이는 오래 전부터 소프트웨어 개발에 있어서 위험을 줄이는 방식으로 사용되고 있었습니다. CI 라는 용어가 직접적으로 사용되지는 않았지만, 1993년 Mattew Pittman이 쓴 ‘Lessons Learned in Managing Object-Oriented Development’라는 논문[참조 1]에서 “예정된 통합(scheduled integration)” 이라는 용어를 사용하고 있으며, 이는 CI를 수행할 때의 한가지 이슈에 대해 완벽한 테스트의 부족을 언급하고 있습니다. 즉, CI가 단순히 소스코드의 빌드와 배포만을 의미하지 않고 그 안에는 소스코드를 검증할 수 있는 방법이 분명 필요하다는 것을 말하고 있습니다. 코드 컴플리트(Code Complete)라는 책을 쓴 Steve...
read more

« Previous Entries