웹 엔지니어가 알아야 할 인프라의 기본
도서명:웹 엔지니어가 알아야 할 인프라의 기본
저자/출판사:바바,토시아키/한빛미디어
쪽수:332쪽
출판일:2015-07-01
ISBN:9788968482014
목차
__Chapter 1 웹 서비스에서 인프라의 역할
____1.1 웹 서비스 구축에 관련된 인프라 영역
______이 책에서 다루는 인프라의 범위
______웹 서비스 구축에 관련된 인프라의 기술 요소
______인프라 기술의 계층 구조
____1.2 인프라의 요건 정의에서 운용까지의 주의점
____1.3 인프라 설계 시의 주의점
______인프라 설계의 어려움
______인프라의 ‘기능적 요건’ 정의의 주의점
______인프라의 ‘비 기능적 요건’ 정의의 주의점
______인프라의 신뢰성 확보하기
____1.4 RAS 검토하기
______가동률을 높이는 방법
______고장 발생 시의 대응 방법
______대규모 재해 시의 대응 방법
__Chapter 2 인프라 기술의 기초 지식
____2.1 인터넷이라는 거대한 네트워크
______IP 주소와 도메인
____2.2 인터넷을 통한 데이터 송수신 구조
______라우팅
______NAT에 의한 IP 주소 변환
____2.3 URL을 분석해보자
____2.4 프로토콜의 내부 들여다보기
______Request Headers와 Response Headers 읽기
____2.5 네트워크 보****이야기
______방화벽
______SSL
____2.6 인프라 요소의 스펙을 읽는 방법과 선택 방법
______서버 선택의 개요
______CPU, 메모리의 스펙과 선택 방법
______디스크의 스펙과 선택 방법
______네트워크의 스펙과 선택 방법
______네트워크 기기의 스펙을 읽는 방법과 선택 방법
____2.7 성능과 데이터에 관한 기초 지식
______ACID를 고려하자
______락과 배타처리
______버퍼
______캐시
______큐잉
____2.8 다중화의 구조
______데이터의 정합성을 얻기 위한 방법
______페일오버에 관한 주의점
____2.9 암호화와 해시화
__Chapter 3 웹 서비스 서버 구성의 모범 사례
____3.1 기본적인 구성
______풀스택을 1대의 시스템으로 구성하기
______시스템 구성 변경의 기초
______패턴 1. 웹 서버 x 1, 데이터베이스 서버 x 1 구성 - 기능 분할
______패턴 2. 웹 서버 x 2 구성 - 다중화
______패턴 3. 웹 서버 x 2, 데이터베이스 서버 x 1 구성 - 다중화, 기능 분할, 스케일 아웃
______패턴 4 . 웹 서버 x 2, 데이터베이스 서버 x 2 구성 - 다중화, 기능 분할, 스케일 아웃
____3.2 부하 분산(로드밸런싱)의 기초 지식
______로드밸런싱의 두 가지 종류
______로드밸런서로 할 것인가 DNS 라운드로빈으로 할 것인가
______로드밸런서와 분산 목적지 연결 방식
______로드밸런서에서의 분산 목적지 결정 방법
__Chapter 4 인프라 준비의 기초 지식
____4.1 인프라를 준비할 때 무엇부터 결정할 것인가?
______꼭 필요한 요구사항 정리하기
____4.2 인터넷 회선의 용량 계산
____4.3 서버 대수의 용량 계산
______PV 수와 처리에 소요되는 시간으로 계산하기
____4.4 이용할 클라우드 기반 선정하기
____4.5 인프라 구축 후 확인해야 하는 것
______툴을 사용해 빠짐없이 확인하기
____4.6 백업
______백업 시 확인해야 하는 것
__Chapter 5 웹 서비스 운용 1 : 시스템 감시의 기본
____5.1 시스템 감시의 개론
______시스템 감시란?
______ ‘정상 상태’를 감시 항목 + 정상적인 결과의 형태로 정의하기
______ ‘정상 상태’가 아닐 때의 대응 방법을 감시 항목마다 정의하기
______ ‘정상 상태’인 것을 지속적으로 확인하기
______ ‘정상 상태’가 아닌 경우 ‘정상 상태’로 복구시키기
____5.2 시스템 감시의 구현
______감시 툴과 모니터링 툴
______감시 항목 파악하기
______감시의 구현 방법
______감시 항목을 결정하기 위한 현재 상태 확인 방법
______현재 상태의 확인 결과로부터 감시 항목 만들기
____5.3 장애가 발생했을 때의 대응 방법
______경보
______현상 확인
______1차 대응
______경보 현상 및 다른 항목 확인하기
______사후 작업
______수습
____5.4 대규모 장애 발생 시의 대응
______팀으로 역할 분담하기
______냉정하게 정보를 파악하고 전체를 바라보기
______2차 재해가 발생하지 않도록 하기
____5.5 항상 발생하는 장애의 관리와 리뷰
______장애 사례 축적
______리뷰
__Chapter 6 웹 서비스 운용 2 : 상태 모니터링
____6.1 상태 모니터링의 기초 지식
______변화를 알아차리기 위한 요령
____6.2 상태 모니터링 데이터를 읽는 방법 - OS
______CPU 관련 그래프
______메모리 관련 그래프
______디스크 관련 그래프
______네트워크 관련 그래프
____6.3 상태 모니터링 데이터를 읽는 방법 - MySQL
______상태 관련 그래프
______성능 관련 그래프
______InnoDB 관련 그래프
______MyISAM 관련 그래프
____6.4 실시간 모니터링의 방법
______dstat 사용하기
______top 사용하기
______iostat 사용하기
____6.5 트러블 대응에 사용하는 모니터링 툴
______트러블이 발생하지 않도록 하는 사고방법
______트러블 슈팅 테크닉
__Chapter 7 웹 서비스 튜닝 1 : 보틀넥을 찾는 방법
____7.1 용량의 검토 방법과 용량의 향상
____7.2 시스템 튜닝의 철칙
______대상과 목표 결정하기
______보틀넥에 접근하기
______추측하지 말고 계측하자
____7.3 보틀넥을 찾는 방법 - 기초
______대상과 목표 결정하기
______데이터 흐름 확인하기
______데이터 흐름의 포인트마다 처리 내용을 확인하기
______시스템 리소스 확인하기
____7.4 보틀넥을 찾는 방법 - 로그
______Apache에서 보틀넥을 찾는 방법
______MySQL에서 보틀넥을 찾는 방법
____7.5 보틀넥을 찾는 방법 - 서버 리소스
______수상한 움직임을 찾는 포인트
______ ‘dstat’과 ‘top’으로 확인하기
____7.6 보틀넥을 찾는 방법 - 애플리케이션 코드
______애플리케이션 프로파일러 사용하기
______webgrind로 분석하기
__Chapter 8 웹 서비스 튜닝 2 : 튜닝 레시피
____8.1 포인트별 튜닝 레시피
______요청 횟수와 데이터 전송량을 줄이는 방법
______OS의 CPU 사용률 낮추기
______OS의 메모리 용량 늘리기
______OS의 메모리 사용량 낮추기
______OS의 디스크 I/O 성능 높이기
______OS의 네트워크 성능 높이기
______OS의 네트워크 사용량 낮추기
______Apache의 CPU 사용률 낮추기
______Apache의 메모리 사용량 낮추기
______Apache의 디스크 I/O 사용량 낮추기
______Apache의 네트워크 성능 높이기와 사용률 낮추기
______애플리케이션 서버의 CPU 사용률 낮추기
______MySQL의 CPU 사용률 낮추기
______MySQL의 메모리 사용량 낮추기
______MySQL의 디스크 I/O 사용률 낮추기
______MySQL의 네트워크 사용률 낮추기
______SSL 통신을 고속화하기
____8.2 SQL 튜닝에서의 고속화
______SQL 튜닝을 위한 툴
______SQL 튜닝의 흐름
______기능 분할
____8.3 시스템 구성의 변경 시 보틀넥 대책의 기초
______스케일 업
______스케일 아웃
______ [Web]을 스케일 아웃 할 때의 주의점
______ [DB]를 스케일 아웃 할 때의 주의점
______ [File]을 스케일 아웃 할 때의 주의점
____8.4 [DB] 스케일 아웃 구현의 예
______갱신 SQL의 스케일 아웃
______참조 SQL의 스케일 아웃
______리플리케이션과 데이터 반영의 지연
____8.5 기능 분할 구현의 예
______Web 서버와 DB 서버 분할하기
______Web 서버와 AP 서버 분할하기
______Web 서버와 Proxy 서버 분할하기
____8.6 캐시 적용에서의 고속화
______콘텐츠를 브라우저에서 캐시하기
______콘텐츠를 Proxy에서 캐시하기
______쿼리 캐시로 MySQL의 부하 낮추기