본문 바로가기

Dev.

(341)
[개발상식] 26. 로드밸런싱과 클러스터링 로드밸런싱과 클러스팅로드밸런싱(Loadbalancing)로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다. 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절히 분산처리하여 해결해 주는 서비스이다. 로드밸런싱을 해주는 소프트웨어 혹은 하드웨어 장비를 로드밸런서라고 한다. 로드밸런서의 주 목적은 동시에 오는 수 많은 커넥션을 처리하고 해당 커넥션이 요청 노드 중의 하나로 전달될 수 있게 하는 것이다. 그리고 단지 노드를 추가하는 것만으로 서비스가 확장성을 가질 수 있도록 한다. 오픈 소스 로드 밸런서 중 많이 사용되고 있는 것은 HAProxy 이다. >..
[2장] 3. IP와 이더넷의 패킷 송 수신 동작 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.2장 세번째, IP와 이더넷의 패킷 송 수신 동작 1. 패킷의 기본 IP 담당 부분이 어떻게 패킷을 상대에게 송신하는가? 패킷은 헤더와 데이터 두 부분으로 구성된다. 헤더에는 수신처 주소 등의 제어 정보가 들어있고 데이터 부분에는 그 자체로 데이터가 담긴다. 먼저 패킷의 송신처가 되는 기기가 패킷을 만든다. 그리고 가장 가까운 중계장치에 송신한다. 중계 장치는 도착한 패킷의 헤더를 조사하여 다음 목적지를 판단한다. 이 때 어느 수신처가 어느 방향에 있는지에 대한 정보를 기록한 표 같은 것을 사용한다. 헤더에 기록된 내용과 표에 등록된 내용을 결합하여 목적지를 판단하는 것이다. TCP/IP 패킷 구조는 이 기본에서 발..
[2장] 2. 데이터를 송 수신하는 과정 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.2장 두번째, 데이터를 송 수신 한다. 1. 프로토콜 스택에 HTTP 리퀘스트 메시지를 넘긴다. 접속 동작을 마치게 되면 데이터 송 수신 동작에 들어간다.이 동작은 애플리케이션이 write를 호출하여 송신 데이터를 프로토콜 스택에 건네주는 곳부터 시작된다. 프로토콜 스택은 데이터롤 곧바로 송신하는 것이 아니라 내부이 있는 송신용 버퍼 메모리 영역에 저장을 해둔다. 그 이유는 송신 의뢰가 올 때마다 데이터를 송신하게 되면 네트워크 효율이 떨어지기 때문이다.그렇다면 어떤 기준으로 데이터를 저장하는가? 프로토콜 스택은 MTU라는 매개변수를 바탕으로 판단한다. MTU란 한 패킷으로 운반할 수 있는 디지털 데이터의 최대 길이..
[2장] 1. TCP/IP - 소켓을 작성하고 서버에 접속한다. 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.2장. TCP/IP Outline1. 소켓을 작성하고 서버에 접속한다. 2. 데이터를 송수신 한다. 3. 서버에서 연결을 끊어 소켓을 말소한다. 4. IP와 이더넷의 패킷 송수신 동작 5. UDP 프로토콜을 이용한 송수신 동작 2장 첫번째. 소켓을 작성하고 서버에 접속한다. 1. 프로토콜 스택의 내부구성 프로토콜 스택 내부는 데이터 송수신을 담당하는 TCP, UDP와 패킷 송 수신 동작을 제어하는 IP로 나누어져 있다. 브라우저나 메일 등의 일반적인 애플리케이션이 데이터를 송수신 할 경우 TCP 프로토콜을 사용하며 DNS 서버에 대한 조회 등 짧은 제어용 데이터를 송수신 할 경우에는 UDP 프로토콜을 사용한다. IP..
[1장] 4. 프로토콜 스택에 메시지 송신을 의뢰한다. 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.1장 네번째. 프로토콜 스택에 메시지 송신을 의뢰한다. 데이터 송 수신 동작의 개요이제 드디어 IP 주소를 알아냈다. 이제 이 IP 주소와 HTTP Request 메시지를 프로토콜 스택에 전달하여 메시지 송신을 의뢰해야 한다. 이 때도 Socket 라이브러리를 이용한다. 단, 의뢰를 할 때는 Socket 라이브러리 프로그램 부품을 결정된 순번대로 호출해야 한다. 데이터를 송수신은 기본적으로 '데이터 통로'를 통해 수행된다. 클라이언트와 서버 사이에 파이프 같은 것이 존재하여 파이프를 통해 데이터를 주고 받는 것이다. 송수신 동작을 하기 전에 송수신하는 양자 사이를 파이프로 연결해줘야 한다. 연결해줄 때의 요점은 소켓..
[1장] 3. 전 세계의 DNS 서버가 연대한다 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.1장 세번째. 전 세계의 DNS 서버가 연대한다 1. DNS 서버의 기본 동작리졸버로부터 DNS서버가 받는 조회 메시지에는 다음과 같은 내용이 포함되어 있다. 이름 : 서버 or 메일 배송 목적지와 같은 이름 클래스 : 초창기 때는 인터넷 이외에도 네트워크를 이용하는 경우가 많았다. 따라서 이들을 구분해주기 위해 클래스라는 것을 이용했다. 그러나 지금은 인터넷 이외의 네트워크는 소멸되었으므로 클래스는 항상 인터넷을 나타내는 ‘IN’이라는 값이 된다. 타입 : 타입에 따라 클라이언트에 회답하는 정보의 내용이 달라진다. IP주소를 조회할 때는 A라는 타입(Address)을 이용하며, 메일 배송 목적지를 조회할 때는 MX..
[1장] 2. 웹 서버의 IP 주소를 DNS 서버에 조회한다. 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.1장 두번째. 웹 서버의 IP 주소를 DNS서버에 조회한다. 1. IP 주소를 통한 메시지 운반허브를 중심으로 몇 대의 컴퓨터가 모여 서브넷을 이룬다. 이 서브넷들은 라우터를 통해 연결되어 네트워크를 이루게 된다. 서브넷에 할당된 주소를 네트워크 주소(번호)라고 하고 허브로 연결된 각각의 컴퓨터에 할당된 주소(번호)를 호스트 번호라고 한다. IP 주소는 네트워크 번호와 호스트 번호, 이 두 주소를 합친 것을 말한다. IP주소는 같은 값이 할당된 기기가 존재하면 안된다. 액세스 대상의 서버까지 메시지를 운반할 때는 IP 주소에 따라 운반된다. 클라이언트에서 메시지를 전송하면 서브넷 안에 있는 허브가 가장 가까운 라우터..
[1장] 웹 브라우저 - 1. HTTP Request 메시지를 작성한다. 이 포스팅은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책을 기반으로 작성되었습니다.1장 웹 브라우저는 어떻게 동작하는가Outline1. HTTP Request 메시지를 작성한다. URL을 결정된 규칙에 따라 분석하고 그 의미에 따라 리퀘스트 메시지를 만든다. => 메시지의 정체인 HTTP 프로토콜과 그 구조에 대해서 알아본다. 2. 웹 서버의 IP Address를 DNS 서버에 조회한다. DNS 서버에 접근하여 메시지를 넘기는 상대의 IP Address를 요청한다. => 넘겨받은 메시지에는 URL이 있고 여기엔 도메인 명이 존재한다. 이 도메인 명을 기준으로 IP Address를 조회한다. 3. 전 세계의 DNS 서버가 연대한다. 수 만대의 DNS 서버가 어떠한 방법으로 연대를 하여 해당 IP 주..