donaricano-btn

웹 서버의 서버 이중화


1. DNS 라운드 로빈(Round Robin) 이중화

- 호스트 명에 대하여 복수의 IP 주소를 등록해 둔다

- DNS는 질의에 대해 순서대로 IP 주소 반환

1) 장점

- 매우 간단하게 서버 이중화

2) 단점

- 서버 상태 감시 X, 서버가 정지된 경우에도 이 서버의 주소 반환

- DNS가 세션 상태를 파악하지 않는다

: 웹 서버에 동적 콘텐츠가 있어서 세션 상태를 저장하고 있어야 하는 경우 부적합


2. 부하분산 장치를 이용한 이중화(Load balancing)

- DNS 라운드 로빈의 단점 극복

1) 부하분산장치(l4, l7)

- 이전에 어느 웹 서버에 요청을 할당 했는지 쿠키에 저장하고 있다

- 쿠키를 통해 세션 상태를 저장한다

* 세션 테이블

- 클라이언트에 요청을 반환할 때는 이 테이블을 참조

* 퍼시스턴스(persistence)의 종류

- 세션 상태 저장을 실현하는 기능

- 소스 IP 주소 : 클라이언트 IP 주소를 기반으로 요청을 할당할 웹 서버를 결정

- 쿠키 : HTTP 헤더 내에 접속한 웹 서버 정보를 저장

- URL : URL 구조 내에 접속한 웹 서버 정보를 저장

* 부하분산 장치의 할당 알고리즘

a. 라운드 로빈(round robin) : 서버의 IP 주소에 순서대로 요청

b. 최소 연결(least connection) : 현재 활성 세션 수보다 세션 수가 가장 적은 서버의 IP 주소에 요청을 할당

c. 응답시간(response time) : 서버의 CPU 사용률이나 응답 시간 등을 고려해서 가장 부하가 적은 서버의 IP 주소에 요청 할당

2) 페일 오버(failover)

- 웹서버 장애를 감지한 부하분산 장치는 클라이언트 요청을 동적으로 다른 서버에 할당 할 수 있다

* 클라이언트 처리에 영향을 준다?

- 정적콘텐츠는 상관없지만 동적 콘텐츠라면 페일 오버와 세션 정보가 사라지기 때문에 세션 상태가 초기화 된다

- failover와 함께 세션 정보를 유지하는 구조가 필요

'IT_Infra > Architecture' 카테고리의 다른 글

[IT_Infra] 안정성 및 이중화  (0) 2016.11.20
[IT_Infra] 마스터-슬레이브(master-slave)  (0) 2016.11.14
[IT_Infra] 복제(replication)  (0) 2016.11.14
[IT_Infra] 저널링(journaling)  (0) 2016.11.14
[IT_Infra] 핑퐁(Pingpong)  (0) 2016.11.13
블로그 이미지

리딩리드

,
donaricano-btn

안정성 및 이중화


1. 안정성

- 고가용성 이라고 한다

- 시스템 서비스가 가능한 한 멈추지 않도록 하는것

1) 실현수단

- 컴포넌트 이중화

: 고장, 장애에 의한 정지가 발생하지 않을 것

: 고장, 장애가 발생해도 복구할 수 있을 것

- 컴포넌트 감시

: 고장, 장애가 발생한 것을 검출할 수 있을 것

- 데이터 백업

: 고장, 장애가 발생해도 데이터가 보호될 것


2. 이중화

- 하나의 기능을 병렬로 여러 개 나열해서 하나에 장애가 발생해도 다른 것을 이용해서 서비스를 계속할 수 있는 것을 가리킨다

1) 구조

- 부하분산 구조

- 내부적 생존 감시 구조

- 마스터 결정

- 페일오버

블로그 이미지

리딩리드

,
donaricano-btn

레이어2(Layer2) - 데이터 링크 계층의 프로토콜 이더넷(ethernet)


1. 이더넷의 역할

- 동일 네트워크 내의 네트워크 장비까지 전달 받은 데이터 운반

- OSI7 계층의 물리 계층과 밀접한 관련이 있다

- 케이블 통신에서 사용되기 때문에 이더넷 프레임은 전기 신호로 전송

- 동일 네트워크에서는 MAC주소 사용


2. 이더넷 프레임

- 이더넷 헤더에 MAC 주소를 기입

* ARP 테이블(MAC 테이블)

- IP 주소에 라우팅 테이블과 같다

- 'IP 주소 A에 대응하는 것은 MAC 주소 B 다'

- 인접한 장비의 MAC 주소를 헤더레 기록한 후 최종적으로 OS가 버스를 통해 NIC에게 전달, NIC는 다시 네트워크에 전송한다


