티스토리 뷰

AWS

ELB(Elastic Load Balancing) 개념

현오쓰 2019. 3. 15. 18:05


  AWS ELB 개념및 종류



서론.. 

ELB 사용방법과 과정은 매뉴얼 혹은 구글링을 하면 쉽게 구할 수 있으나, 왜? ELB를 사용해야 되는지에 대한 내용은 부족한거 같아 포스팅을 남겨본다..!!


ELB(Elastic Load Balancing)란?


 AWS에서 제공하는 로드밸런서 이다. 로드 밸런서란 하나의 서버로 서비스가 힘들때, 여러 서버를 운용해 클라이언트들의 요청을 로드밸런서가 대신 받아 여러 서버로 밸런스에 맞게 분산해주는 장비이다. 

음.. 설명이 어렵다.. 예로 들면 바로 이해가 갈것이다. 


예) 길동이는 오늘도 수강신청을 하기위해 신청시간을 기다리고 있었지만 많은 학생들이 몰리면서 서버 장애로 인해 원하는 수강을 신청하지 못했다. 


그렇다.. 많은 클라이언트들의 동시에 많이 몰리게 되면 서버에 부하가 될 수 밖에 없다 .. 아래그림과 같은 모습이 되는것이다.


그림1. 많은 부하로 인한 서버 문제점



인간으로 비유하자면 한명한테 많은 일을 시키면 결국... 힘들어서 포기한다.  이럴때 로드밸런서 라는 장비로 적절한 부하를 밸런싱 해주는 것이다. 로드밸런서 장비는 고가 인것도 있지만.. 큰 문제 초기 투입 시간이 많이 걸릴 수 밖에 없다. (장비를 익혀야 하므로,..) 클라우드 에서의 로드밸런서 장비는 마우스 클릭 몇번으로 끝이 난다.  로드밸런서를 도입하게 되면 아래와 같은 구조가 나오게 된다.


그림2. 로드밸런서를 활용한 구조



이처럼 로드밸런서는 가운데서 트래픽 방향을 밸런싱 맞게 조정해준다. 이렇게 확장 하는 기술을 Scale-Out 이라고 한다.


ELB의 종류


크게 2가지로 나눠지는데  7계층과 4계층 로드밸런서로 나눠진다. (OSI의 개념이 없다면 구글링을 통해 OSI개념을 익혀보자..!!)


우선 7계층 로드밸런서는 애플리케이션 계층을 말하며, HTTP프로토콜이 대표적이다. 

HTTP 헤더의 내용을 기준으로 트래픽을 분배한다. 실제 7계층 로드밸런서를 많이 사용한다. 

대표적인 예로 아파치로 로드밸런싱 기능을 구현할 수 있다. 아파치 모듈중에 mod_jk, mode_porxy을 이용해서 가능하다. 아니 그러면 아파치를 로드밸런서 처럼 사용하면 되자나?... 으이?


아파치로 해도 되고 ELB를 해도 되는건 엔지니어의 선택이다. 

*****중요한건 Auto-Scaling 작업을 할것이냐 말것이냐가 중요하다. (별 5개다.!!)





오토스케일링은 클라우드에서만 쓸 수 있는 기술이다. 서버의 부하를 걱정해 여러 서버로 요청을 밸런싱 잡는건 잘한 일이지만, 새벽에 여러 서버가 돌필요가 없다... 이는 돈낭비다.. 즉!!  오토스케일링은 어느정도 부하가 예상되면 서버를 늘려주고(Scale-Out) 부하가 적으면 서버를 줄여준다(Scale-In)..! 


그래서 클라우드를 사용한다면 ELB같은 기술을 도입해야하고 오토스케일링 설정을 해주면 된다!! 



마지막으로 4계층 로드밸런서는 TCP,UDP등의 프로토콜이 대표적이며, 포트 번호로 구분한다. IP주소와 포트번호를 기준으로 트래픽을 분배한다.( 3계층 까지 영역을 잡는것 같음)


ELB의 로드밸런싱 알고리즘은 RR(Round Robin)을 사용한다. 즉, 우선 순위를 두지 않고 순서대로 분배한다.



다음 포스팅에서는 간단하게 EC2 두대를 생성해서 ELB를 사용하는것을 보여주겠다! 




'AWS' 카테고리의 다른 글

AWS 도서추천 및 공부할 수 있는 사이트 추천!  (0) 2019.04.20
[AWS] ELB 생성 해보기  (2) 2019.04.15
[AWS]EBS 과금 막기  (0) 2019.03.09
[AWS]NACL,보안그룹과 그외 보안자료  (0) 2019.02.10
AWS Lamda 소개  (0) 2019.01.12