기본 콘텐츠로 건너뛰기

클라우드 컨설팅 모험기2. 이중화

어느날 고객이 질문을 했다.

고객 : "클라우드를 도입하고 싶은데 어떠한 매리트가 있는지 모르겠어요"

이 고객은 게임업체 고객이고 서버는 약 20대정도로 게임 포털처럼 웹서비스를 하나 하고 있고, 게임은 이제 하나를 붙인 상태이다. 두 번째 게임을 붙이려고 준비중에 있는 듯 하다.

나 : "현재 서버 구성도를 주시면 제가 프라이빗 클라우드의 형태로 재설계를 해드리겠습니다."

고객이 서버 구성도를 주었다.
==웹서비스==
서비스용 웹 서버 : 3대
회원 DB : 1대
웹DB : 1대
관리자 웹 서버 : 1대
빌링 웹 서버 : 1대
빌링DB : 1대

==게임 서비스==
로비서버 : 1대
맵 서버 : 2대
워(War) 서버 : 1대
인증서버 : 1대
게임DB : 1대
로그DB : 1대
복구DB : 1대
게임서버 여유분 : 1대
관리 서버 : 1대
테스트 서버 : 1대
샵 서버 : 1대

이렇게 총 20대의 물리서버가 있었다.
이 서버들을 메모리만 증설 시킨 뒤에 가상화를 하여 묶어 주었다.
총 10대의 서버를 가상화 하고, 5 대의 서버만 물리 머신 그대로 두었다.
총 15대를 사용하고, 10대의 가상화 서버는 크로스로 이중화 설정을 하였다.
즉, 물리적으로 어딘가의 서버가 죽어도 다른 서버의 Cold Stand-by(VM을 세팅해놓고 전원을 내려놓은 상태)의 VM의 전원을 넣기만 하면 바로 복구가 가능한 구조를 만들었다.
모든 DB도 리플리케이션을 해놓아서 DBMS가 죽어도 최소한의 로스로 바로 살릴 수 있도록 설계를 해주었다.

결론적으로 20대였던 서버가 15대로 줄면서 이중화까지 되어있어 모든 서버중 어느 하나가 죽어도 쉽게 복구가 되는 이중화가 된 것이다. 즉 40대분량의 설정이 된 것이다.
게다가 5대가 남아서 가상화를 하여 신규 서비스의 테스트용으로 사용하게 했다.

가상화라는 것은 마약이다.
중독되면 너무 매달려 화를 자초할 수도 있다.
하지만 의료용 마약도 있듯이,
적절하게 잘만 사용한다면 최고의 효율을 발휘할 수 있는 것 같다.


댓글

이 블로그의 인기 게시물

Alter table 에서 modify 와 change 의 차이 :: SQL Server

두 개의 차이를 모르는 경우가 많아서 정리합니다.  modify는 필드의 속성값을 바꿀때 사용하구요.. change는 필드명을 바꿀떄 사용합니다.  alter table tbbs modify bNote varchar(2000) NULL; alter table tbbs change bNoteOrg bNoteNew varchar(2000) NULL; change에는 원래 필드와 바꾸고 싶은 필드명을 넣어서 필드명을 바꾸는 것이죠~ 더 많은 SQL Server 팁을 보려면  https://github.com/LowyShin/KnowledgeBase/tree/master/wiki/SQL-Server giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

[Classic ASP] Cookie가 삭제 안되는 문제

만든 쿠키가 삭제가 계속 안되서 여기저기 삽질을 했다. 모든 쿠키를 삭제하는 함수도 만들었다. Function CookieClear(cldomain) For Each cookie in Request.Cookies Response.Cookies(cookie).Domain = "." & cldomain Response.Cookies(cookie).Path = "/" Response.Cookies(cookie).Expires = DateAdd("d",-1,now()) Next End Function 그런데.. 안되서 계속 삽질하다가 하나 알았다.  littleworld.net littleworld.co.kr www.littleworld.net  의 모든 값을 지우려고 했으나.. 처음 만든 쿠키가 www.littleworld.net 인 관계로.. 처음에 www.littleworld.net 의 쿠키를 삭제 해야만 나머지가 지워졌다.. -ㅅ-;; 간단하지만 몰랐던 초보적인 사실.. ---- 누구나 쉽게 광고를! http://www.cashtalk.co.kr Free Infrastructure automation & management tool Global Infrastructure Integration Platform http://giip.littleworld.net Subscribe and publish your links as a book with friends  My Favorite Link Share http://link.littleworld.net

BI의 궁극판! Apache Drill을 써보자!

사실 Apache Drill 은 BI(Business Intelligence)라고 부르는 것 보다는 단순 데이터 연결 엔진이다. https://drill.apache.org/ 하지만 내가 왜 극찬을 하느냐면.. DBA로서 항상 문제가 되어왔던게, 이기종 데이터의 변환이나 처리였다. 포맷을 맞추는데 엄청난 시간이 걸리고, 데이터 임포트 실패가 무수하게 나고.. 한 번 잘못 데이터를 추출하면 다시 조정, 변환, 추출하는데 시간이 많이 걸린다. 그런데! Apache Drill은 그냥 RDB를 CSV랑 연결해서 조인해서 통계를 낼 수 있다. 그것도 표준 SQL을 사용하여! 예를 들어, CSV의 세 번째 컬럼이 price 이고, 물건의 판매이력을 PG사에서 CSV로 출력 받았다. 우리 DB와의 검증을 위해서는 수동으로 Import를 한 뒤에 포맷이 안맞아 잘리는 데이터가 있다면 다시 맞춰주고, 재 임포트를 수십 번, 그리고 나서 겨우 들어간 데이터를 조인하여 빠진 데이터를 분간한다. 숫자가 적다면 개발자가 개발로 처리할 수도 있지만, 건수가 하루에 300만건 짜리라면.. 한 달 온 파일은 9천만 건이다. 프로그램으로 고작 처리하는 것이 초당 500건. 거의 20만초, 에러 없이 약 56시간.. 에러가 생기면 다시 56시간.. ㅠㅡㅠ 이런게 현실이기 때문에 쿼리 말고는 방법이 없다. apache drill 의 진면목을 보자! 이번에는 좀 범용 적인 MySQL DB와 붙여 보자. . 난 이번에는 Mac에서 작업을 했기 때문에 그냥 다운 받아서 풀었음.. https://drill.apache.org/download/ 여기서 자기 OS에 맞는 버전을 받아서 설치하시길.. 압축을 풀고 나면 MySQL 커넥터를 붙여야 한다. https://dev.mysql.com/downloads/connector/j/5.1.html 여기서 다운로드 이런 커넥터 들을 붙일 때마다 콘피그를 수정해 줘야 하지만, 몇 번만