3. VLAN(Virtual LAN)

- 네트워크 범위는 네트워크 스위치의 물리 구성에 의해 크게 좌우된다, 유연성 없다

1) VLAN

- 물리 구성에 의존하지 않고 가상적인 네트워크를 나누는 구조

* VLAN ID

- 가상 적으로 나눈 네트워크 숫자

- 이것으로 관리된다

- 물리적으로 떨어져 있는 스위치라도 동일 네트워크에 참가 시키는 것이 가능하다

- 네트워크 스위치의 포트별로 어떤 VLAN_ID와 연결 할지 설정해서 하나의 L2 스위치라도 여러 네트워크를 다 룰 수 있다

- 설령 같은 L2 스위치에 접속된 컴퓨터들이라도 각각 다른 VLAN_ID에 설정된 포트를 사용하고 있는 경우 별도의 L3 스위치나 라우터 없이는 통신 할 수 없다(네트워크가 다르다는 것은 IP 주소가 다르다)

블로그 이미지

리딩리드

,
donaricano-btn

레이어3(Layer3) - 네트워크 계층의 프로토콜 IP(network)


1. IP(Internet Protocol)역할

- TCP 세그먼트가 만들어지면 다음은 IP처리가 시작된다

- 지정한 대상 서버까지 전달 받은 데이터를 전달

- 반드시 데이터가 전달된다는 보장은 없다

- 라우팅


2. 커널 내의 IP 처리

- TCP 세그먼트에서 IP헤더를 붙여 IP 패킷을 생성한다

- 대상 서버까지 IP패킷 형태로 네트워크를 경유해서 도달

- 기본적으로 TCP헤더, IP헤더는 20byte이기 때문에 첫번 째 패킷은 사이즈가 커진다


3. IP주소를 이용한 최종 목적지로의 데이터 전송

- IP에서 최종 목적지 서버까지 복수의 네트워크를 경유해서 데이터를 전송한다. 이때 사용되는 것이 대상 서버를 나타내는 IP주소다


1) IP 주소(IP Address)

- IP 주소 = 네트워크 부 + 호스트 부(network + host)

* 네트워크 부 

- 어떤 네트워크인지 가르킨다

- IP 주소의 어디 까지가 네트워크 부 인지 표시하기 위해 '/24' 와 같은 CIDR(사이더) 표기 사용 하거나 서브넷 마스크를 사용(Subnet mask)

- 같은 네트워크 내 컴퓨터 IP 주소는 네트워크부를 동일 값으로 설정


- 호스트 부 : 해당 네트워크 내에 있는 컴퓨터(소유자)를 가리킨다

* 네트워크 주소(Network address) & 브로드 캐스트 주소(Broadcast address)

- 네트워크 주소 : IP 주소 중 호스트 부의 비트가 모두 0 인것

- 브로드 캐스트 주소 : 호스부의 비트가 1 인것

- 호스트에게 할당 해서는 안되는 특별한 주소이다


4. 라우팅

- IP는 경로 도중에 다양한 처리가 이루어 진다

- IP 주소를 이용해 대상 서버를 지정할 수 있다

1) 대상 서버가 항상 같은 곳이 아닌 다른 네트워크에 있다면?

- 최종 목적지에 도착 할 떄까지 목적지를 알고 있는 라우터에게 전송 부탁

* 라우터

- IP 패킷을 받은 라우터는 해당 IP 패킷의 헤더에 목적지를 확인해서 보낼 곳을 찾는다

- 라우팅 테이블을 이용(목적지 정보가 적힌 테이브)

* 기본 게이트 웨이(default gateway)

- 외부와 접속하는 네트워크는 보통 기본 게이트 웨이라는 라우터가 있다

- 외부 세계와 연결된 라우터를 기본 게이트 웨이로 지정 해야한다

- 네트워크 A와 네트워크 B 사이에 소속된 서버가 IP 패킷을 보내려한다

: IP 주소를 가지고 목적지가 E네트워크 라는건 알 수 있지만 라우팅 테이블에 정보가 없다

: 이 경우 기본 게이트 웨이에게 패킷을 보낸다

* TTL(Time to Live)

- 라우팅간에 라우팅 테이블 주소가 잘못 되어 패킷이 네트워크 상을 떠돌아 다니는 현상 발생(패킷 좀비)

- IP 헤더는 생존 시간 정보를 가지고 있다

- 예로 TTL = 64 면 라우터를 한번 경유 할 때마나 1씩 감소한다, 0이되면 라우터는 해당 패킷을 파기한다


블로그 이미지

리딩리드

,