|
대규모 시스템을 관리 하는 실무 레벨의 이야기가 책에 가득 합니다. OS, 네트워크, 웹서버, DBMS 등을 따로 따로 세분화 해서 다루는 책들만으로는 채워지지 않았던 갈증을 채워 주는 단비같은 책 입니다. 마치 접착제 같은 책 이라고나 할까요? 하지만 거꾸로 얘기 하면 컴퓨터 시스템을 이루는 각각의 요소에 대해선 자세하게 설명하진 않습니다. 24*365 서비스를 하기 위해 각 요소들을 어떻게 적재적소에 사용하며 어떻게든 일어날 수 밖에 업는 장애를 효과적으로 분산, 대처 하는 방법이 잘 정리 되어 있는 책입니다. 학생들 에게는 실제 현장에서 어떤 고민을 하며 이것을 해결 하기 위해 어떤 방법을 사용 하는지를 엿볼 수 있는 기회 일것 같고 현업에서 일 하시는 분들 에게는 야근을 업애고 칼퇴를 돕는(?) 그런 내용이 아닐까 싶습니다. 아쉬운 점이 있다면 Hatena, KLab 엔지니어들이 자신들의 이야기를 쓴 책이라서 언급하는 소프트웨어의 종류가 다양하진 않습니다. 물론 일본의 구글 이라는 Hatena의 아키텍쳐를 엿보기엔 더할 나위 없는 자료 라고 생각하고 저도 한 번 쯤 이런 책을 써 보고 싶단 생각이 들 정도로 좋은 책 입니다. 무중단 시스템에 대한 고민과, 장애에 대해 고민 하시는 분이라면 한 번쯤 읽어 보시길 강력 추천 합니다.!! |
|
제목 그대로 서버와 인프라에 관련된 기술에 대해 설명된 책으로 ‘지식 커뮤니티’ 인력검색 서비스와 블로그 호스팅 서비스, 소셜 북마크 서비스를 개발해 운영하고 있는 일본의 인터넷 업체인 하테나가 기술을 바탕으로 인프라를 어떻게 구성해서 운영하고 있는가를 바탕으로 설명하고 있습니다. 실제로 이 책은 하테나의 신입사원의 교제로 쓰이고 있는 책이라고 합니다. |
|
책을 검색하다가 우연히 발견해서 구입한 책이다.
인프라 구성을 위한 시스템 의 구성에 대해서 다룬 책이다.
각각의 상황마다 발생하는 문제점과 그 문제점을 해결하기 위해서 시스템의 구성 요소들을 어떻게 조합을 하는지에 대해서 다루고 있어 참 흥미있게 읽었다.
좁게는 하나의 서버의 부하에 대한 튜닝에서 넓게는 전체적인 시스템 구성에 까지 다양하게 다루고 있다.
해당하는 시스템 구조를 간략한 그림으로 보여주고 있어 전반적인 내용을 이해하진 못해도 그러한 구조를 어느정도 이해할 수 있어 좋았다.
어떠한 문제를 제시하고 그 문제에 대해서 어떠한 해결책이 있는지..또한 그 해결책에 대해서 발생할 수 있는 문제들... 그러한 상황들을 흥미있게 다루고 있다.
시스템에 대해서 잘 모르지만 그래도 하나하나의 구조를 보면서 참 재미있게 읽었던 책이다.
시스템 엔지니어가 아니어도 읽으면 좋은 책인거 같다.
|
|
이제까지 시스템 프로그래머로서 죽지 않는 서버 프로세스 작성하는 것을 주로 수행해 왔기 때문에, 다중화나 동기화, 장애 복구같은 개념을 고민했었던 적이 있었다. 그래서 24시간 365일을 보장하는 서버는 어떻게 작성하는 지 궁굼해서 이 책을 읽었다.
예전에 들은 이야기로, 가장 안정적인 무엇인가를 파는 회사가 있었는데, 이 회사는 사고없이 계속 서비스를 제공하기로 유명하다고 한다. 회사명이나 제품은 무엇인지 기억은 나지 않지만 이 한가지는 기억에 남는다. 그 회사의 CEO의 철학은 "뭐든 항상 부서진다". 현실에서 장애는 항상 발생한다. 그럼 끊임없는 서비스를 제공하기위해서는 무엇을 해야 할까? 좀더 직접적으로 하드웨어나 하위 시스템 장애를 어떻게 극복해야 최상위 서비스 장애를 피할 수 있을까?
첫번째로 서버들을 다중화 시켜, Single Point of Failure를 없앤다. Single Point of Failure는 그곳이 고장나면 최상위 서비스에 장애가 발생하는 곳을 말한다. Active/Standby+ Virtual IP로 서버를 구성하든, Active/Active+Load Balance를 하든 우선 모든 서버는 최소한 한개의 백업 서버를 갖게 한다.
두번째로 각 서버의 부하의 집중도를 낮춘다. 웹 서버에 부하가 높은 경우 캐시 서버를 추가하고 DB 서버의 경우 리플리케이션 환경에서 업데이트 서버와 조회 서버를 나눌 수 있다. 또 부하분산 장비를 추가하고 DISK 부분도 NFS, HTTP들을 이용해서 가볍고 빠르며 운용하기 쉽게 한다.
세번째로는 조금 더 아래로 내려가서 DNS 서버와 스토리지 서버, 네트워크를 다중하 시킨다. 여기서는 리눅스의 커널에 있는 디스크 미러링 기능이나 네트워크 카드 Bonding 기능을 사용한다. 또 네트워크의 DNS 서버를 다중화 시키고, 물리적으로는 모두 연결된 네트워크에서 VLAN을 도입해서 효율적인 트래픽/서버 관리를 하도록 한다.
세번째 까지만 해도 이제는 서비스 장애는 거의 없을것이다.
이후에는 원할한 서비스를 위해 성능을 높이기 위한 튜닝과, 부하 원인 규명에 대한 것을 설명하는데, 주로 아파치와 MySQL이 주로 다루어 진다. 계속해서 서버를 확장해 갈때 관리에 도움되는 툴이나 서버들의 상태를 쉽게확인할 수 있는 툴들을 소개한다. 나머지들은 필자들이 구성환 환경에 대한 설명이 들어있다. 여기서 사용량을 계산하는 부분을 추가하면 클라우드 컴퓨팅에서 하위 부분인 유틸리티 컴퓨팅을 구성할수 있지 않을까 하는 생각도 들었다. 과연 이런 작은 하나하나의 진보가 저런 "클라우드 컴퓨팅"이라는 단어로 인해 큰 단계로 보이게 되는 걸까?
본인은 일단 서버 2개 구성에 익숙하기 때문에 뒤의 부분은 그냥 읽었지만 말 한마디 한마디에 필자들의 고민과 노하우를 볼 수 있어서 무척 좋았다. 실무적인 내용으로 가득 차서, 절대 학교에서는 배우는 내용은 아니지만 IT 업계 사람들이면 기본적인 소양으로 한번쯤 읽어보아야 한다고 생각한다. 개인 컴퓨팅이면 모를까, 서버 한대로 구성되는 대규모 프로젝트는 드물며, 누구든 "장애"에서 자유로울 수는 없다. 회사의 SW제품을 안정적으로 만들 수 있는 Open Source Software가 존재한다면 적극적으로 수용해서 안정적인 인프라를 만들 수 있다것은 좋은 자세인것 같다.
사담이지만 일본 IT문화를 조금 엿본것 같기도 하였다. 실수(장애)를 잘 용서하지 않는 풍토를 갖기 때문에 외산 제품이 몇번 장애를 일으키면 시장에서 아무도 안쓴다고 하던데, 그런 풍토에서 서비스 안정화를 꾀하기 위한 처절한 노력이 보인다. |
|
책의 첫장을 넘기기 시작한 시간이 밤 12시를 조금 넘은 시간이였고 책을 읽다 다시 시계를 본 시간이 새벽 6시 였다.
현재 서버와 상관없는 분야에 종사하고 있긴 하지만 얼마간 관련 분야에서 일하면서 궁금했던 내용들을 이책 한권이 모두 풀어주었다고 해도 과언이 아니다.
규모가 크지 않은 회사에서 일하고 있었기에 서버의 로드 밸런싱을 할 일도 없었을 뿐더러 백업서버도 하나 없이 달랑 2대의 서버를 돌리고 있었지만, 늘 무정지 시스템에 대한 궁금증을 가지고 있었다.
이 책을 읽으며 당시에 가졌던 대규모 접속자를 가지고 있는 사이트 들의 WEB/DB/FILE 서버 로드밸런싱과 서버 다중화 그리고 그 이후 궁금했던 서버 가상화의 이용 사례등의 사항들에 대해 충분한 답을 얻었다고 생각한다.
실제 서버의 구성과 관련 코드까지 있어 서버 세팅놀이에 흥미를 잃은 지금도 코드를 실행시켜보고 싶은 마음이 들었다.
덤으로 네트웍 다중화, 서버 모니터링, DOS공격 회피 방법등에 대한 지식도 얻었으니 책 읽은 시간이 전혀 아깝지 않았다.
이 책의 내용을 모두 내 것으로 만든 후라면 그 어떤 곳에 가서도 서버/네트웍 관리자로 충분한 역할을 할 수 있을것이라 생각한다.
|
|
리눅스서버관리자에게 유용한 내용들이 쉽게 기술되어 있다. 예전부터 이슈가 되었지만, 특히 요즘들어 더욱 이슈가 되는 HA에 대해서 고민중이라면 이 책을 읽어봄직하다.
특히 BCP/DRP에 대해서 실질적으로 시스템에서 어떻게 해야 하는지를 알고 싶다면. 대용량데이타의 처리, 백업과 컨텐츠 전송속도 개선등에 대해서도 해답을 찾을수 있을 것이다. Squid를 이용한 캐쉬는 CDN 서비스에 대해서 알고 싶어하는 사람에게는 많은 도움이 될듯.
|
|
엔지니어이고 고가용성에 대해 많은 관심을 가지고 있지만, 대형 업체를 빼고 엄청난 비용을 들여 고가용성을 구축하기는 쉽지 않지만, HA 구성에 대한 많은 내용이 담겨 있어 간접적으로나마 도움이 많이 된듯 싶네요. . |