Book Study/웹 엔지니어가 알아야 할 인프라의 기본 9

Chapter 8. 웹 서비스 튜닝 2 : 튜닝 레시피

8.1 포인트별 튜닝 레시피 8.1.1 요청 횟수와 전송량을 줄이는 방법 HTTP 요청은 텍스트 기반의 프로토콜이며, 통신을 하기 위해서는 일련의 절차가 필요하다. 서버와 클라이언트 측 모두 통신을 할 때마다 프로토콜을 해석하는 파서(Parser)가 매번 동작하며, 요청 횟수가 늘어나면 그만큼 오버헤드가 증가한다. 따라서, HTTP의 오버헤드를 줄이기 위해서는 요청 횟수를 줄이거나 전체적인 데이터 전송량을 줄이도록 한다. 요청 횟수나 데이터 전송량을 줄이기 위해 파일 결합, CSS Sprite, CSS나 JavaScript의 minify를 할 때에는 'Grunt'와 같은 툴을 사용하면 좋다. 요청 횟수를 줄이는 방법 구체적인 실행방법 파일 결합에 의한 이미지 수 감소 페이지 내에서 이용하는 CSS나 Ja..

Chapter 7. 웹 서비스 튜닝 1 : 보틀넥을 찾는 방법

7.1 용량의 검토 방법과 용량의 향상 / 7.2 시스템 튜닝의 철칙 웹 시스템의 용량을 향상시키기 위해서는 용량을 고려하는 단위를 먼저 확인하여야 한다. 웹 시스템의 용량에는 단위 시간당 시스템 이용자의 수가 중요한데, 이 "단위 시간당 시스템 이용자 수"는 곧 단위 시간당 소요되는 처리량이라고 볼 수 있다. 즉, 웹 시스템의 용량은 단위 시간당 처리 성능과 단위 시간당 소요되는 처리량 중에서 낮은 쪽으로 결정이 되는 것이라 볼 수 있다. 따라서 용량을 향상시키기 위해서는 ① 단위 시간당 처리 성능을 높이거나 ② 단위 시간당 소요되는 처리량을 낮추는 방법 중 한 가지의 접근을 할 수 있다. 단위 시간당 처리 성능은 하드웨어 성능이나 배치 등의 물리적 제약에 따라 결정된다. 구체적으로는 CPU 성능(클럭..

Chapter 6. 웹 서비스 운용 2 : 상태 모니터링

6.1 상태 모니터링의 기초 지식 상태 모니터링을 할 때에는 각 그래프에서 이상을 알아차리기 위한 공통적인 포인트를 먼저 확인하는 것이 중요하다. ① 없어야 하는 변화가 있는지 먼저 확인하여 평소에는 변화가 없는 타이밍에 평소와는 다른 움직임을 보이는지를 먼저 확인한다. ② 있어야 하는 변화가 없는지 확인하여 부하가 증가해야 하는 타이밍에 증가하지 않는다면 처리해야 하는 일괄처리가 이상 종료되었는지를 확인하고, 파형이 울퉁불퉁해야 하는데 일정한 값을 유지하고 있는 경우에는 데이터를 취득하지 못했는지, 성능이 한계에 다달았는지를 확인한다. 또, ③ 양과 단위가 다른지 확인한다. 그래프의 형태는 같아 보여도 특정 서버만 세로축의 단위가 다른 경우가 있을 수도 있으며, 이 경우 단위가 다른 경우 크게는 1,0..

Chapter 5. 웹 서비스 운용 1 : 시스템 감시의 기본

5.1 시스템 감시의 개론 시스템을 감시하는 것은 단순히 시스템을 보고 있는 것이 아닌, 시스템의 정상 상태는 어떤 상태인지를 파악해 그 상태가 무너질 경우의 대응 방법을 사전에 확실히 결정해 두는 것이다. 웹 서비스가 사회에서 중요한 역할을 담당하기 시작하면서 사용 중인 웹 사이트가 갑자기 정지되어 버리는 경우 사용자에게 크리티컬 한 문제가 생기기 시작하였고, 서비스를 제공하는 쪽에서는 갑자기 문제가 생겨 의도하지 않은 서비스의 정지나 성능 저하가 일어나지 않도록 문제 발생 시 신속하게 복구하여 정상 상태를 유지하는 것이 가장 중요한 운용 포인트가 되었다. 이렇게 정상 상태를 유지하는 것이 시스템 감시의 목적이며, 시스템 감시는 아래 4가지 항목으로 정의한다. '정상 상태'를 감시 항목 + 정상적인 결..

Chapter 4. 인프라 준비의 기초 지식

4.1 인프라를 준비할 때 무엇부터 결정할 것인가? 인프라를 준비하기 위해서는 개발자로부터 기능적 요건, 액세스 수나 사용자 수 등의 목표수치를 전달받아 관련 행정기관이나 법률 등의 대응과 같은 것들을 고려하며 필요한 요구사항을 정리하는 단계가 꼭 필요하다. 이때, 예산이 매우 적은 경우에는 VPS(Virtual Private Server)와 같은 저렴한 서비스를 이용할 수도 있다. 성능과 관련된 수치는 선정 시기에 직접 사용해보지 않으면 알 수 없기 때문에 시작한 후에라도 유연하게 대응할 수 있는 클라우드를 이용하는 것이 좋다. 최근에는 비용 및 성능의 관점에서 물리적인 서버를 고집할 이유가 거의 없기 때문에 각각의 클라우드 서비스를 잘 비교하여 가장 필요한 서비스를 선택하도록 한다. [IaaS형 클라..

Chapter 3. 웹 서비스 서버 구성의 모범 사례

3.1 기본적인 구성 서버의 구성에는 흔히 3가지의 패턴이 있고, 이를 이론상으로 1 tier부터 2,3 tier 구조라고 부른다. 1-tier의 경우 하나의 물리적 서버 안에 웹서비스를 모두 구현하는 것이며 2,3 tier는 이를 WEB, DB, File 형태로 각각을 서버로 분리하여 구현한 것을 말한다. 각 형태의 전형적인 구분 방법은 아래와 같다. 이렇게 역할을 명확히 구분하게 되면, 해당 역할을 하는 솔루션의 버전을 변경하거나 다른 솔루션으로의 전환, 교환이 쉬워진다. 수직적인 스택에 비해 결합도가 강해 역할을 독립적으로 운용하기에는 어렵지만, 이렇게 세분화하여 분리함으로써 성능과 다중성 및 가용성 등의 대책을 조금 더 용이하게 세울 수 있게 된다. 구분 내용 역할 및 대표 제품 WEB 클라이언트..

Chapter 2. 인프라 기술의 기초 지식 -2

2021/03/07 - [Book Study/웹 엔지니어가 알아야 할 인프라의 기본] - Chapter 2. 인프라 기술의 기초 지식 -1 2.5 네트워크 보안 이야기 통신의 보안을 유지하기 위해서는 여러 가지 기술이 쓰이지만, 흔히 방화벽과 SSL을 이용하여 네트워크 보안을 유지한다. 방화벽은 안쪽(조직 내부의 네트워크)에서 바깥쪽(인터넷) 또는 바깥쪽에서 안쪽으로의 통신내용을 제어하고, 의도하지 않은 통신이 발생하지 않도록 접속 요구를 차단함으로써 네트워크의 보안을 향상시키는 방법이다. 방화벽에서는 소스 IP주소, 목적지 IP주소, 포트 그리고 접속량 및 통신량을 제한하여 보안을 유지하며, 경우에 따라서 통신 내용까지 검사하기도 한다. 이러한 것을 일괄적으로 대응하는 기기를 UTM(Unified Th..

Chapter 2. 인프라 기술의 기초 지식 -1

2.1 인터넷이라는 거대한 네트워크 / 2.2 인터넷을 통한 데이터 송수신 구조 인터넷은 IP주소로 이루어져 있는 하나의 거대한 네트워크이다. IP주소란 '.'으로 구분되는 4개의 숫자 배열로, 네트워크에 연결된 모든 기기는 이러한 IP주소가 할당되어 있어 각자의 IP주소를 통해 서로 통신을 한다. IP주소는 전 세계적으로 중복되지 않도록 관리되는 글로벌 IP주소(공인 IP)와 회사나 가정 등에서 자유롭게 사용되는 로컬 IP주소(사설 IP)로 구분되고 있으며, 로컬 IP주소로 통신하는 네트워크에서는 어느 하나의 기기가 글로벌 IP를 가지게 되어 로컬 네트워크와 글로벌 네트워크의 중계를 하게 된다. 추가로 넷마스크(NetMask)라는 구성을 통해서 연속하는 IP주소를 그룹핑이 가능한데, IP주소와 넷마스크..

Chapter 1. 웹서비스에서 인프라의 역할

1.1 웹 서비스 구축에 관련된 인프라 영역 / 1.2 인프라 요건 정의에서 운용까지의 주의점 애플리케이션 엔지니어가 인프라 영역까지 준비하기엔, 인프라 영역은 대상이 많고 취급 분야가 다양하다. 만들고자 하는 웹 서비스에 따라 결정되는 인프라는 조금씩 다르지만, 일반적인 웹 서비스 구축 시 다루게 되는 작업 과정과 영역, 기술 영역은 아래 표와 같다. 사실 인프라란, 애플리케이션을 처리하는 단계를 칭하는 것이 아닌 계층을 다루는 분야이지만 현업에서는 운용부터 처리단계까지 모두 포함하는 경우가 많다. 인프라는 시스템을 기반으로 하며, 애플리케이션의 성능을 결정하는 중요한 요소가 된다. 따라서 서비스의 확장성을 염두에 두고 구성을 할 필요가 있다. 인프라를 설계/구축하는 경우 확장성, 다중화, 규모를 미리..

반응형