웹 엔지니어가 알아야 할 인프라의 기본 – 한빛미디어
저자 : 바바 토시아키
옮긴이 : 김병국
출판사 : 한빛미디어
책정보 : http://www.hanbit.co.kr/book/look.html?isbn=978-89-6848-201-4
트랙백 : http://www.hanbit.co.kr/trackback/978-89-6848-201-4
개요
대상 독자
책의 제목도 그렇고, 지은이의 소개 역시 ”웹”관련 엔지니어라고 지칭했지만
시스템엔지니어라면 딱 좋을 것 같다.
뭐, 내가 시스템엔지니어 이기 때문 이기도 하고..
리눅스 기반의 설명이 많다고도 볼 수 있다.
시스템을 어느 정도 운영해본 경험이 있거나, 진로를 확실히 잡은 사람에게 알맞겠다.
다만 리눅스를 처음 시작했다거나 하는 초심자 에게는 맞지 않다.
스타일
시스템을 운영할 경우 여러 설정(옵션)과 맞딱 드린다.
- 원인도 사례도 다양한 수많은 문제점 앞에 절대적 설정값은 존재하지 않는다.
- 수많은 명령어 및 옵션을 다 알아봐야 업무에 사용하는 수는 한정되어 있다.
- 익숙하지 않은 사람은 무슨 설정을 어떻게 해야 하는 지 알 수 없다.
- 옵션:값 내용을 아무리 안내해 봐야 소용이 없을 지도 모른다.
오랜기간 일을 해온 경험자가 이러한 사실을 인지한 뒤
바이블 서적 처럼 명령어&옵션 을 장황하게 설명하지 않고
상황별로 저자가 사용했던 명령어를 소개 한듯 한 구성이다.
내용별 장/단점
- FAILOVER에 관한 주의점
보통 오픈소스를 이용한 시스템 구성시
특히 리눅스 기반 엔지니어중 상당수가 리눅스와 오픈소스에 대해
절대적 신뢰를 넘어선, 거의 신앙급의 마음가짐을 갖는 경우가 종종 있다.
(솔직히 생각보다 많다…)
뭔가 잘못 되면 기능의 문제 제기나 아쉬운점 등 ”보완 대상”으로서의 관점이 아니라
단지 ”지가 실력이 없으니 저러지”라는 형태로 받아들이는 경우를 종종 봐왔다.
(솔직히 생각보다 많다…)
어떤 시스템이든 장/단점은 있게 마련 이므로
그에 대한 인지와 어떻게 보완하면 좋을지 논했으면 하는 아쉬움이 항상 남는다.
이 책에서는 FAILOVER에 관한 주의점을 간략하게나마 소개하고 있다.
다운 시간이 "0"이 될 수 없는 점 FAILOVER 담당서버에 이것 저것 요소가 늘어나면 고장률이 증가 이로 인해 구성이 복잡해 질 수록 복구에 어려움이 커짐
는 내용을 알려 주고 있다.
리눅스+오픈소스 를 이용하는 이중화 구성의 경우
고객 측에서 이중화 담당 서버를 ”잉여”로 생각 하기 때문에
이중화를 그냥 이중화로 두지 못하고, 이것 저것 막 붙이려 하는 사례가 많다.
나 역시 이러한 상황에서는 위와 같은 내용을 고객측에 언급하면서 설득을 해야만 했다.
- 3장
모범 사례 라는 주제에 걸맞게
기본 구성부터 서버를 늘리는 방법론에 대해서 각 방식을 그림을 통해 이해를 돕고 있다.
로드밸런스의 분산 목적지 방법 4가지를 소개한 것은 아주 좋다.
다만, 각 방법에 대해 그림을 첨부 했으면 하는 아쉬움이 남는 대목이다.
- 4장
서버 대수의 용량 계산에 대한 설명을 하는데
– 접속 페이지수
– 로딩 속도
– 접속자
등의 요소를 이용해서 병렬처리에 대한 도표로 구성했다.
최대 동접 및 필요 서버수의 계산은 좋은 내용 이다.
변수가 많이 발생할 수 있는 저 수치가 엔지니어 입장에서 그렇게 중요하지는 않을 수도 있다.
하지만 고객 에게 스케일업/아웃 시에 무작정 서버를 늘린다는 제안 보다는
사전 데이터를 수집/가공 해서 근거를 제시하는 방식이 좀더 그럴듯해 보이는 경우가 있을 것이다.
- 5장
장애 대응 중의 마음 가짐을 설명 하고 있다.
장애가 발생했을 경우 한마디록 딱 잘라 말할 수 있는 ”왕도”는 존재하지 않는다.
다만 필자는 본인의 경험에서 나오는 어느 정도의 기준을 제시하고 있으며
이는 매우 적절하다고 생각한다.
단지 기술적인 부분만이 아니라 마음 가짐에 대한 설명을 했다는 점이 아주 아주 흥미롭다.
대규모 장애 발생시 2차 재해가 발생하지 않도록 하는 권고 역시 비슷한 맥락이다.
차이가 있다면
전자의 경우는 개인의 멘탈 관리를 위한 것이고
후자의 경우는 상호 관계의 중요성에 무게를 실었다는 점이다.
- 6장
기본적으로 시스템 관리자가 인지해야할 내용을 효율적으로 설명 하고 있다.
하나의 명령어는 많은 옵션이 있고,
상황에 따라, 사람에 따라 사용 방법이나 스타일이 천차 만별이다.
저자는 이를 ”옵션 설명”에 중점을 두지 않고
본인의 경험시 사용했던 명령어들을 소개 하고
사용된 명령어와 옵션에 대한 부가 설명 형태로 구성했다.
바이블처럼 옵션 설명만 주욱~ 늘어져 있어봐야 실전에서 어떻게 활용 해야 할지 판단이 어려운 경우가 많은데
저자도 마찬가지 이겠으나, 보통 시스템 관리자들이 사용하는 명령어나 옵션은 생각보다 많지 않고 한정되어 있기 때문에 이와 같은 ”경험 전수”식 설명은 배워야 하는 입장에서 ”지식”과 ”활용 방법”을 모두 알려 주는 형태 라고 생각 한다.
- 7장
시스템 튜닝시 기본적으로 확인해야 할 내용을 설명 하고 있다.
확인해야 할 내용을
– 글로 표현 했을 때 무엇 이고
– 서버에서 실제로 어떤 항목이 글로 표현한 내용과 대응 하는지
보여 준다.
”지식”과 ”활용 방법”을 이렇게 풀어내서 설명 한다는게 정말 쉽지 않다.
- 8장
이 책은 ”웹” 뿐만 아니라 DB에 대해서도 많은 설명을 하고 있다.
그중 mysql의 스케일 아웃에 대한 주의 사항을 사례와 함께 설명 함으로써 이해를 높인다.
내용중 ”동기화 지연”에 대한 문제를 ”발생 한다” 라고 끝내지 않고
실제 운영시 ”XX문제”가 발생 할 수 있다는 것을 언급 하고 있다.
구성 에서 발생하는 문제가, 서비스 제공 상황에서 어떤 영향을 미치는지 생각하지 못하는(또는 모르는) 경우도 많다는 것을 저자가 알고 있기 때문일 것이다.
- 단점
그림이 단조롭다.
시스템 구성도의 경우, 실무에서도 사용하는 것처럼 ”아이콘” 형태로 표현 했으면 어땠을까 하는 아쉬움이 남는다.
물론 내 의견은 ”우리나라”를 기준으로 한것이고, 일본은 또 다를 테니…
마무리
시스템 엔지니어를 직업으로 삼고 싶은 사람이 있다면…
다른 직업을 찾아라!!! (힘들어도 너무 힘들어ㅜㅜ)
는 농담이고.. 그런 사람이 있다면 사서 읽으면 좋겠다.
마음씨 좋은 아저씨가 나름 경험을 전수해주는 책이다.
물론 마음씨만 좋은 아저씨 아니다.. 내가 볼때 상당한 실력자 이다.
늙은 꼰대들의 ”나 젊었을 적엔 돌도 와그작..” 이딴 류의 텃새와 자부심으로
처음 시작하는 어린 양들에게 무조건 적인 ”시행착오와 구글링”을 강제하는 IT세계 에서
그대를 구원해줄 수 있는 몇권 안되는 책중 하나일 듯…