목차

1장 서버/인프라 구축 입문 …… 다중화 / 부하분산의 기본
1.1    다중화의 기본      2
    다중화란      2
    다중화의 본질      2
    라우터 장애시의 대응      4
    웹 서버 장애시의 대응      5
    장애극복      7
    장애검출 …… 헬스체크      8
    Active/Backup 구성 만들기      10
    서버를 효과적으로 활용하자 …… 부하분산      12
1.2    웹 서버의 다중화 DNS 라운드로빈      13
    DNS 라운드로빈      13
    DNS 라운드로빈의 다중화 구성 예      14
    보다 편하게 시스템 확장하기 …… 로드밸런서      18
1.3    웹 서버의 다중화 IPVS를 이용한 로드밸런서      19
    DNS 라운드로빈과 로드밸런서의 차이      19
    IPVS …… 리눅스로 로드밸런서 구성      20
    스케줄링 알고리즘      21
    IPVS 사용하기      23
    로드밸런서 구축하기      24
    L4스위치와 L7스위치      28
    L4스위치의 NAT구성과 DSR구성      29
    동일 서브넷인 서버를 부하분산할 경우 주의사항      31
1.4    라우터 및 로드밸런서의 다중화      33
    다중화란      33
    다중화 프로토콜 VRRP      33
    VRRP의 구조      34
    keepalived의 구조상의 문제      38
    keepalived 다중화      39
    keepalived 응용      43

2장 한 단계 높은 서버/인프라 구축 …… 다중화, 부하분산, 고성능 추구
2.1    리버스 프록시 도입 아파치 모듈      46
    리버스 프록시 입문      46
    HTTP 요청 내용에 따른 시스템의 동작 제어      47
    시스템 전체의 메모리 사용효율 향상      49
    리버스 프록시의 도입      57
    웹 서버가 응답하는 데이터의 버퍼링의 역할      53
    아파치 모듈을 이용한 처리의 제어      56
    진보된 RewriteRule의 설정 예      64
    mod_proxy_balancer로 여러 호스트로 분산하기      65
2.2    캐시서버 도입 Squid, emcached      69
    캐시서버 도입      69
    Squid 캐시서버      71
    memcached에 의한 캐시      76
2.3    MySQL 리플리케이션 단시간에 장애복구하기      79
    DB서버가 멈춘다면?      79
    MySQL 리플리케이션 기능의 특징과 주의점      81
    리플리케이션의 원리      83
    리플리케이션 구성을 만들기까지      84
    리플리케이션 시작      87
    리플리케이션 상황 확인      89
2.4    MySQL 슬레이브 + 내부 로드밸런서 활용 예      94
    MySQL 슬레이브 활용방법      94
    슬레이브 참조를 로드밸런서 경유로 수행하는 방법      96
    내부 로드밸런서의 주의점 …… 분산방법은 DSR로 하라      101
2.5    고속, 경량의 스토리지 서버 선택      102
    스토리지 서버의 필요성      102
    이상적인 스토리지 서버      105
    HTTP를 스토리지 프로토콜로 이용하기      106
    남은 과제      108

3장 무중단 인프라를 향한 새로운 연구 …… DNS 서버, 스토리지 서버, 네트워크
3.1    DNS서버의 다중화      112
    DNS서버 다중화의 중요성      112
    주소변환 라이브러리를 이용한 다중화와 문제점      112
    서버팜에서의 DNS 다중화      115
    VRRP를 이용한 구성      115
    DNS서버의 부하분산      117
    정리      119
3.2    스토리지 서버의 다중화 DRBD로 미러링 구성      120
    스토리지 서버의 장애 대책      120
    스토리지 서버의 동기화 문제      120
    DRBD      121
    DRBD의 설정과 실행      123
    DRBD의 장애극복      127
    NFS서버를 장애극복할 때 주의점      131
    백업의 필요성      131
3.3    네트워크의 다중화 Bonding 드라이버, RSTP      132
    L1, L2 구성요소의 다중화      132
    장애발생 포인트      132
    링크의 다중화와 Bonding 드라이버      133
    스위치의 다중화      135
    스위치의 증설      138
    RSTP      140
    정리      143
