AWS에서는 ELB라는 로드 밸런싱을 제공한다. ELB는 EC2 인스턴스에서 운영하는 앱,컨테이너 서비스, 마이크로서비스 트래픽을 자동으로 분산 처리하는 기술이다. ELB는 HTTP/HTTPS, TCP, SSL 등 다양한 프로토콜을 지원한다. 또한 AWS CloudWatch 기능을 이용하여 로그와 메트릭을 모니터링할 수 있다. AWS의 오토 스케일링 기능과 결합해서 트래픽에 따라 인스턴스를 효율적으로 조절할 수 있다. 보안적으로 SSL 암호화를 지원한다.
그렇다면 로드 밸런싱이 뭘까? 한글로는 '부하 분산'이다.
로드 밸런싱이 이루어지기 전에는 여러 대의 서버 중 한 대라도 장애가 생기면 바로 서버 응답이 사라지는 문제가 발생했다. 그래서 과부하 등 다양한 이슈로 인해 서버 응답 전체가 문제가 생기는 경우가 많았다. 로드 밸런싱은 이러한 것을 해결하기 위해 등장했다. 이를 도입하면서, 서버 한 대가 장애가 발생해도 다른 서버에서 모든 부하를 해결해주는 등의 유연한 방식으로 해결하게 된다. 동시에 발생하는 문제의 수도 상당히 많이 감소하는 효과를 얻었다.
다시 ELB로 돌아와서, ELB는 3가지 요소로 구성되어 있다.
첫째로 로드 밸런서가 있다. 로드 밸런서는 트래픽을 대상 그룹에 있는 인스턴스로 분산시켜서 애플리케이션의 가용성을 유지해주는 역할을 수행한다. 앞서 설명한 내용과 같으니 생략.
둘째로 대상 그룹이 있다. 이는 로드 밸런서에서 분산할 대상의 집합을 정의하는 구성 요소다. 대상 그룹 인스턴스에 대해 정적/동적 구성이 가능하고, 라우팅 요청에 따라 요청을 받아들일 대상 그룹을 선택한다. 그러면 로드 밸런서는 대상 그룹에 포함된 대상들의 상태를 정기적으로 확인하여, 장애가 발생한 대상들을 제외하고 정상적으로 동작하는 대상에만 요청한다.
셋째로 리스너가 있다. 리스너는 로드 밸런서에서 사용할 포트와 프로토콜을 설정하는 구성 요소다. 로드 밸런서에서 클라이언트 요청을 수신하고, 해당 요청을 처리할 대상 그룹을 선택하는 역할을 수행한다. 로드 밸런서에 연결된 포트와 프로토콜을 사용하여 클라이언트 요청 수신 및 요청을 대상 그룹으로 라우팅한다.
요약하자면, 동작 방식은 다음과 같다.
- 클라이언트 요청 수신
- 대상 그룹 선택
- 트래픽 분산
- 응답 반환
'AWS' 카테고리의 다른 글
[AWS] ELB 종류 (0) | 2023.12.22 |
---|---|
[AWS] EC2 추가 공부 (1) | 2023.12.21 |
[AWS] EC2. 인스턴스 (0) | 2023.12.20 |
AWS 기초 (0) | 2023.08.02 |