메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[서평] NGINX 쿡북(cookbook)

sangj***

|

2021-06-14

NGINX 쿡북

간결한 예제를 따라 엔진엑스의 다양한 기능을 익힌다. 엔진엑스의 고성능 부하분산과 보안 기능, 서버를 배포하고 관리하는 방법에 초점을 맞춘다.

  • 저자 : 데릭 디용기
  • 번역 : 노승헌
  • 출간 : 2021-06-01

저는 2년 전 NGINX를 현업에서 사용했었습니다. 웹 서버로도 사용했었고, WebRTC를 사용하는 화상 채팅 애플리케이션의 로드밸런서로도 사용했었습니다. 당시 NGINX를 인수한 F5 사의 엔지니어, 그리고 NGINX를 "징스"라고 발음하는 러시아 개발 벤더와의 합작 프로젝트였는데, 개인적으론 덕분에 MySQL에서 NGINX로 지식을 넓힐 수 있는 좋은 기회였었죠. NGINX의 다양한 설정 스크립트를 Sublime에 저장해두고 프로세스를 stop - restart 하면서 설정 내용을 테스트하였던 생각이 납니다.

 

네트워크 및 보안 전문 회사인 F5가 러시아 개발자가 만든 오픈 소스 형태의 NGINX를 인수하면서 단순히 웹 서버의 수준을 떠나 웹 방화벽(WAF)의 기능을 갖추고, 로드밸런서, 게이트웨이, 여러 대의 NGINX 노드를 묶어 CDN을 구현할 수 있을 정도의 캐싱 등의 기능은 더욱 막강해졌습니다. 이제는 MySQL과 감히 비교할 수 없을 정도로 API 지원, 서드 파티 오픈 소스 지원, 트러블 슈팅 및 모니터링 기능 등이 막강해졌습니다. 그러면서 오픈 소스 버전의 NGINX를 벗어나 commercial 버전의 NGINX Plus를 채택하는 기업이 점점 늘어나고 있습니다.

 

먼저 목차를 살펴보았습니다. 1~4장에서는 NGINX의 설치 및 부하 분산(load balancing)과 같은 NGINX의 가장 핵심적이고 제일 많이 사용하는 기술적 내용을 다룹니다.

 

5장 - 프로그래머빌리티와 자동화에서는 NGINX Plus에서만 제공하는 API를 통해 설치와 설정을 템플릿을 통해 자동화하는 기능을 다루는데, 이 부분은 평소 웹 서버를 설치해두고 고정적인 사용을 하는 것이 아닌 동적으로 시스템을 설치하고 삭제하고 확장하는 고급 기술을 다룹니다.

 

6장과 7장에서는 기본적인 보안 설정을 배웁니다. 웹 서버도 이젠 기본적인 ACL(Allow Control List)과 인증(authentication), JWT(JSON Web Token)를 통해 보안을 지원할 정도로 똑똑해졌습니다.

 

8장에서는 HTTP1.1이 아닌 HTTP/2를 사용하는 방법에 대해 알려줍니다. 상위 버전의 HTTP를 적용하면서 multiflexing, server push, header compression 등의 HTTP/2 기능을 충실히 사용할 수 있는 방법을 알려줍니다. 이런 버전업만으로도 운영하는 웹 사이트의 성능이 더욱 좋아져 로딩이 빨라지는 효과가 있습니다.

 

9장에서는 스트리밍 서버로서의 NGINX를 사용하는 방법을 알려줍니다. 일반적으로 스트리밍 서버 구축은 FFMPEG으로 구현하는 것이 당연하게 여겨졌었는데 NGINX가 스트리밍을 지원한다는 것을 많은 개발자가 간과하는 부분입니다. HLS, HDS와 같은 HTTP 기반의 스트리밍 프로토콜을 지원하며 이를 통해 VOD 혹은 Live 기반의 스트리밍 서비스를 구축할 수 있습니다.

 

가장 감동적인 부분은 10장의 클라우드 환경 배포 부분입니다. AWS, Azure, GCP의 대표적인 IaaS 환경에 각각 NGINX를 설치하고 운영하는 부분을 알려주는데, On-Premise에서 클라우드로 운영 환경이 이동하는 시점에서 꼭 필요한 콘텐츠가 포함되었다는 생각입니다.

 

11장은 컨테이너와 마이크로서비스 환경에서의 NGINX 활용 방안입니다. 이쯤 되면 NGINX가 사용되는 모든 환경을 한 번씩 다 훑었다고 보면 됩니다. 개인적으로 컨테이너 환경에서 NGINX를 아직 운영해볼 기회가 없었지만 조만간 11장의 내용을 토대로 몇 개의 pod을 구현하고 테스트해보려 합니다. 

 

이 책의 가장 큰 장점은?

 

이 책은 많은 장점을 가지고 있고 최근 읽어본 번역서 중에 꽤 높은 번역 퀄리티가 있습니다. 

모든 내용을 정독하고 떠오른 이 책의 장점을 나열해보면 다음과 같습니다.

 

1. 가볍지만 NGINX의 모든 내용을 충실히 다루고 있다.

이 책은 250페이지도 되지 않는 얇은 분량이지만 모든 챕터가 다 의미가 있고 실전에서 사용되는 내용뿐입니다. 많은 두꺼운 번역서가 1/3 정도는 구색을 맞추기 위해 필요 없는 내용을 다루고 있는 것과 비교됩니다.

 

2. 번역의 품질이 매우 뛰어나다.

보통 IT 번역서의 경우 번역 품질이 좋지 않아 원서의 의미를 흐리는 경우가 간혹 있습니다. 번역을 진행한 역자가 해당 도메인의 지식이 약하거나, 번역 리뷰를 진행하는 편집자의 능력 등이 이를 좌우합니다. 이 책의 역자가 LINE Plus에서 SRE로 계신 분이라 그런지 모든 번역이 매끄럽고 중간중간 포함된 "옮긴이" 의견은 내용의 이해 및 추가적인 지식을 쌓는데 매우 도움이 되고 있습니다.

 

3. NGINX의 수요에 비해 부족했던 국내 기술서의 자리를 차지하다.

국내에도 MySQL에서 NGINX로 마이그레이션 하거나 처음부터 웹 서버를 NGINX로 시작한 팀과 조직이 꽤 많습니다. 오픈 소스 버전을 상용 서비스에 그대로 사용하는 팀도 많고요. 수요에 비해 이렇다 할 좋은 도서의 공급이 없어서 F5의 기술 문서 웹 사이트에서 유일하게 정보를 얻고, StackOverFlow 같은 곳에서 추가 정보를 찾았는데요, 당장 NGINX를 공부하는 엔지니어들에게 단비와 같은 정보서가 될 것입니다.

 

이 책을 중간쯤 읽었을 즘, 특정 리서치회사에서 NGINX를 best web server에 링크하였다는 영문 기사를 보았습니다. NGINX의 막강한 기능들은 점점 더 버전업 되고 있고, 앞으로도 오픈 소스/상용 버전 할 것 없이 많은 수요가 예상되며 클라우드 환경에서 직접 설치 혹은 마켓 플레이스를 통한 수요가 늘어날 것으로 예상합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?