3.4    VLAN 도입 유연한 네트워크 구성      145
    서버팜에서 유연성이 높은 네트워크      145
    VLAN 도입이 가져오는 이점      146
    VLAN의 기본      150
    VLAN의 종류      151
    서버팜에서 활용      154
    열쇠는 물리적 구성의 단순화      159

4장 성능향상, 튜닝 …… 리눅스 단일 호스트, 아파치, MySQL
4.1    리눅스 단일 호스트 부하의 진상규명      162
    단일 호스트의 성능 끌어내기      162
    추측하지 말라, 계측하라      163
    병목 규명작업의 기본적인 흐름      165
    부하란 무엇인가      167
    Load Average를 계산하는 커널 코드 확인      177
    CPU사용률과 IO대기율      179
    멀티CPU와 CPU사용률      182
    CPU사용률이 계산되는 원리      184
    프로세스 어카운팅의 커널 코드 확인      186
    쓰레드와 프로세스      189
    ps, sar, vmstat 사용법      193
    OS튜닝이란 부하의 원인을 알고 이를 제거하는 것      207
4.2    아파치 튜닝      209
    웹 서버 튜닝      209
    웹 서버가 병목현상?      209
    아파치의 병렬처리와 MPM      210
    httpd.conf 설정      216
    Keep-Alive      227
    아파치 이외의 선택방안 검토      227
4.3    MySQL 튜닝의 핵심      230
    MySQL 튜닝의 핵심      230
    메모리 관련 파라미터 튜닝      233
    메모리 관련 체크툴 …… mymemcheck      237

5장 효율적인 운용 …… 안정된 서비스를 향해
5.1    서비스의 가동감시 Nagios      240
    안정된 서비스 운영과 서비스의 가동감시      240
    Nagios의 개요      243
    Nagios의 설정      244
    웹 관리화면      250
    Nagios의 기본적인 사용법      253
    Nagios 응용법      258
    정리     264
5.2    서버 리소스 모니터링 Ganglia      265
    서버 리소스 모니터링      265
    모니터링 툴      266
    Ganglia …… 대량의 노드에 적합한 그래프화 툴      267
    아파치 프로세스의 상태 그래프화      269
5.3    서버관리의 효율화 Puppet      274
    효율적인 서버관리를 실현하는 툴 Puppet      274
    Puppet의 개요      275
    Puppet의 설정      276
    설정파일 작성방법      279
    로그 통지      288
    운용     290
    자동 설정관리 툴의 장단점      290
5.4    데몬의 가동관리 daemontools      292
    데몬이 비정상 종료했을 경우      292
    daemontools      293
    데몬의 관리방법      295
    daemontools의 팁      301
5.5    네트워크 부트의 활용 PXE, initramfs      306
    네트워크 부트      306
    네트워크 부트의 동작 …… PXE      307
    네트워크 부트의 활용 예      310
    네트워크 부트를 구성하기 위해      312
5.6    원격관리 관리회선, 시리얼 콘솔, IPMI      316
    원격 로그인      316
    네트워크 장애 대비      316
    시리얼 콘솔      320
    IPMI      323
    정리      325
5.7    웹 서버 로그관리 syslog, syslog-ng, cron, rotatelogs      326
    웹 서버 로그 집약, 수집      326
    집약과 수집      326
    로그 집약 …… syslog와 syslog-ng      327
    로그 수집      331
    로그서버의 역할과 구성      333
    정리      333

6장 서비스의 무대 뒤 …… 자율적인 인프라, 다이나믹한 시스템 지향
6.1    Hatena의 내부      336
    Hatena의 인프라      336
    확장성과 안정성      339
    운용효율 향상      344
    전원효율 - 리소스 이용률 향상      348
    자율적인 인프라 지향      352
6.2    DSAS의 내부      353
    DSAS란      353
    시스템 구성 상세      361
    DSAS의 미래      376

샘플코드    377
찾아보기    396